Bug 1470079 - Add fuzzing coverage build to taskcluster
MozReview-Commit-ID: K208Oniff6e
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly-fuzzing-cov
@@ -0,0 +1,38 @@
+MOZ_AUTOMATION_L10N_CHECK=0
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+# Enable MOZ_ALLOW_LEGACY_EXTENSIONS
+ac_add_options "MOZ_ALLOW_LEGACY_EXTENSIONS=1"
+
+. $topsrcdir/build/mozconfig.stylo
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+ac_add_options --disable-sandbox
+ac_add_options --disable-profiling
+ac_add_options --disable-warnings-as-errors
+ac_add_options --enable-coverage
+
+export CFLAGS="--coverage"
+export CXXFLAGS="--coverage"
+export LDFLAGS="--coverage"
+
+ac_add_options --enable-fuzzing
+unset MOZ_STDCXX_COMPAT
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan-cov
+
+. "$topsrcdir/build/mozconfig.common.override"
+
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -3,17 +3,17 @@ linux64/opt:
index:
product: firefox
job-name: linux64-opt
treeherder:
platform: linux64/opt
symbol: B
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -60,17 +60,17 @@ linux64-dmd/opt:
product: firefox
job-name: linux64-dmd-opt
treeherder:
platform: linux64-dmd/opt
symbol: Bdmd
tier: 2
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
extra-config:
@@ -91,17 +91,17 @@ linux64/pgo:
index:
product: firefox
job-name: linux64-pgo
treeherder:
platform: linux64/pgo
symbol: B
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
options: [enable-pgo]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -120,17 +120,17 @@ linux64-fuzzing/debug:
index:
product: firefox
job-name: linux64-fuzzing-debug
treeherder:
platform: linux64/debug
symbol: Bf
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
env:
PERFHERDER_EXTRA_OPTIONS: fuzzing
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
@@ -151,17 +151,17 @@ linux64/debug:
index:
product: firefox
job-name: linux64-debug
treeherder:
platform: linux64/debug
symbol: B
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -213,17 +213,17 @@ linux64-devedition-nightly/opt:
product: devedition
job-name: linux64-opt
type: nightly
treeherder:
platform: linux64-devedition/opt
symbol: N
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
- taskcluster_nightly.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -244,17 +244,17 @@ linux64-base-toolchains/opt:
index:
product: firefox
job-name: linux64-base-toolchains-opt
treeherder:
platform: linux64/opt
symbol: Bb
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
env:
PERFHERDER_EXTRA_OPTIONS: base-toolchains
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
@@ -273,17 +273,17 @@ linux64-base-toolchains/debug:
index:
product: firefox
job-name: linux64-base-toolchains-debug
treeherder:
platform: linux64/debug
symbol: Bb
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
env:
PERFHERDER_EXTRA_OPTIONS: base-toolchains
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
@@ -304,17 +304,17 @@ linux/opt:
product: firefox
job-name: linux-opt
treeherder:
platform: linux32/opt
symbol: B
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: debian7-i386-build}
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_32_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -333,17 +333,17 @@ linux/debug:
product: firefox
job-name: linux-debug
treeherder:
platform: linux32/debug
symbol: B
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: debian7-i386-build}
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_32_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -363,17 +363,17 @@ linux/pgo:
product: firefox
job-name: linux-pgo
treeherder:
platform: linux32/pgo
symbol: B
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: debian7-i386-build}
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
options: [enable-pgo]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_32_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -466,17 +466,17 @@ linux-devedition-nightly/opt:
job-name: linux-opt
type: nightly
treeherder:
platform: linux32-devedition/opt
symbol: N
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: debian7-i386-build}
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_32_builds.py
- taskcluster_nightly.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -503,17 +503,17 @@ linux-nightly/opt:
job-name: linux-opt
type: nightly
treeherder:
platform: linux32/opt
symbol: N
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: debian7-i386-build}
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_32_builds.py
- taskcluster_nightly.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -522,30 +522,29 @@ linux-nightly/opt:
need-xvfb: true
toolchains:
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-rust-size
- linux64-sccache
-
linux64-asan/opt:
description: "Linux64 Opt ASAN"
index:
product: firefox
job-name: linux64-asan-opt
treeherder:
platform: linux64/asan
symbol: Bo
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
env:
PERFHERDER_EXTRA_OPTIONS: "opt asan"
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -554,39 +553,69 @@ linux64-asan/opt:
need-xvfb: true
toolchains:
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-rust-size
- linux64-sccache
-
linux64-asan-fuzzing/opt:
description: "Linux64 Fuzzing Opt ASAN"
index:
product: firefox
job-name: linux64-fuzzing-asan-opt
treeherder:
platform: linux64/asan
symbol: Bof
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
env:
PERFHERDER_EXTRA_OPTIONS: asan-fuzzing
+ max-run-time: 36000
+ run:
+ using: mozharness
+ actions: [get-secrets build check-test update]
+ config:
+ - builds/releng_base_firefox.py
+ - builds/releng_base_linux_64_builds.py
+ script: "mozharness/scripts/fx_desktop_build.py"
+ secrets: true
+ custom-build-variant-cfg: fuzzing-asan-tc
+ tooltool-downloads: public
+ need-xvfb: true
+ toolchains:
+ - linux64-clang
+ - linux64-gcc
+ - linux64-rust
+ - linux64-rust-size
+ - linux64-sccache
+
+linux64-asan-fuzzing-ccov/opt:
+ description: "Linux64 Fuzzing Opt ASAN w/ Coverage"
+ index:
+ product: firefox
+ job-name: linux64-fuzzing-asan-opt-cov
+ treeherder:
+ platform: linux64/asan
+ symbol: Bof
+ worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+ worker:
+ env:
+ PERFHERDER_EXTRA_OPTIONS: asan-fuzzing
max-run-time: 3600
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
- custom-build-variant-cfg: fuzzing-asan-tc
+ custom-build-variant-cfg: fuzzing-cov
tooltool-downloads: public
need-xvfb: true
toolchains:
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-rust-size
- linux64-sccache
@@ -601,17 +630,17 @@ linux64-asan-reporter-nightly/opt:
type: nightly
treeherder:
platform: linux64-asan-reporter/opt
symbol: BoR
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
env:
PERFHERDER_EXTRA_OPTIONS: asan-reporter
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
- taskcluster_nightly.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -633,17 +662,17 @@ linux64-asan/debug:
job-name: linux64-asan-debug
treeherder:
platform: linux64/asan
symbol: Bd
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
env:
PERFHERDER_EXTRA_OPTIONS: "debug asan"
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -665,17 +694,17 @@ linux64-lto/opt:
treeherder:
platform: linux64/lto
symbol: Bo
tier: 2
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
env:
PERFHERDER_EXTRA_OPTIONS: "opt lto"
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -697,17 +726,17 @@ linux64-lto/debug:
treeherder:
platform: linux64/lto
symbol: Bd
tier: 2
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
env:
PERFHERDER_EXTRA_OPTIONS: "debug lto"
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -731,17 +760,17 @@ linux64-nightly/opt:
product: firefox
job-name: linux64-opt
type: nightly
treeherder:
platform: linux64/opt
symbol: N
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
- taskcluster_nightly.py
script: "mozharness/scripts/fx_desktop_build.py"
@@ -859,17 +888,17 @@ linux64-tup/opt:
product: firefox
job-name: linux64-tup-opt
treeherder:
platform: linux64/opt
symbol: Btup
tier: 2
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
env:
PERFHERDER_EXTRA_OPTIONS: tup
run:
using: mozharness
actions: [get-secrets build update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
@@ -892,17 +921,17 @@ linux64-jsdcov/opt:
job-name: linux64-jsdcov-opt
treeherder:
platform: linux64-jsdcov/opt
symbol: B
tier: 2
run-on-projects: ['mozilla-central', 'try']
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -921,17 +950,17 @@ linux64-ccov/debug:
job-name: linux64-ccov-debug
treeherder:
platform: linux64-ccov/debug
symbol: B
tier: 2
run-on-projects: ['mozilla-central', 'try']
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -950,17 +979,17 @@ linux64-ccov/opt:
job-name: linux64-ccov-opt
treeherder:
platform: linux64-ccov/opt
symbol: B
tier: 2
run-on-projects: ['try']
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 7200
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -978,17 +1007,17 @@ linux64-add-on-devel/opt:
product: firefox
job-name: linux64-add-on-devel
treeherder:
platform: linux64-add-on-devel/opt
symbol: B
tier: 2
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
- max-run-time: 3600
+ max-run-time: 36000
run:
using: mozharness
actions: [get-secrets build check-test update]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: "mozharness/scripts/fx_desktop_build.py"
secrets: true
@@ -996,9 +1025,9 @@ linux64-add-on-devel/opt:
tooltool-downloads: public
need-xvfb: true
run-on-projects: ['mozilla-beta', 'mozilla-release', 'mozilla-esr45']
toolchains:
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-rust-size
- - linux64-sccache
+ - linux64-sccache
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_fuzzing_cov.py
@@ -0,0 +1,30 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'build',
+ 'check-test',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-fuzzing-cov',
+ #### 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': '%(abs_obj_dir)s',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'LC_ALL': 'C',
+ 'ASAN_OPTIONS': 'detect_leaks=0',
+ ## 64 bit specific
+ 'PATH': '/usr/local/bin:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin',
+ },
+ 'mozconfig_variant': 'nightly-fuzzing-cov',
+ #######################
+}
\ No newline at end of file
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -409,16 +409,17 @@ class BuildOptionParser(object):
'cross-debug': 'builds/releng_sub_%s_configs/%s_cross_debug.py',
'cross-debug-searchfox': 'builds/releng_sub_%s_configs/%s_cross_debug_searchfox.py',
'cross-debug-artifact': 'builds/releng_sub_%s_configs/%s_cross_debug_artifact.py',
'cross-noopt-debug': 'builds/releng_sub_%s_configs/%s_cross_noopt_debug.py',
'cross-fuzzing-asan': 'builds/releng_sub_%s_configs/%s_cross_fuzzing_asan.py',
'cross-artifact': 'builds/releng_sub_%s_configs/%s_cross_artifact.py',
'debug': 'builds/releng_sub_%s_configs/%s_debug.py',
'fuzzing-debug': 'builds/releng_sub_%s_configs/%s_fuzzing_debug.py',
+ 'fuzzing-cov': 'builds/releng_sub_%s_configs/%s_fuzzing_cov.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',
'lto-tc': 'builds/releng_sub_%s_configs/%s_lto_tc.py',
'lto-tc-and-debug': 'builds/releng_sub_%s_configs/%s_lto_tc_and_debug.py',
'stat-and-debug': 'builds/releng_sub_%s_configs/%s_stat_and_debug.py',
'code-coverage-debug': 'builds/releng_sub_%s_configs/%s_code_coverage_debug.py',
'code-coverage-opt': 'builds/releng_sub_%s_configs/%s_code_coverage_opt.py',
'source': 'builds/releng_sub_%s_configs/%s_source.py',