From aea7884d11b6f10e2ccc0d6a7c5c154f84472ed4 Mon Sep 17 00:00:00 2001 From: Dmitry Sharshakov Date: Thu, 7 Feb 2019 23:11:03 +0300 Subject: [PATCH] Make integration tests standalone (#1671) Co-authored-by: Sergey Golovin --- tools/integration_tests.py | 42 ++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/tools/integration_tests.py b/tools/integration_tests.py index 787385021e..66f59f0a03 100755 --- a/tools/integration_tests.py +++ b/tools/integration_tests.py @@ -11,8 +11,10 @@ import os import re import sys import subprocess -from util import root_path, tests_path, pattern_match, green_ok, red_failed - +import http_server +import argparse +from util import root_path, tests_path, pattern_match, \ + green_ok, red_failed, rmtree, executable_suffix def read_test(file_name): with open(file_name, "r") as f: @@ -87,13 +89,35 @@ def integration_tests(deno_exe, test_filter = None): print "... " + green_ok() -def main(argv): - deno_exe = argv[1] - test_filter = None - if len(argv) > 2: - test_filter = argv[2] - integration_tests(deno_exe, test_filter) +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--filter", help="Run specific tests") + parser.add_argument("--release", help="Use release build of Deno", + action="store_true") + parser.add_argument("--executable", help="Use external executable of Deno") + args = parser.parse_args() + + target = "release" if args.release else "debug" + + build_dir = None + if "DENO_BUILD_PATH" in os.environ: + build_dir = os.environ["DENO_BUILD_PATH"] + else: + build_dir = os.path.join(root_path, "target", target) + + deno_dir = os.path.join(build_dir, ".deno_test") + if os.path.isdir(deno_dir): + rmtree(deno_dir) + os.environ["DENO_DIR"] = deno_dir + + deno_exe = os.path.join(build_dir, "deno" + executable_suffix) + if args.executable: + deno_exe = args.executable + + http_server.spawn() + + integration_tests(deno_exe, args.filter) if __name__ == "__main__": - sys.exit(main(sys.argv)) + sys.exit(main())