Index: tools/run-tests.py |
diff --git a/tools/run-tests.py b/tools/run-tests.py |
index 84d2929c2152d12dd72f54631a61a7688bf1bc57..2782a70806190990ddcb6001b4c715ac7cd47651 100755 |
--- a/tools/run-tests.py |
+++ b/tools/run-tests.py |
@@ -51,6 +51,9 @@ from testrunner.network import network_execution |
from testrunner.objects import context |
+# Base dir of the v8 checkout to be used as cwd. |
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
+ |
ARCH_GUESS = utils.DefaultArch() |
# Map of test name synonyms to lists of test suites. Should be ordered by |
@@ -495,6 +498,9 @@ def ShardTests(tests, options): |
def Main(): |
+ # Use the v8 root as cwd as some test cases use "load" with relative paths. |
+ os.chdir(BASE_DIR) |
+ |
parser = BuildOptions() |
(options, args) = parser.parse_args() |
if not ProcessOptions(options): |
@@ -502,13 +508,12 @@ def Main(): |
return 1 |
exit_code = 0 |
- workspace = os.path.abspath(join(os.path.dirname(sys.argv[0]), "..")) |
if not options.no_presubmit: |
print ">>> running presubmit tests" |
exit_code = subprocess.call( |
- [sys.executable, join(workspace, "tools", "presubmit.py")]) |
+ [sys.executable, join(BASE_DIR, "tools", "presubmit.py")]) |
- suite_paths = utils.GetSuitePaths(join(workspace, "test")) |
+ suite_paths = utils.GetSuitePaths(join(BASE_DIR, "test")) |
# Use default tests if no test configuration was provided at the cmd line. |
if len(args) == 0: |
@@ -533,7 +538,7 @@ def Main(): |
suites = [] |
for root in suite_paths: |
suite = testsuite.TestSuite.LoadTestSuite( |
- os.path.join(workspace, "test", root)) |
+ os.path.join(BASE_DIR, "test", root)) |
if suite: |
suites.append(suite) |
@@ -546,14 +551,14 @@ def Main(): |
for (arch, mode) in options.arch_and_mode: |
try: |
- code = Execute(arch, mode, args, options, suites, workspace) |
+ code = Execute(arch, mode, args, options, suites) |
except KeyboardInterrupt: |
return 2 |
exit_code = exit_code or code |
return exit_code |
-def Execute(arch, mode, args, options, suites, workspace): |
+def Execute(arch, mode, args, options, suites): |
print(">>> Running tests for %s.%s" % (arch, mode)) |
shell_dir = options.shell_dir |
@@ -561,15 +566,14 @@ def Execute(arch, mode, args, options, suites, workspace): |
if options.buildbot: |
# TODO(machenbach): Get rid of different output folder location on |
# buildbot. Currently this is capitalized Release and Debug. |
- shell_dir = os.path.join(workspace, options.outdir, mode) |
+ shell_dir = os.path.join(BASE_DIR, options.outdir, mode) |
mode = BuildbotToV8Mode(mode) |
else: |
shell_dir = os.path.join( |
- workspace, |
+ BASE_DIR, |
options.outdir, |
"%s.%s" % (arch, MODES[mode]["output_folder"]), |
) |
- shell_dir = os.path.relpath(shell_dir) |
if not os.path.exists(shell_dir): |
raise Exception('Could not find shell_dir: "%s"' % shell_dir) |
@@ -713,7 +717,7 @@ def Execute(arch, mode, args, options, suites, workspace): |
if run_networked: |
runner = network_execution.NetworkedRunner(suites, progress_indicator, |
- ctx, peers, workspace) |
+ ctx, peers, BASE_DIR) |
else: |
runner = execution.Runner(suites, progress_indicator, ctx) |