58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
|
From 68e6782cb5ebe9f9a17cc28f23687ec2ebc54af0 Mon Sep 17 00:00:00 2001
|
||
|
From: Manuel Stoeckl <code@mstoeckl.com>
|
||
|
Date: Thu, 28 Nov 2019 12:01:16 -0500
|
||
|
Subject: [PATCH] Use subprocess.Popen for startup failure test
|
||
|
|
||
|
According to the Python documentation, the new usage should be valid
|
||
|
for Python >=3.3, covering a wider range than the >=3.5 for
|
||
|
subprocess.Popen. Also, this change avoids a possible regression
|
||
|
with Python 3.8.0 in which the TimeoutExpired exception no longer
|
||
|
provides a non-None .output field.
|
||
|
---
|
||
|
test/startup_failure.py | 24 ++++++++++++------------
|
||
|
1 file changed, 12 insertions(+), 12 deletions(-)
|
||
|
|
||
|
diff --git a/test/startup_failure.py b/test/startup_failure.py
|
||
|
index 3d4117a..ae988b2 100755
|
||
|
--- a/test/startup_failure.py
|
||
|
+++ b/test/startup_failure.py
|
||
|
@@ -53,23 +53,23 @@ def run_test(name, command, env, use_socketpair, expect_success):
|
||
|
pfds = []
|
||
|
|
||
|
timed_out = False
|
||
|
+ proc = subprocess.Popen(
|
||
|
+ command,
|
||
|
+ env=env,
|
||
|
+ stdin=subprocess.DEVNULL,
|
||
|
+ stdout=subprocess.PIPE,
|
||
|
+ stderr=subprocess.STDOUT,
|
||
|
+ pass_fds=pfds,
|
||
|
+ )
|
||
|
try:
|
||
|
- proc = subprocess.run(
|
||
|
- command,
|
||
|
- env=env,
|
||
|
- stdin=subprocess.DEVNULL,
|
||
|
- stdout=subprocess.PIPE,
|
||
|
- stderr=subprocess.STDOUT,
|
||
|
- timeout=0.25,
|
||
|
- pass_fds=pfds,
|
||
|
- )
|
||
|
+ output, none = proc.communicate(timeout=0.25)
|
||
|
except subprocess.TimeoutExpired as e:
|
||
|
- timed_out = True
|
||
|
- output = e.output
|
||
|
# Program began to wait for a connection
|
||
|
+ proc.kill()
|
||
|
+ output, none = proc.communicate()
|
||
|
retcode = 0 if "client" in command else (0 if expect_success else 1)
|
||
|
+ timed_out = True
|
||
|
else:
|
||
|
- output = proc.stdout
|
||
|
retcode = proc.returncode
|
||
|
|
||
|
if use_socketpair:
|
||
|
--
|
||
|
2.26.2
|
||
|
|