Commit fe38ad57 authored by machenbach's avatar machenbach Committed by Commit bot

[coverage] Filter some files from instrumentation.

This filters test and third_party files to get a speed-up
when running tests and when collecting profile data.

BUG=chromium:568949
LOG=n

Committed: https://crrev.com/761ee31be5ab4fde05c294e5d632608fbaea8ad4
Cr-Commit-Position: refs/heads/master@{#34216}

Committed: https://crrev.com/906db7448702a6ac9fab2a445c57cc85f6dd1b1a
Cr-Commit-Position: refs/heads/master@{#34253}

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

Cr-Commit-Position: refs/heads/master@{#34272}
parent ea16a752
#!/usr/bin/env python
# Copyright 2016 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# CC/CXX wrapper script that excludes certain file patterns from coverage
# instrumentation.
import re
import subprocess
import sys
exclusions = [
'src/third_party',
'third_party',
'test',
'testing',
]
args = sys.argv[1:]
text = ' '.join(sys.argv[2:])
for exclusion in exclusions:
if re.search(r'\-o obj/%s[^ ]*\.o' % exclusion, text):
args.remove('-fprofile-arcs')
args.remove('-ftest-coverage')
break
sys.exit(subprocess.check_call(args))
...@@ -48,6 +48,12 @@ ...@@ -48,6 +48,12 @@
'release_extra_cflags%': '', 'release_extra_cflags%': '',
'variables': { 'variables': {
'variables': { 'variables': {
# goma settings.
# 1 to use goma.
# If no gomadir is set, it uses the default gomadir.
'use_goma%': 0,
'gomadir%': '',
'variables': { 'variables': {
'conditions': [ 'conditions': [
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \
...@@ -66,16 +72,28 @@ ...@@ -66,16 +72,28 @@
}, },
'host_arch%': '<(host_arch)', 'host_arch%': '<(host_arch)',
'target_arch%': '<(host_arch)', 'target_arch%': '<(host_arch)',
'v8_target_arch%': '<(host_arch)',
'base_dir%': '<!(cd <(DEPTH) && python -c "import os; print os.getcwd()")', 'base_dir%': '<!(cd <(DEPTH) && python -c "import os; print os.getcwd()")',
# Instrument for code coverage with gcov. # Instrument for code coverage with gcov.
'coverage%': 0, 'coverage%': 0,
'conditions': [
# Set default gomadir.
['OS=="win"', {
'gomadir': 'c:\\goma\\goma-win',
}, {
'gomadir': '<!(/bin/echo -n ${HOME}/goma)',
}],
],
}, },
'base_dir%': '<(base_dir)', 'base_dir%': '<(base_dir)',
'host_arch%': '<(host_arch)', 'host_arch%': '<(host_arch)',
'target_arch%': '<(target_arch)', 'target_arch%': '<(target_arch)',
'v8_target_arch%': '<(target_arch)', 'v8_target_arch%': '<(v8_target_arch)',
'coverage%': '<(coverage)', 'coverage%': '<(coverage)',
'use_goma%': '<(use_goma)',
'gomadir%': '<(gomadir)',
'asan%': 0, 'asan%': 0,
'lsan%': 0, 'lsan%': 0,
'msan%': 0, 'msan%': 0,
...@@ -104,22 +122,10 @@ ...@@ -104,22 +122,10 @@
# TODO(machenbach): Only configured for windows. # TODO(machenbach): Only configured for windows.
'fastbuild%': 0, 'fastbuild%': 0,
# goma settings.
# 1 to use goma.
# If no gomadir is set, it uses the default gomadir.
'use_goma%': 0,
'gomadir%': '',
# Check if valgrind directories are present. # Check if valgrind directories are present.
'has_valgrind%': '<!pymod_do_main(has_valgrind)', 'has_valgrind%': '<!pymod_do_main(has_valgrind)',
'conditions': [ 'conditions': [
# Set default gomadir.
['OS=="win"', {
'gomadir': 'c:\\goma\\goma-win',
}, {
'gomadir': '<!(/bin/echo -n ${HOME}/goma)',
}],
['host_arch!="ppc" and host_arch!="ppc64" and host_arch!="ppc64le" and host_arch!="s390" and host_arch!="s390x" and \ ['host_arch!="ppc" and host_arch!="ppc64" and host_arch!="ppc64le" and host_arch!="s390" and host_arch!="s390x" and \
coverage==0', { coverage==0', {
'host_clang%': 1, 'host_clang%': 1,
...@@ -144,6 +150,13 @@ ...@@ -144,6 +150,13 @@
}, { }, {
'test_isolation_mode%': 'noop', 'test_isolation_mode%': 'noop',
}], }],
['(OS=="linux" or OS=="mac") and (target_arch=="ia32" or target_arch=="x64") and \
(v8_target_arch!="x87" and v8_target_arch!="x32") and coverage==0', {
'clang%': 1,
}, {
'clang%': 0,
}],
], ],
}, },
'base_dir%': '<(base_dir)', 'base_dir%': '<(base_dir)',
...@@ -155,6 +168,7 @@ ...@@ -155,6 +168,7 @@
'werror%': '-Werror', 'werror%': '-Werror',
'use_goma%': '<(use_goma)', 'use_goma%': '<(use_goma)',
'gomadir%': '<(gomadir)', 'gomadir%': '<(gomadir)',
'clang%': '<(clang)',
'asan%': '<(asan)', 'asan%': '<(asan)',
'lsan%': '<(lsan)', 'lsan%': '<(lsan)',
'msan%': '<(msan)', 'msan%': '<(msan)',
...@@ -233,12 +247,6 @@ ...@@ -233,12 +247,6 @@
}, { }, {
'v8_enable_gdbjit%': 0, 'v8_enable_gdbjit%': 0,
}], }],
['(OS=="linux" or OS=="mac") and (target_arch=="ia32" or target_arch=="x64") and \
(v8_target_arch!="x87" and v8_target_arch!="x32") and coverage==0', {
'clang%': 1,
}, {
'clang%': 0,
}],
['asan==1 or lsan==1 or msan==1 or tsan==1', { ['asan==1 or lsan==1 or msan==1 or tsan==1', {
'clang%': 1, 'clang%': 1,
'use_allocator%': 'none', 'use_allocator%': 'none',
...@@ -362,6 +370,23 @@ ...@@ -362,6 +370,23 @@
'host_cc': '<!(which gcc)', 'host_cc': '<!(which gcc)',
'host_cxx': '<!(which g++)', 'host_cxx': '<!(which g++)',
}], }],
['use_goma==1 and ("<(GENERATOR)"=="ninja" or clang==1)', {
'conditions': [
['coverage==1', {
'cc_wrapper': '<(base_dir)/build/coverage_wrapper.py <(gomadir)/gomacc',
}, {
'cc_wrapper': '<(gomadir)/gomacc',
}],
],
}, {
'conditions': [
['coverage==1', {
'cc_wrapper': '<(base_dir)/build/coverage_wrapper.py',
}, {
'cc_wrapper': 0,
}],
],
}],
], ],
# Default ARM variable settings. # Default ARM variable settings.
'arm_version%': 'default', 'arm_version%': 'default',
...@@ -1261,12 +1286,12 @@ ...@@ -1261,12 +1286,12 @@
# TODO(yyanagisawa): supports GENERATOR==make # TODO(yyanagisawa): supports GENERATOR==make
# make generator doesn't support CC_wrapper without CC # make generator doesn't support CC_wrapper without CC
# in make_global_settings yet. # in make_global_settings yet.
['use_goma==1 and ("<(GENERATOR)"=="ninja" or clang==1)', { ['cc_wrapper!=0', {
'make_global_settings': [ 'make_global_settings': [
['CC_wrapper', '<(gomadir)/gomacc'], ['CC_wrapper', '<(cc_wrapper)'],
['CXX_wrapper', '<(gomadir)/gomacc'], ['CXX_wrapper', '<(cc_wrapper)'],
['CC.host_wrapper', '<(gomadir)/gomacc'], ['CC.host_wrapper', '<(cc_wrapper)'],
['CXX.host_wrapper', '<(gomadir)/gomacc'], ['CXX.host_wrapper', '<(cc_wrapper)'],
], ],
}], }],
['use_lto==1', { ['use_lto==1', {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment