Bug 1253299 - TC Linux 64 ASAN debug and opt builds Tier 1 r=mtabara
authorKim Moir <kmoir@mozilla.com>
Wed, 01 Jun 2016 09:03:02 -0400
changeset 338944 fd184690f95c861e5e492cae580756afdb554f09
parent 338943 c3c15fd63bd8e483cea22981587c4d9a998c8046
child 338945 fced3739df6b02a0217fa11ca18e1563e39816d3
push id6249
push userjlund@mozilla.com
push dateMon, 01 Aug 2016 13:59:36 +0000
treeherdermozilla-beta@bad9d4f5bf7e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmtabara
bugs1253299
milestone49.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1253299 - TC Linux 64 ASAN debug and opt builds Tier 1 r=mtabara
browser/config/tooltool-manifests/linux64/asan-tc.manifest
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
testing/taskcluster/tasks/branches/base_job_flags.yml
testing/taskcluster/tasks/branches/base_job_flags.yml.orig
testing/taskcluster/tasks/branches/base_jobs.yml
testing/taskcluster/tasks/branches/try/job_flags.yml
testing/taskcluster/tasks/builds/dbg_linux64-asan.yml
testing/taskcluster/tasks/builds/opt_linux64-asan.yml
new file mode 100644
--- /dev/null
+++ b/browser/config/tooltool-manifests/linux64/asan-tc.manifest
@@ -0,0 +1,27 @@
+[
+{
+"version": "gcc 4.8.5 + PR64905",
+"size": 80160264,
+"digest": "c1a9dc9da289b8528874d16300b9d13a997cec99195bb0bc46ff665216d8535d6d6cb5af6b4b1f2749af6815dab12e703fdb3849014e5c23a70eff351a0baf4e",
+"algorithm": "sha512",
+"filename": "gcc.tar.xz",
+"unpack": true
+},
+{
+"version": "clang 3.9.0/r262971",
+"size": 117866656,
+"visibility": "public",
+"digest": "5529b4549e39838faf0f276fb5d1d9cf9972295a8fb2451e25b0490e4a94822bff9646d723cc3137bfc2eb7e7bcff8a25a331b881ec6ca0b73e29fd7dbb972f5",
+"algorithm": "sha512",
+"filename": "clang.tar.xz",
+ "unpack": true
+ },
+{
+"size": 12072532,
+"digest": "3915f8ec396c56a8a92e6f9695b70f09ce9d1582359d1258e37e3fd43a143bc974410e4cfc27f500e095f34a8956206e0ebf799b7287f0f38def0d5e34ed71c9",
+"algorithm": "sha512",
+"filename": "gtk3.tar.xz",
+"setup": "setup.sh",
+"unpack": true
+}
+]
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py
@@ -0,0 +1,48 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'checkout-sources',
+        'setup-mock',
+        'build',
+        'upload-files',
+        'sendchange',
+        'check-test',
+        # 'generate-build-stats',
+        # 'update',
+    ],
+    'stage_platform': 'linux64-asan',
+    'publish_nightly_en_US_routes': False,
+    'build_type': 'asan',
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+asan-tc.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/home/worker/workspace/build/src/gcc/bin:/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',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/nightly-asan',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py
@@ -0,0 +1,49 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'checkout-sources',
+        'setup-mock',
+        'build',
+        'upload-files',
+        'sendchange',
+        'check-test',
+        # 'generate-build-stats',
+        # 'update',
+    ],
+    'stage_platform': 'linux64-asan-debug',
+    'publish_nightly_en_US_routes': False,
+    'build_type': 'asan-debug',
+    'debug_build': True,
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+asan-tc.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/home/worker/workspace/build/src/gcc/bin:/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',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/debug-asan',
+    #######################
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -337,22 +337,24 @@ class BuildOptionParser(object):
     # add to this list and you can automagically do things like
     # --custom-build-variant-cfg asan
     # and the script will pull up the appropriate path for the config
     # against the current platform and bits.
     # *It will warn and fail if there is not a config for the current
     # platform/bits
     build_variants = {
         'asan': 'builds/releng_sub_%s_configs/%s_asan.py',
+        'asan-tc': 'builds/releng_sub_%s_configs/%s_asan_tc.py',
         'tsan': 'builds/releng_sub_%s_configs/%s_tsan.py',
         'b2g-debug': 'b2g/releng_sub_%s_configs/%s_debug.py',
         'cross-debug': 'builds/releng_sub_%s_configs/%s_cross_debug.py',
         'cross-opt': 'builds/releng_sub_%s_configs/%s_cross_opt.py',
         'debug': 'builds/releng_sub_%s_configs/%s_debug.py',
         'asan-and-debug': 'builds/releng_sub_%s_configs/%s_asan_and_debug.py',
+        'asan-tc-and-debug': 'builds/releng_sub_%s_configs/%s_asan_tc_and_debug.py',
         'stat-and-debug': 'builds/releng_sub_%s_configs/%s_stat_and_debug.py',
         'mulet': 'builds/releng_sub_%s_configs/%s_mulet.py',
         'code-coverage': 'builds/releng_sub_%s_configs/%s_code_coverage.py',
         'graphene': 'builds/releng_sub_%s_configs/%s_graphene.py',
         'horizon': 'builds/releng_sub_%s_configs/%s_horizon.py',
         'source': 'builds/releng_sub_%s_configs/%s_source.py',
         'api-9': 'builds/releng_sub_%s_configs/%s_api_9.py',
         'api-11': 'builds/releng_sub_%s_configs/%s_api_11.py',
--- a/testing/taskcluster/tasks/branches/base_job_flags.yml
+++ b/testing/taskcluster/tasks/branches/base_job_flags.yml
@@ -92,16 +92,17 @@ flags:
     - aries-eng
     - android-api-15
     - android-api-15-frontend
     - android-partner-sample1
     - linux
     - linux64
     - linux64-st-an
     - linux64-artifact
+    - linux64-asan
     - linux64-pgo
     - macosx64
     - macosx64-st-an
 
   tests:
     - cppunit
     - crashtest
     - crashtest-e10s
new file mode 100644
--- /dev/null
+++ b/testing/taskcluster/tasks/branches/base_job_flags.yml.orig
@@ -0,0 +1,152 @@
+---
+# List of all possible flags for each category of tests used in the case where
+# "all" is specified.
+flags:
+  aliases:
+    # Aliases specify shorthands that can be used in try syntax.  An alias can
+    # specify a simple replacement:
+    #   fb: foobar  -- replaces fb with foobar
+    #
+    # or an expansion into several test suites (which cannot themselves be
+    # aliases):
+    #   footests:
+    #     - foo
+    #     - bar
+    #     - bing
+    #
+    # or a pattern or patterns (identified by leading and trailing /) that
+    # will be matched against the available flags
+    #   dt: /devtools.*/
+    #   footests:
+    #     - browser-foo
+    #     - /foo.*/   -- selects all defined flags starting with "foo"
+    #
+    # Note that alias expansion is performed in the absence of any chunk
+    # prefixes.  For example, the first example above would replace "foo-7"
+    # with "foobar-7".  Note that a few aliases allowed chunks to be specified
+    # without a leading `-`, for example 'mochitest-dt1'. That's no longer
+    # supported.
+    cppunit: /cppunit.*/
+    crashtest: /crashtest.*/
+    crashtest-e10s: /crashtest-e10s.*/
+    e10s: /.*e10s.*/
+    external-media-tests: /external-media-tests.*/
+    firefox-ui-functional: /firefox-ui-functional.*/
+    firefox-ui-functional-e10s: /firefox-ui-functional-e10s.*/
+    gaia-js-integration: /.*gaia-js-integration.*/
+    gtest: /gtest.*/
+    jittest: /jittest.*/
+    jittests: /jittest.*/
+    jsreftest: /jsreftest.*/
+    jsreftest-e10s: /jsreftest-e10s.*/
+    luciddream: /luciddream.*/
+    marionette: /marionette.*/
+    marionette-e10s: /marionette-e10s.*/
+    mochitest: /mochitest.*/
+    mochitests: /mochitest.*/
+    mochitest-e10s: /mochitest-e10s.*/
+    mochitests-e10s: /mochitest-e10s.*/
+    mochitest-debug: /mochitest-debug-.*/
+    mochitest-a11y: /.*mochitest-a11y.*/
+    mochitest-bc: /mochitest-browser-chrome.*/
+    mochitest-bc-e10s: /mochitest-browser-chrome-e10s.*/
+    mochitest-browser-chrome: /mochitest-browser-chrome.*/
+    mochitest-browser-chrome-e10s: /mochitest-browser-chrome-e10s.*/
+    mochitest-chrome: /.*mochitest-chrome.*/
+    mochitest-dt: /mochitest-devtools-chrome.*/
+    mochitest-dt-e10s: /mochitest-devtools-chrome-e10s.*/
+    mochitest-gl: /mochitest-webgl.*/
+    mochitest-gl-e10s: /mochitest-webgl-e10s.*/
+    mochitest-gpu: /mochitest-gpu.*/
+    mochitest-gpu-e10s: /mochitest-gpu-e10s.*/
+    mochitest-clipboard: /mochitest-clipboard.*/
+    mochitest-clipboard-e10s: /mochitest-clipboard-e10s.*/
+    mochitest-jetpack: /mochitest-jetpack.*/
+    mochitest-media: /mochitest-media.*/
+    mochitest-media-e10s: /mochitest-media-e10s.*/
+    mochitest-vg: /mochitest-valgrind.*/
+    reftest: /(plain-)?reftest.*/
+    reftest-no-accel: /(plain-)?reftest-no-accel.*/
+    reftests: /(plain-)?reftest.*/
+    reftests-e10s: /(plain-)?reftest-e10s.*/
+    reftest-no-accel-e10s: /(plain-)?reftest-no-accel-e10s.*/
+    robocop: /robocop.*/
+    web-platform-test: /web-platform-tests.*/
+    web-platform-tests: /web-platform-tests.*/
+    web-platform-tests-e10s: /web-platform-tests-e10s.*/
+    web-platform-tests-reftests: /web-platform-tests-reftests.*/
+    web-platform-tests-reftests-e10s: /web-platform-tests-reftests-e10s.*/
+    xpcshell: /xpcshell.*/
+
+  builds:
+    - linux32_gecko  # b2g desktop linux 32 bit
+    - linux64_gecko  # b2g desktop linux 64 bit
+    - linux64-mulet  # Firefox desktop - b2g gecko linux 64 bit
+    - linux64-haz    # Firefox desktop browser, rooting hazard analysis
+    - linux64-shell-haz  # JS shell, rooting hazard analysis
+    - linux64-mulet-haz  # Firefox desktop - b2g gecko linux 64 bit, rooting hazard analysis
+    - macosx64_gecko # b2g desktop osx 64 bit
+    - win32_gecko    # b2g desktop win 32 bit
+    - nexus-5l-eng
+    - aries
+    - aries-eng
+    - android-api-15
+    - android-api-15-frontend
+    - android-partner-sample1
+    - linux
+    - linux64
+    - linux64-st-an
+    - linux64-artifact
+    - linux64-pgo
+    - macosx64
+    - macosx64-st-an
+
+  tests:
+    - cppunit
+    - crashtest
+    - crashtest-e10s
+    - external-media-tests
+    - firefox-ui-functional
+    - firefox-ui-functional-e10s
+    - gaia-build
+    - gaia-build-unit
+    - gaia-js-integration
+    - gaia-linter
+    - gaia-unit
+    - gaia-unit-oop
+    - gtest
+    - jittests
+    - jsreftest
+    - jsreftest-e10s
+    - luciddream
+    - marionette
+    - marionette-e10s
+    - marionette-webapi
+    - mochitest
+    - mochitest-a11y
+    - mochitest-browser-chrome
+    - mochitest-browser-chrome-e10s
+    - mochitest-chrome
+    - mochitest-devtools-chrome
+    - mochitest-devtools-chrome-e10s
+    - mochitest-e10s
+    - mochitest-jetpack
+    - mochitest-media
+    - mochitest-media-e10s
+    - mochitest-webgl
+    - mochitest-webgl-e10s
+    - mochitest-gpu
+    - mochitest-gpu-e10s
+    - mochitest-clipboard
+    - mochitest-clipboard-e10s
+    - mochitest-valgrind
+    - mozmill
+    - reftest
+    - reftest-e10s
+    - reftest-no-accel
+    - reftest-no-accel-e10s
+    - web-platform-tests
+    - web-platform-tests-e10s
+    - web-platform-tests-reftests
+    - web-platform-tests-reftests-e10s
+    - xpcshell
--- a/testing/taskcluster/tasks/branches/base_jobs.yml
+++ b/testing/taskcluster/tasks/branches/base_jobs.yml
@@ -43,16 +43,24 @@ builds:
       opt:
         task: tasks/builds/opt_linux64_artifact.yml
   linux64-st-an:
     platforms:
       - Linux64 Static Analysis
     types:
       opt:
         task: tasks/builds/opt_linux64_st-an.yml
+  linux64-asan:
+    platforms:
+      - Linux64 ASan
+    types:
+      opt:
+        task: tasks/builds/opt_linux64-asan.yml
+      debug:
+        task: tasks/builds/dbg_linux64-asan.yml
   linux64-haz:
     platforms:
       - Linux64
     types:
       debug:
         task: tasks/builds/haz_linux.yml
   linux64-shell-haz:
     platforms:
--- a/testing/taskcluster/tasks/branches/try/job_flags.yml
+++ b/testing/taskcluster/tasks/branches/try/job_flags.yml
@@ -60,16 +60,24 @@ builds:
   macosx64:
     platforms:
       - MacOSX64
     types:
       opt:
         task: tasks/builds/opt_macosx64.yml
       debug:
         task: tasks/builds/dbg_macosx64.yml
+  linux64-asan:
+    platforms:
+      - Linux64 ASan
+    types:
+      opt:
+        task: tasks/builds/opt_linux64-asan.yml
+      debug:
+        task: tasks/builds/dbg_linux64-asan.yml
   macosx64-st-an:
     platforms:
       - MacOSX64 Static Analysis
     types:
       opt:
         task: tasks/builds/opt_macosx64_st-an.yml
 
 post-build:
new file mode 100644
--- /dev/null
+++ b/testing/taskcluster/tasks/builds/dbg_linux64-asan.yml
@@ -0,0 +1,30 @@
+$inherits:
+  from: 'tasks/builds/base_linux64.yml'
+  variables:
+    build_name: 'linux64-asan'
+    build_type: 'dbg'
+task:
+  metadata:
+      name: '[TC] Linux64 ASan Dbg'
+      description: 'Linux64 ASan Dbg'
+
+  routes:
+    - 'index.buildbot.branches.{{project}}.linux64-asan'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.linux64-asan'
+
+  workerType: dbg-linux64
+
+  payload:
+    env:
+      MH_CUSTOM_BUILD_VARIANT_CFG: 'asan-tc-and-debug'
+
+  extra:
+    treeherder:
+      groupSymbol: tc
+      groupName: Submitted by taskcluster
+      symbol: Bd
+      machine:
+        # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
+        platform: linux64
+      collection:
+        asan: true
new file mode 100644
--- /dev/null
+++ b/testing/taskcluster/tasks/builds/opt_linux64-asan.yml
@@ -0,0 +1,30 @@
+$inherits:
+  from: 'tasks/builds/base_linux64.yml'
+  variables:
+    build_name: 'linux64-asan'
+    build_type: 'opt'
+task:
+  metadata:
+      name: '[TC] Linux64 ASan Opt'
+      description: 'Linux64 ASan Opt'
+
+  routes:
+    - 'index.buildbot.branches.{{project}}.linux64-asan'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.linux64-asan'
+
+  workerType: opt-linux64
+
+  payload:
+    env:
+      MH_CUSTOM_BUILD_VARIANT_CFG: 'asan-tc'
+
+  extra:
+    treeherder:
+      groupSymbol: tc
+      groupName: Submitted by taskcluster
+      machine:
+        # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
+        platform: linux64
+      symbol: Bo
+      collection:
+        asan: true