diff --git a/test/stress_test b/test/stress_test deleted file mode 100755 index 3073324fa..000000000 --- a/test/stress_test +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -from __future__ import print_function -from subprocess import call -import argparse -import glob -import logging -import os -import sys - - -def find_tests(): - tests = [] - - for test in glob.glob("*.test.sh") + glob.glob("*.test.py"): - if os.access(test, os.X_OK): - # Executables only - tests.append(test) - else: - log.debug("Ignored test %s as it is not executable", test) - - log.info("Tests found: %s", len(tests)) - - return tests - - -def run_test(test): - log.warn("Running test %s %s times", test, cmd_args.repeat) - - if not test.startswith(".{0}".format(os.path.sep)): - test = ".{0}{1}".format(os.path.sep, test) - - for i in range(cmd_args.repeat): - exit = call([test], stdout=sys.stdout, stderr=sys.stderr) - - if exit != 0: - log.error("Failed to run test %s on repetition %s", test, i) - break - - -def parse_args(): - parser = argparse.ArgumentParser(description="Run Taskwarrior tests repeatedly") - parser.add_argument('--logging', '-l', action="count", default=0, - help="Logging level. -lll is the highest level") - parser.add_argument('--repeat', metavar="N", type=int, default=100, - help="How many times to run each test (default: 100)") - parser.add_argument('--noprompt', action="store_true", - help="Do not prompt when running all tests") - parser.add_argument('test', nargs="*", - help="Test files to run repeatedly. Unspecified = all tests") - return parser.parse_args() - - -def main(): - if cmd_args.test: - for test in cmd_args.test: - run_test(test) - else: - if not cmd_args.noprompt: - r = raw_input("No test was specified, are you sure you want to run all tests? (y/N)\n") - if not (r and r[0] in ["y", "Y"]): - return - - log.info("Stress testing all tests") - for test in find_tests(): - run_test(test) - - -if __name__ == "__main__": - cmd_args = parse_args() - - if cmd_args.logging == 1: - level = logging.WARN - elif cmd_args.logging == 2: - level = logging.INFO - elif cmd_args.logging >= 3: - level = logging.DEBUG - else: - level = logging.ERROR - - logging.basicConfig( - format="%(asctime)s - %(levelname)s - %(message)s", - level=level, - ) - log = logging.getLogger(__name__) - - log.debug("Parsed commandline arguments: %s", cmd_args) - - try: - main() - except Exception as e: - log.exception(e) - sys.exit(1)