Add option to attach a python debugger if test fails

This commit is contained in:
John Newbery 2017-03-31 22:44:04 -04:00
parent fa64636948
commit cc5d38f4b8

View File

@ -11,6 +11,7 @@ import http.client
import logging import logging
import optparse import optparse
import os import os
import pdb
import shutil import shutil
import subprocess import subprocess
import sys import sys
@ -125,6 +126,8 @@ class BitcoinTestFramework(object):
help="Write tested RPC commands into this directory") help="Write tested RPC commands into this directory")
parser.add_option("--configfile", dest="configfile", parser.add_option("--configfile", dest="configfile",
help="Location of the test framework config file") help="Location of the test framework config file")
parser.add_option("--pdbonfailure", dest="pdbonfailure", default=False, action="store_true",
help="Attach a python debugger if test fails")
self.add_options(parser) self.add_options(parser)
(self.options, self.args) = parser.parse_args() (self.options, self.args) = parser.parse_args()
@ -162,6 +165,10 @@ class BitcoinTestFramework(object):
except KeyboardInterrupt as e: except KeyboardInterrupt as e:
self.log.warning("Exiting after keyboard interrupt") self.log.warning("Exiting after keyboard interrupt")
if success == TestStatus.FAILED and self.options.pdbonfailure:
print("Testcase failed. Attaching python debugger. Enter ? for help")
pdb.set_trace()
if not self.options.noshutdown: if not self.options.noshutdown:
self.log.info("Stopping nodes") self.log.info("Stopping nodes")
if self.nodes: if self.nodes: