Start of code coverage for Mac.

Only base_unittests included for now.  Linux changes added as well but
untested until Linux switches to gyp.

Enable coverage with the following command:

  src/tools/gyp/gyp_dogfood -Dcoverage=1 src/build/all.gyp

Review URL: http://codereview.chromium.org/56136

git-svn-id: http://src.chromium.org/svn/trunk/src/build@13068 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
jrg@chromium.org 2009-04-03 04:35:18 +00:00
Родитель f5f2e0005c
Коммит bd17df1328
1 изменённых файлов: 35 добавлений и 0 удалений

Просмотреть файл

@ -25,6 +25,12 @@
# Override branding to select the desired branding flavor.
'branding%': 'Chromium',
# Set to 1 to enable code coverage. In addition to build changes
# (e.g. extra CFLAGS), also creates a new target in the src/chrome
# project file called "coverage".
# Currently ignored on Windows.
'coverage%': 0,
},
'target_defaults': {
'conditions': [
@ -33,6 +39,35 @@
}, { # else: branding!="Chrome"
'defines': ['CHROMIUM_BUILD'],
}],
['coverage!=0', {
'conditions': [
['OS=="mac"', {
'xcode_settings': {
'GCC_INSTRUMENT_PROGRAM_FLOW_ARCS': 'YES',
'GCC_GENERATE_TEST_COVERAGE_FILES': 'YES',
},
# Add -lgcov for executables, not for static_libraries.
# This is a delayed conditional.
'target_conditions': [
['_type=="executable"', {
'xcode_settings': { 'OTHER_LDFLAGS': [ '-lgcov' ] },
}],
],
}],
# TODO(jrg): complete this work once Linux transitions to gyp.
# This is untested (--> likely doesn't work).
['OS=="linux"', {
'cflags': [ '-ftest-coverage',
'-fprofile-arcs' ],
'target_conditions': [
['_type=="executable"', {
'link_settings': { 'libraries': [ '-lgcov' ] },
}],
],
}],
]},
# TODO(jrg): options for code coverage on Windows
],
],
'default_configuration': 'Debug',
'configurations': {