mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-29 10:19:26 +02:00
Merge #13867: qa: Make extended tests pass on native Windows
fafe73a626
qa: Raise feature_help timeout to 5s (MarcoFalke)faabd7bc47
qa: Use files for stdout/stderr to support Windows (MarcoFalke)facb56ffaf
qa: Run gen_rpcauth with sys.executable (MarcoFalke)fada8966c5
qa: Close stdout and stderr file when node stops (MarcoFalke) Pull request description: ### qa: Close stdout and stderr file when node stops Since these files are potentially deleted by the test framework for cleanup, they should be closed first. Otherwise this will lead to errors on Windows when the tests finish successfully. Side note: After the patch, it is no longer possible to reopen the file on Windows (see https://docs.python.org/3/library/tempfile.html#tempfile.NamedTemporaryFile) ### qa: Run gen_rpcauth with sys.executable Similar to `test_runner.py`, the `sys.executable` needs to be passed down into subprocesses to pass on native Windows. (Should have no effect on Linux) ### qa: Use files for stdout/stderr to support Windows It seems that using PIPE is not supported on Windows. Also, it is easier to just use the files that capture the stdout and stderr within the test node class. Tree-SHA512: ec675012b10705978606b7fcbdb287c39a8e6e3732aae2fa4041d963a3c6993c6eac6a9a3cbd5479514e7d8017fe74c12235d1ed6fed2e8af8f3c71981e91864
This commit is contained in:
@ -122,7 +122,7 @@ class TestNode():
|
||||
assert self.rpc_connected and self.rpc is not None, self._node_msg("Error: no RPC connection")
|
||||
return getattr(self.rpc, name)
|
||||
|
||||
def start(self, extra_args=None, stdout=None, stderr=None, *args, **kwargs):
|
||||
def start(self, extra_args=None, *, stdout=None, stderr=None, **kwargs):
|
||||
"""Start the node."""
|
||||
if extra_args is None:
|
||||
extra_args = self.extra_args
|
||||
@ -143,7 +143,7 @@ class TestNode():
|
||||
# add environment variable LIBC_FATAL_STDERR_=1 so that libc errors are written to stderr and not the terminal
|
||||
subp_env = dict(os.environ, LIBC_FATAL_STDERR_="1")
|
||||
|
||||
self.process = subprocess.Popen(self.args + extra_args, env=subp_env, stdout=stdout, stderr=stderr, *args, **kwargs)
|
||||
self.process = subprocess.Popen(self.args + extra_args, env=subp_env, stdout=stdout, stderr=stderr, **kwargs)
|
||||
|
||||
self.running = True
|
||||
self.log.debug("bitcoind started, waiting for RPC to come up")
|
||||
@ -200,6 +200,9 @@ class TestNode():
|
||||
if stderr != expected_stderr:
|
||||
raise AssertionError("Unexpected stderr {} != {}".format(stderr, expected_stderr))
|
||||
|
||||
self.stdout.close()
|
||||
self.stderr.close()
|
||||
|
||||
del self.p2ps[:]
|
||||
|
||||
def is_node_stopped(self):
|
||||
|
Reference in New Issue
Block a user