--- a/mozilla-tests/config.py
+++ b/mozilla-tests/config.py
@@ -92,16 +92,17 @@ setMainFirefoxVersions(BRANCHES)
# Talos
PLATFORMS = {
'macosx64': {},
'win32': {},
'linux': {},
'linux64': {},
'linux64-asan': {},
+ 'linux64-tsan': {},
'linux64-cc': {},
'win64': {},
}
PLATFORMS['macosx64']['slave_platforms'] = ['snowleopard', 'mountainlion', 'yosemite']
PLATFORMS['macosx64']['env_name'] = 'mac-perf'
PLATFORMS['macosx64']['snowleopard'] = {'name': "Rev4 MacOSX Snow Leopard 10.6"}
PLATFORMS['macosx64']['mountainlion'] = {'name': "Rev5 MacOSX Mountain Lion 10.8",
@@ -180,16 +181,27 @@ PLATFORMS['linux64-asan']['stage_product
PLATFORMS['linux64-asan']['mozharness_config'] = {
'mozharness_python': '/tools/buildbot/bin/python',
'hg_bin': 'hg',
'reboot_command': ['/tools/buildbot/bin/python'] + MOZHARNESS_REBOOT_CMD,
'system_bits': '64',
'config_file': 'talos/linux_config.py',
}
+PLATFORMS['linux64-tsan']['slave_platforms'] = ['ubuntu64_vm']
+PLATFORMS['linux64-tsan']['ubuntu64_vm'] = {'name': 'Ubuntu TSAN VM 12.04 x64'}
+PLATFORMS['linux64-tsan']['stage_product'] = 'firefox'
+PLATFORMS['linux64-tsan']['mozharness_config'] = {
+ 'mozharness_python': '/tools/buildbot/bin/python',
+ 'hg_bin': 'hg',
+ 'reboot_command': ['/tools/buildbot/bin/python'] + MOZHARNESS_REBOOT_CMD,
+ 'system_bits': '64',
+ 'config_file': 'talos/linux_config.py',
+}
+
PLATFORMS['linux64-cc']['slave_platforms'] = ['ubuntu64_vm']
PLATFORMS['linux64-cc']['ubuntu64_vm'] = {
'name': 'Ubuntu Code Coverage VM 12.04 x64',
'build_dir_prefix': 'ubuntu64_vm_cc',
'scheduler_slave_platform_identifier': 'ubuntu64_vm_cc'
}
PLATFORMS['linux64-cc']['stage_product'] = 'firefox'
PLATFORMS['linux64-cc']['mozharness_config'] = {
@@ -363,16 +375,17 @@ SUITES = {
BRANCH_UNITTEST_VARS = {
'hghost': 'hg.mozilla.org',
# turn on platforms as we get them running
'platforms': {
'linux': {},
'linux64': {},
'linux64-asan': {},
+ 'linux64-tsan': {},
'linux64-cc': {},
'macosx64': {},
'win32': {},
'win64': {},
},
}
MOCHITEST_WO_BC = [
@@ -1061,16 +1074,103 @@ PLATFORM_UNITTEST_VARS = {
'config_files': ["web_platform_tests/prod_config.py"],
},
'mozbase': {
'config_files': ["unittests/linux_unittest.py"],
},
},
},
},
+ 'linux64-tsan': {
+ 'product_name': 'firefox',
+ 'app_name': 'browser',
+ 'brand_name': 'Minefield',
+ 'builds_before_reboot': 1,
+ 'unittest-env': {'DISPLAY': ':0'},
+ 'enable_opt_unittests': True,
+ 'enable_debug_unittests': False,
+ 'ubuntu64-tsan_vm': {
+ 'opt_unittest_suites': UNITTEST_SUITES['opt_unittest_suites'][:],
+ 'debug_unittest_suites': UNITTEST_SUITES['debug_unittest_suites'][:],
+ 'suite_config': {
+ 'mochitest': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-push': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-e10s': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-browser-chrome': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-e10s-browser-chrome': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-other': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-devtools-chrome': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-e10s-devtools-chrome': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-gl': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'mochitest-jetpack': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'webapprt-chrome': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'reftest': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'reftest-e10s': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'jsreftest': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'crashtest': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'crashtest-e10s': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'reftest-no-accel': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'xpcshell': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'cppunit': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'marionette': {
+ 'config_files': ["marionette/prod_config.py"],
+ },
+ 'jittest': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ 'web-platform-tests': {
+ 'config_files': ["web_platform_tests/prod_config.py"],
+ },
+ 'web-platform-tests-reftests': {
+ 'config_files': ["web_platform_tests/prod_config.py"],
+ },
+ 'mozbase': {
+ 'config_files': ["unittests/linux_unittest.py"],
+ },
+ },
+ },
+ },
'linux64-cc': {
'product_name': 'firefox',
'app_name': 'browser',
'brand_name': 'Minefield',
'builds_before_reboot': 1,
'unittest-env': {'DISPLAY': ':0'},
'enable_opt_unittests': True,
'enable_debug_unittests': False,
@@ -2191,17 +2291,17 @@ for platform in PLATFORMS.keys():
continue
if platform in BRANCHES[name]['platforms']:
if slave_platform in BRANCHES[name]['platforms'][platform]:
BRANCHES[name]['platforms'][platform][slave_platform]['opt_unittest_suites'] += LUCIDDREAM[:]
# Enable jittests on trunk trees https://bugzilla.mozilla.org/show_bug.cgi?id=973900
for p in PLATFORMS.keys():
# run in chunks on linux only
- if p in ['linux', 'linux64', 'linux64-asan', 'linux64-cc']:
+ if p in ['linux', 'linux64', 'linux64-asan', 'linux64-cc', 'linux64-tsan']:
jittests = JITTEST_CHUNKED
else:
jittests = JITTEST
for _, branch in items_at_least(BRANCHES, 'gecko_version', 31):
for sp in PLATFORMS[p]['slave_platforms']:
# See Bug 997946 - skip these on OS X 10.8 due to limited capacity
@@ -2371,17 +2471,17 @@ for branch in BRANCHES.keys():
if tests_key in BRANCHES[branch]:
tests = list(BRANCHES[branch]['%s_tests' % s])
tests[3] = [x for x in tests[3] if x not in platforms_for_os or x in enabled_platforms_for_os]
BRANCHES[branch]['%s_tests' % s] = tuple(tests)
# Versioned b2g branches shouldn't run mochitest-browser-chrome on linux debug builds
for name in [x for x in BRANCHES.keys() if x.startswith('mozilla-b2g')]:
branch = BRANCHES[name]
- for platform in ('linux', 'linux64', 'linux64-asan', 'linux64-cc'):
+ for platform in ('linux', 'linux64', 'linux64-asan', 'linux64-cc', 'linux64-tsan'):
for slave_platform in PLATFORMS[platform]['slave_platforms']:
if platform in branch['platforms'] and slave_platform in branch['platforms'][platform]:
for chunked_bc in MOCHITEST_BC_3:
if chunked_bc in branch['platforms'][platform][slave_platform]['debug_unittest_suites']:
branch['platforms'][platform][slave_platform]['debug_unittest_suites'].remove(chunked_bc)
# remove mochitest-browser-chrome and mochitest-devtools-chrome
@@ -2398,21 +2498,21 @@ for name in [x for x in BRANCHES.keys()
if (component[0] == 'mochitest-browser-chrome' or
component[0] == 'mochitest-devtools-chrome'):
unit_tests[element].remove(component)
except TypeError:
# not an iterable,
pass
-# Disable Linux64-cc in every branch except try
+# Disable Linux64-cc and linux64-tsan in every branch except try
for name in BRANCHES.keys():
if name in ('try',):
continue
- for platform in ('linux64-cc',):
+ for platform in ('linux64-cc', 'linux64-tsan'):
if platform in BRANCHES[name]['platforms']:
del BRANCHES[name]['platforms'][platform]
# Mac OSX signing changes in gecko 34 - bug 1117637, bug 1047584
for name, branch in items_before(BRANCHES, 'gecko_version', 34):
if 'macosx64' in BRANCHES[name]['platforms']:
BRANCHES[name]['platforms']['macosx64']['mac_res_subdir'] = 'MacOS'
--- a/mozilla/config.py
+++ b/mozilla/config.py
@@ -464,16 +464,116 @@ PLATFORM_VARS = {
('/builds/google-oauth-api.key', '/builds/google-oauth-api.key'),
('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
],
# The status of this build doesn't affect the last good revision
# algorithm for nightlies
'consider_for_nightly': False,
},
+ 'linux64-tsan': {
+ 'mozharness_python': '/tools/buildbot/bin/python',
+ 'reboot_command': [
+ '/tools/checkouts/mozharness/external_tools/count_and_reboot.py',
+ '-f', '../reboot_count.txt', '-n', '1', '-z'
+ ],
+ 'mozharness_repo_cache': '/tools/checkouts/mozharness',
+ 'tools_repo_cache': '/tools/checkouts/build-tools',
+ 'mozharness_desktop_build': {
+ 'script_name': 'scripts/fx_desktop_build.py',
+ 'extra_args': [
+ '--config', 'builds/releng_base_linux_64_builds.py',
+ '--custom-build-variant-cfg', 'tsan',
+ '--config', GLOBAL_VARS['mozharness_configs']['balrog'],
+ ],
+ 'script_timeout': 3 * 3600,
+ 'script_maxtime': int(5.5 * 3600),
+ },
+
+ 'product_name': 'firefox',
+ 'unittest_platform': 'linux64-tsan',
+ 'app_name': 'browser',
+ 'brand_name': 'Minefield',
+ 'base_name': 'Linux x86-64 %(branch)s tsan',
+ 'mozconfig': 'in_tree',
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/opt-tsan',
+ 'enable_xulrunner': False,
+ 'profiled_build': False,
+ 'builds_before_reboot': localconfig.BUILDS_BEFORE_REBOOT,
+ 'build_space': 12,
+ 'upload_symbols': False,
+ 'try_by_default': False,
+ 'download_symbols': False,
+ 'packageTests': True,
+ 'slaves': SLAVES['mock'],
+ 'platform_objdir': OBJDIR,
+ 'stage_product': 'firefox',
+ 'stage_platform': 'linux64-tsan',
+ 'update_platform': 'Linux_x86_64-gcc3',
+ 'enable_ccache': True,
+ 'enable_shared_checkouts': True,
+ 'env': {
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_OBJDIR': OBJDIR,
+ 'SYMBOL_SERVER_HOST': localconfig.SYMBOL_SERVER_HOST,
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': SYMBOL_SERVER_PATH,
+ 'POST_SYMBOL_UPLOAD_CMD': SYMBOL_SERVER_POST_UPLOAD_CMD,
+ 'SYMBOL_SERVER_SSH_KEY': "/home/mock_mozilla/.ssh/ffxbld_rsa",
+ 'MOZ_SYMBOLS_EXTRA_BUILDID': 'linux64-tsan',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin',
+ },
+ 'enable_opt_unittests': True,
+ 'enable_checktests': True,
+ 'enable_build_analysis': False,
+ 'updates_enabled': False,
+ 'create_partial': False,
+ 'test_pretty_names': False,
+ 'l10n_check_test': False,
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/linux64/tsan.manifest',
+ 'use_mock': True,
+ 'mock_target': 'mozilla-centos6-x86_64',
+ 'mock_packages': \
+ ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+ 'gtk2-devel', 'libnotify-devel', 'yasm',
+ 'alsa-lib-devel', 'libcurl-devel',
+ 'wireless-tools-devel', 'libX11-devel',
+ 'libXt-devel', 'mesa-libGL-devel',
+ 'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+ 'mpfr', # required for system compiler
+ 'xorg-x11-font*', # fonts required for PGO
+ 'imake', # required for makedepend!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind',
+ 'pulseaudio-libs-devel',
+ 'gstreamer-devel', 'gstreamer-plugins-base-devel',
+ 'freetype-2.3.11-6.el6_1.8.x86_64',
+ 'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+ ],
+ 'mock_copyin_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/gapi.data', '/builds/gapi.data'),
+ ('/builds/google-oauth-api.key', '/builds/google-oauth-api.key'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ],
+ # The status of this build doesn't affect the last good revision
+ # algorithm for nightlies
+ 'consider_for_nightly': False,
+ },
'linux64-asan-debug': {
'mozharness_python': '/tools/buildbot/bin/python',
'reboot_command': [
'/tools/checkouts/mozharness/external_tools/count_and_reboot.py',
'-f', '../reboot_count.txt', '-n', '1', '-z'
],
'mozharness_repo_cache': '/tools/checkouts/mozharness',
'tools_repo_cache': '/tools/checkouts/build-tools',
@@ -2268,16 +2368,17 @@ BRANCHES = {
},
'try': {
'branch_projects': ['spidermonkey_try'],
# The following platforms are not part of the default set,
# so only run on Try.
'extra_platforms': {
'linux64-sh-haz': {},
'linux64-cc': {},
+ 'linux64-tsan': {},
},
},
}
setMainFirefoxVersions(BRANCHES)
# Copy project branches into BRANCHES keys
for branch in ACTIVE_PROJECT_BRANCHES:
@@ -2783,16 +2884,17 @@ BRANCHES['try']['platforms']['win32']['s
BRANCHES['try']['platforms']['win64']['slaves'] = TRY_SLAVES['win64-rev2']
BRANCHES['try']['platforms']['win64-debug']['slaves'] = TRY_SLAVES['win64-rev2']
BRANCHES['try']['platforms']['macosx64']['slaves'] = TRY_SLAVES['macosx64-lion']
BRANCHES['try']['platforms']['linux-debug']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-debug']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-asan']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-asan-debug']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-st-an-debug']['slaves'] = TRY_SLAVES['mock']
+BRANCHES['try']['platforms']['linux64-tsan']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-sh-haz']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-br-haz']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['linux64-cc']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['win32-debug']['slaves'] = TRY_SLAVES['win64-rev2']
BRANCHES['try']['platforms']['macosx64-debug']['slaves'] = TRY_SLAVES['macosx64-lion']
BRANCHES['try']['platforms']['macosx64-st-an-debug']['slaves'] = TRY_SLAVES['macosx64-lion']
BRANCHES['try']['platforms']['android']['slaves'] = TRY_SLAVES['mock']
BRANCHES['try']['platforms']['android-api-9']['slaves'] = TRY_SLAVES['mock']