소스 검색

[qa] Ensure bitcoind processes are cleaned up when tests end

Github-Pull: #12904
Rebased-From: e36a0c0852
tags/v0.16.1
Suhas Daftuar 3 년 전
부모
커밋
6c26df06ad
3개의 변경된 파일17개의 추가작업 그리고 0개의 파일을 삭제
  1. 4
    0
      test/functional/feature_help.py
  2. 2
    0
      test/functional/test_framework/test_framework.py
  3. 11
    0
      test/functional/test_framework/test_node.py

+ 4
- 0
test/functional/feature_help.py 파일 보기

@@ -36,7 +36,11 @@ class HelpTest(BitcoinTestFramework):
output = self.nodes[0].process.stdout.read()
assert b'version' in output
self.log.info("Version text received: {} (...)".format(output[0:60]))
# Clean up TestNode state
self.nodes[0].running = False
self.nodes[0].process = None
self.nodes[0].rpc_connected = False
self.nodes[0].rpc = None

if __name__ == '__main__':
HelpTest().main()

+ 2
- 0
test/functional/test_framework/test_framework.py 파일 보기

@@ -145,6 +145,8 @@ class BitcoinTestFramework():
if self.nodes:
self.stop_nodes()
else:
for node in self.nodes:
node.cleanup_on_exit = False
self.log.info("Note: bitcoinds were not stopped and may still be running")

if not self.options.nocleanup and not self.options.noshutdown and success != TestStatus.FAILED:

+ 11
- 0
test/functional/test_framework/test_node.py 파일 보기

@@ -70,9 +70,20 @@ class TestNode():
self.rpc = None
self.url = None
self.log = logging.getLogger('TestFramework.node%d' % i)
self.cleanup_on_exit = True # Whether to kill the node when this object goes away

self.p2ps = []

def __del__(self):
# Ensure that we don't leave any bitcoind processes lying around after
# the test ends
if self.process and self.cleanup_on_exit:
# Should only happen on test failure
# Avoid using logger, as that may have already been shutdown when
# this destructor is called.
print("Cleaning up leftover process")
self.process.kill()

def __getattr__(self, name):
"""Dispatches any unrecognised messages to the RPC connection or a CLI instance."""
if self.use_cli:

Loading…
취소
저장