Add tsan support to v8's gyp and test driver.

Tests only the default variant for now.

BUG=
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/412853002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
machenbach@chromium.org 2014-07-23 13:14:26 +00:00
parent dcc2a25f2f
commit f5a4b26061
3 changed files with 30 additions and 0 deletions

View File

@ -35,6 +35,7 @@
'component%': 'static_library',
'clang%': 0,
'asan%': 0,
'tsan%': 0,
'visibility%': 'hidden',
'v8_enable_backtrace%': 0,
'v8_enable_i18n_support%': 1,
@ -186,6 +187,27 @@
],
},
}],
['tsan==1', {
'target_defaults': {
'cflags+': [
'-fno-omit-frame-pointer',
'-gline-tables-only',
'-fsanitize=thread',
'-fPIC',
'-Wno-c++11-extensions',
],
'cflags!': [
'-fomit-frame-pointer',
],
'ldflags': [
'-fsanitize=thread',
'-pie',
],
'defines': [
'THREAD_SANITIZER',
],
},
}],
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
or OS=="netbsd"', {
'target_defaults': {

View File

@ -388,6 +388,7 @@ def Execute(arch, mode, args, options, suites, workspace):
"no_snap": False,
"simulator": utils.UseSimulator(arch),
"system": utils.GuessOS(),
"tsan": False,
}
all_tests = []
num_tests = 0

View File

@ -213,6 +213,9 @@ def BuildOptions():
default=False, action="store_true")
result.add_option("-t", "--timeout", help="Timeout in seconds",
default= -1, type="int")
result.add_option("--tsan",
help="Regard test expectations for TSAN",
default=False, action="store_true")
result.add_option("-v", "--verbose", help="Verbose output",
default=False, action="store_true")
result.add_option("--valgrind", help="Run tests through valgrind",
@ -275,6 +278,9 @@ def ProcessOptions(options):
if options.asan:
options.extra_flags.append("--invoke-weak-callbacks")
if options.tsan:
VARIANTS = ["default"]
if options.j == 0:
options.j = multiprocessing.cpu_count()
@ -459,6 +465,7 @@ def Execute(arch, mode, args, options, suites, workspace):
"simulator_run": simulator_run,
"simulator": utils.UseSimulator(arch),
"system": utils.GuessOS(),
"tsan": options.tsan,
}
all_tests = []
num_tests = 0