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