mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge #14630: test_runner: Remove travis specific code
fa43626611 test_runner: Remove travis specific code (MarcoFalke) Pull request description: The tests are no longer run on travis, but in a docker, developer machines or a windows vm. The code was essentially dead for months now. Fix that by explicitly passing in `--ci` to the test runner on our docker and appveyor windows vm. Tree-SHA512: 5d48693c03e8eb27536658ccf9ba738fe93a72abd4b72c80caac084b5b2cdffa77a1031a671eeefe70b71d63500f55917803d4be54d01849722afdccb700a9e6
This commit is contained in:
parent
430c0380fa
commit
ef59dce92e
@ -18,7 +18,7 @@ export LD_LIBRARY_PATH=$BUILD_DIR/depends/$HOST/lib
|
||||
cd build-ci/dashcore-$BUILD_TARGET
|
||||
|
||||
set +e
|
||||
./test/functional/test_runner.py --coverage --quiet --failfast --nocleanup --tmpdir=$(pwd)/testdatadirs $PASS_ARGS
|
||||
./test/functional/test_runner.py --ci --coverage --quiet --failfast --nocleanup --tmpdir=$(pwd)/testdatadirs $PASS_ARGS
|
||||
RESULT=$?
|
||||
set -e
|
||||
|
||||
|
@ -188,6 +188,7 @@ def main():
|
||||
Help text and arguments for individual test script:''',
|
||||
formatter_class=argparse.RawTextHelpFormatter)
|
||||
parser.add_argument('--coverage', action='store_true', help='generate a basic coverage report for the RPC interface')
|
||||
parser.add_argument('--ci', action='store_true', help='Run checks and code that are usually only enabled in a continuous integration environment')
|
||||
parser.add_argument('--exclude', '-x', help='specify a comma-separated-list of scripts to exclude.')
|
||||
parser.add_argument('--extended', action='store_true', help='run the extended test suite in addition to the basic tests')
|
||||
parser.add_argument('--force', '-f', action='store_true', help='run tests even on platforms where they are disabled by default (e.g. windows).')
|
||||
@ -275,24 +276,25 @@ def main():
|
||||
subprocess.check_call([(config["environment"]["SRCDIR"] + '/test/functional/' + test_list[0].split()[0])] + ['-h'])
|
||||
sys.exit(0)
|
||||
|
||||
check_script_list(config["environment"]["SRCDIR"])
|
||||
check_script_list(src_dir=config["environment"]["SRCDIR"], fail_on_warn=args.ci)
|
||||
|
||||
if not args.keepcache:
|
||||
shutil.rmtree("%s/test/cache" % config["environment"]["BUILDDIR"], ignore_errors=True)
|
||||
|
||||
run_tests(
|
||||
test_list,
|
||||
config["environment"]["SRCDIR"],
|
||||
config["environment"]["BUILDDIR"],
|
||||
config["environment"]["EXEEXT"],
|
||||
tmpdir,
|
||||
test_list=test_list,
|
||||
src_dir=config["environment"]["SRCDIR"],
|
||||
build_dir=config["environment"]["BUILDDIR"],
|
||||
exeext=config["environment"]["EXEEXT"],
|
||||
tmpdir=tmpdir,
|
||||
jobs=args.jobs,
|
||||
enable_coverage=args.coverage,
|
||||
args=passon_args,
|
||||
failfast=args.failfast,
|
||||
runs_ci=args.ci,
|
||||
)
|
||||
|
||||
def run_tests(test_list, src_dir, build_dir, exeext, tmpdir, jobs=1, enable_coverage=False, args=None, failfast=False):
|
||||
def run_tests(*, test_list, src_dir, build_dir, exeext, tmpdir, jobs=1, enable_coverage=False, args=None, failfast=False, runs_ci):
|
||||
args = args or []
|
||||
|
||||
# Warn if dashd is already running (unix only)
|
||||
@ -331,7 +333,14 @@ def run_tests(test_list, src_dir, build_dir, exeext, tmpdir, jobs=1, enable_cove
|
||||
subprocess.check_output([tests_dir + 'create_cache.py'] + flags + ["--tmpdir=%s/cache" % tmpdir])
|
||||
|
||||
#Run Tests
|
||||
job_queue = TestHandler(jobs, tests_dir, tmpdir, test_list, flags)
|
||||
job_queue = TestHandler(
|
||||
num_tests_parallel=jobs,
|
||||
tests_dir=tests_dir,
|
||||
tmpdir=tmpdir,
|
||||
test_list=test_list,
|
||||
flags=flags,
|
||||
timeout_duration=20 * 60 if runs_ci else float('inf'), # in seconds
|
||||
)
|
||||
time0 = time.time()
|
||||
test_results = []
|
||||
|
||||
@ -397,11 +406,12 @@ class TestHandler:
|
||||
Trigger the testscrips passed in via the list.
|
||||
"""
|
||||
|
||||
def __init__(self, num_tests_parallel, tests_dir, tmpdir, test_list=None, flags=None):
|
||||
assert(num_tests_parallel >= 1)
|
||||
def __init__(self, *, num_tests_parallel, tests_dir, tmpdir, test_list, flags, timeout_duration):
|
||||
assert num_tests_parallel >= 1
|
||||
self.num_jobs = num_tests_parallel
|
||||
self.tests_dir = tests_dir
|
||||
self.tmpdir = tmpdir
|
||||
self.timeout_duration = timeout_duration
|
||||
self.test_list = test_list
|
||||
self.flags = flags
|
||||
self.num_running = 0
|
||||
@ -437,7 +447,7 @@ class TestHandler:
|
||||
time.sleep(.5)
|
||||
for j in self.jobs:
|
||||
(name, time0, proc, log_out, log_err) = j
|
||||
if os.getenv('TRAVIS') == 'true' and int(time.time() - time0) > 20 * 60:
|
||||
if int(time.time() - time0) > self.timeout_duration:
|
||||
# In travis, timeout individual tests after 20 minutes (to stop tests hanging and not
|
||||
# providing useful output.
|
||||
proc.send_signal(signal.SIGINT)
|
||||
@ -493,7 +503,7 @@ class TestResult():
|
||||
return self.status != "Failed"
|
||||
|
||||
|
||||
def check_script_list(src_dir):
|
||||
def check_script_list(*, src_dir, fail_on_warn):
|
||||
"""Check scripts directory.
|
||||
|
||||
Check that there are no scripts in the functional tests directory which are
|
||||
@ -503,10 +513,11 @@ def check_script_list(src_dir):
|
||||
missed_tests = list(python_files - set(map(lambda x: x.split()[0], ALL_SCRIPTS + NON_SCRIPTS)))
|
||||
if len(missed_tests) != 0:
|
||||
print("%sWARNING!%s The following scripts are not being run: %s. Check the test lists in test_runner.py." % (BOLD[1], BOLD[0], str(missed_tests)))
|
||||
if os.getenv('TRAVIS') == 'true':
|
||||
if fail_on_warn:
|
||||
# On travis this warning is an error to prevent merging incomplete commits into master
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
class RPCCoverage(object):
|
||||
"""
|
||||
Coverage reporting utilities for test_runner.
|
||||
|
Loading…
Reference in New Issue
Block a user