diff --git a/js/src/devtools/automation/variants/tsan b/js/src/devtools/automation/variants/tsan index 8f9ee8e63881..abffb764e283 100644 --- a/js/src/devtools/automation/variants/tsan +++ b/js/src/devtools/automation/variants/tsan @@ -5,7 +5,7 @@ "compiler": "clang", "env": { "LLVM_SYMBOLIZER": "{TOOLTOOL_CHECKOUT}/clang/bin/llvm-symbolizer", - "JITTEST_EXTRA_ARGS": "--jitflags=debug --ignore-timeouts={DIR}/cgc-jittest-timeouts.txt --unusable-error-status", + "JITTEST_EXTRA_ARGS": "--jitflags=tsan --ignore-timeouts={DIR}/cgc-jittest-timeouts.txt --unusable-error-status", "JSTESTS_EXTRA_ARGS": "--exclude-file={DIR}/cgc-jstests-slow.txt", "TSAN_OPTIONS": "exitcode=0 log_path={OUTDIR}/sanitize_log" }, diff --git a/js/src/tests/lib/tests.py b/js/src/tests/lib/tests.py index 67b8233eb235..cea2bcb3cd1a 100644 --- a/js/src/tests/lib/tests.py +++ b/js/src/tests/lib/tests.py @@ -32,6 +32,15 @@ JITFLAGS = { ['--ion-eager', '--ion-offthread-compile=off'], # implies --baseline-eager ['--baseline-eager'], ], + # Cover cases useful for tsan. Note that tsan on try messes up the signal + # handler (bug 1362239), so must avoid wasm/asmjs. + 'tsan': [ + ['--no-asmjs', '--no-wasm'], + ['--no-asmjs', '--no-wasm', + '--ion-eager', '--ion-offthread-compile=off', '--non-writable-jitcode', + '--ion-check-range-analysis', '--ion-extra-checks', '--no-sse3', '--no-threads'], + ['--no-asmjs', '--no-wasm', '--no-baseline', '--no-ion'], + ], # Interpreter-only, for tools that cannot handle binary code generation. 'interp': [ ['--no-baseline', '--no-asmjs', '--no-wasm', '--no-native-regexp']