Bug 1456662 - change ccov opt to debug and add an opt build. r?gps
MozReview-Commit-ID: 1KoeAkJlzD1
--- a/browser/config/mozconfigs/linux64/code-coverage
+++ b/browser/config/mozconfigs/linux64/code-coverage
@@ -1,14 +1,14 @@
-. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
-
-TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
-
-ac_add_options --disable-install-strip
-ac_add_options --disable-elf-hack
-ac_add_options --enable-debug
-ac_add_options --disable-sandbox
-ac_add_options --disable-profiling
-ac_add_options --enable-coverage
-
-export CFLAGS="--coverage"
-export CXXFLAGS="--coverage"
-export LDFLAGS="--coverage -L$TOOLTOOL_DIR/gtk3/usr/local/lib"
+. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
+
+TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
+
+ac_add_options --disable-install-strip
+ac_add_options --disable-elf-hack
+ac_add_options --disable-debug
+ac_add_options --disable-sandbox
+ac_add_options --disable-profiling
+ac_add_options --enable-coverage
+
+export CFLAGS="--coverage"
+export CXXFLAGS="--coverage"
+export LDFLAGS="--coverage -L$TOOLTOOL_DIR/gtk3/usr/local/lib"
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/code-coverage-debug
@@ -0,0 +1,14 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
+
+TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
+
+ac_add_options --disable-install-strip
+ac_add_options --disable-elf-hack
+ac_add_options --enable-debug
+ac_add_options --disable-sandbox
+ac_add_options --disable-profiling
+ac_add_options --enable-coverage
+
+export CFLAGS="--coverage"
+export CXXFLAGS="--coverage"
+export LDFLAGS="--coverage -L$TOOLTOOL_DIR/gtk3/usr/local/lib"
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -861,16 +861,45 @@ linux64-ccov/opt:
custom-build-variant-cfg: code-coverage
tooltool-downloads: public
need-xvfb: true
toolchains:
- linux64-clang-4
- linux64-rust
- linux64-gcc
+linux64-ccov/debug:
+ description: "Linux64-CCov Debug"
+ index:
+ product: firefox
+ job-name: linux64-ccov-debug
+ treeherder:
+ platform: linux64-ccov/debug
+ symbol: B
+ tier: 2
+ run-on-projects: []
+ worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+ worker:
+ 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: code-coverage-debug
+ tooltool-downloads: public
+ need-xvfb: true
+ toolchains:
+ - linux64-clang-4
+ - linux64-rust
+ - linux64-gcc
+
linux64-add-on-devel/opt:
description: "Linux64 add-on-devel"
index:
product: firefox
job-name: linux64-add-on-devel
treeherder:
platform: linux64-add-on-devel/opt
symbol: B
--- a/taskcluster/ci/test/talos.yml
+++ b/taskcluster/ci/test/talos.yml
@@ -16,17 +16,17 @@ job-defaults:
config:
by-test-platform:
macosx.*:
- talos/mac_config.py
windows.*:
- talos/windows_config.py
windows10-64-ccov/debug:
- talos/windows_vm_config.py
- linux64-ccov/opt:
+ linux64-ccov/*:
- talos/linux64_config_taskcluster.py
default:
- talos/linux_config.py
talos-chrome:
description: "Talos chrome"
try-name: chromez
treeherder-symbol: T(c)
--- a/taskcluster/ci/test/test-platforms.yml
+++ b/taskcluster/ci/test/test-platforms.yml
@@ -106,16 +106,23 @@ linux64-qr/debug:
linux64-ccov/opt:
build-platform: linux64-ccov/opt
test-sets:
- common-tests
- web-platform-tests
- awsy
- talos
+linux64-ccov/debug:
+ build-platform: linux64-ccov/debug
+ test-sets:
+ - common-tests
+ - web-platform-tests
+ - awsy
+ - talos
linux64-jsdcov/opt:
build-platform: linux64-jsdcov/opt
test-sets:
- jsdcov-code-coverage-tests
##
# Windows platforms (matching /windows.*/)
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -675,17 +675,17 @@ def handle_suite_category(config, tests)
if not any(arg.startswith(category_arg) for arg in extra):
extra.append('{}={}'.format(category_arg, flavor))
yield test
@transforms.add
def enable_code_coverage(config, tests):
- """Enable code coverage for the linux64-ccov/opt & linux64-jsdcov/opt & win64-ccov/debug
+ """Enable code coverage for the linux64-ccov/debug & linux64-ccov/opt & linux64-jsdcov/opt & win64-ccov/debug
build-platforms"""
for test in tests:
if 'ccov' in test['build-platform'] and not test['test-name'].startswith('test-verify'):
test['mozharness'].setdefault('extra-options', []).append('--code-coverage')
test['instance-size'] = 'xlarge'
# Ensure we don't run on inbound/autoland/beta, but if the test is try only, ignore it
if 'mozilla-central' in test['run-on-projects'] or \
test['run-on-projects'] == 'built-projects':
@@ -794,48 +794,48 @@ def split_chunks(config, tests):
def perfile_number_of_chunks(config, type):
# A rough estimate of how many chunks we need based on simple rules
# for determining what a test file is.
# TODO: Make this flexible based on coverage vs verify || test type
tests_per_chunk = 10.0
- if type.startswith('test-verify-wpt'):
- file_patterns = ['testing/web-platform/tests/**']
- elif type.startswith('test-verify-gpu'):
- file_patterns = ['**/*webgl*/**/test_*',
- '**/dom/canvas/**/test_*',
- '**/gfx/tests/**/test_*',
+ if type.startswith('test-verify-wpt'):
+ file_patterns = ['testing/web-platform/tests/**']
+ elif type.startswith('test-verify-gpu'):
+ file_patterns = ['**/*webgl*/**/test_*',
+ '**/dom/canvas/**/test_*',
+ '**/gfx/tests/**/test_*',
'**/devtools/canvasdebugger/**/browser_*',
'**/reftest*/**']
- elif type.startswith('test-verify'):
- file_patterns = ['**/test_*',
- '**/browser_*',
- '**/crashtest*/**',
- 'js/src/test/test/',
- 'js/src/test/non262/',
- 'js/src/test/test262/']
+ elif type.startswith('test-verify'):
+ file_patterns = ['**/test_*',
+ '**/browser_*',
+ '**/crashtest*/**',
+ 'js/src/test/test/',
+ 'js/src/test/non262/',
+ 'js/src/test/test262/']
changed_files = files_changed.get_changed_files(config.params.get('head_repository'),
config.params.get('head_rev'))
test_count = 0
- for pattern in file_patterns:
- for path in changed_files:
- if mozpackmatch(path, pattern):
- gpu = False
- if type == 'test-verify-e10s':
- # file_patterns for test-verify will pick up some gpu tests, lets ignore
- # in the case of reftest, we will not have any in the regular case
- gpu_dirs = ['dom/canvas', 'gfx/tests', 'devtools/canvasdebugger', 'webgl']
- for gdir in gpu_dirs:
- if len(path.split(gdir)) > 1:
- gpu = True
-
- if not gpu:
+ for pattern in file_patterns:
+ for path in changed_files:
+ if mozpackmatch(path, pattern):
+ gpu = False
+ if type == 'test-verify-e10s':
+ # file_patterns for test-verify will pick up some gpu tests, lets ignore
+ # in the case of reftest, we will not have any in the regular case
+ gpu_dirs = ['dom/canvas', 'gfx/tests', 'devtools/canvasdebugger', 'webgl']
+ for gdir in gpu_dirs:
+ if len(path.split(gdir)) > 1:
+ gpu = True
+
+ if not gpu:
test_count += 1
chunks = test_count/tests_per_chunk
return int(math.ceil(chunks))
@transforms.add
def allow_software_gl_layers(config, tests):
@@ -943,17 +943,19 @@ def set_worker_type(config, tests):
else:
# the other jobs run on a vm which may or may not be a win10 vm
win_worker_type_platform = WINDOWS_WORKER_TYPES[
test_platform.split('/')[0]
]
# now we have the right platform set the worker type accordingly
test['worker-type'] = win_worker_type_platform[test['virtualization']]
elif test_platform.startswith('linux') or test_platform.startswith('android'):
- if test.get('suite', '') == 'talos' and test['build-platform'] != 'linux64-ccov/opt':
+ if test.get('suite', '') == 'talos' and \
+ test['build-platform'] != 'linux64-ccov/opt' and \
+ test['build-platform'] != 'linux64-ccov/opt':
test['worker-type'] = 'releng-hardware/gecko-t-linux-talos'
else:
test['worker-type'] = LINUX_WORKER_TYPES[test['instance-size']]
else:
raise Exception("unknown test_platform {}".format(test_platform))
yield test
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
@@ -1,28 +1,28 @@
-import os
-
-config = {
- 'default_actions': [
- 'clobber',
- 'build',
- 'check-test',
- 'update', # decided by query_is_nightly()
- ],
- 'stage_platform': 'linux64-ccov',
- #### 64 bit build specific #####
- 'env': {
- 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
- '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',
- ## 64 bit specific
- 'PATH': '/usr/local/bin:/bin:\
-/usr/bin:/usr/local/sbin:/usr/sbin:/sbin',
- },
- 'mozconfig_variant': 'code-coverage',
- #######################
-}
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'build',
+ 'check-test',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'linux64-ccov',
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ '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',
+ ## 64 bit specific
+ 'PATH': '/usr/local/bin:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin',
+ },
+ 'mozconfig_variant': 'code-coverage',
+ #######################
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage_debug.py
@@ -0,0 +1,28 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'build',
+ 'check-test',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'linux64-ccov-debug',
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ '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',
+ ## 64 bit specific
+ 'PATH': '/usr/local/bin:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin',
+ },
+ 'mozconfig_variant': 'code-coverage-debug',
+ #######################
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -416,16 +416,17 @@ class BuildOptionParser(object):
'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',
'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',
'code-coverage': 'builds/releng_sub_%s_configs/%s_code_coverage.py',
+ 'code-coverage-debug': 'builds/releng_sub_%s_configs/%s_code_coverage_debug.py',
'source': 'builds/releng_sub_%s_configs/%s_source.py',
'noopt-debug': 'builds/releng_sub_%s_configs/%s_noopt_debug.py',
'api-16-gradle-dependencies': 'builds/releng_sub_%s_configs/%s_api_16_gradle_dependencies.py',
'api-16': 'builds/releng_sub_%s_configs/%s_api_16.py',
'api-16-artifact': 'builds/releng_sub_%s_configs/%s_api_16_artifact.py',
'api-16-debug': 'builds/releng_sub_%s_configs/%s_api_16_debug.py',
'api-16-debug-artifact': 'builds/releng_sub_%s_configs/%s_api_16_debug_artifact.py',
'api-16-gradle': 'builds/releng_sub_%s_configs/%s_api_16_gradle.py',