diff options
Diffstat (limited to 'deps/v8/build/coverage_wrapper.py')
-rwxr-xr-x | deps/v8/build/coverage_wrapper.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/deps/v8/build/coverage_wrapper.py b/deps/v8/build/coverage_wrapper.py new file mode 100755 index 0000000000..5b365d8e63 --- /dev/null +++ b/deps/v8/build/coverage_wrapper.py @@ -0,0 +1,36 @@ +#!/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 = [ + 'buildtools', + 'src/third_party', + 'third_party', + 'test', + 'testing', +] + +def remove_if_exists(string_list, item): + if item in string_list: + string_list.remove(item) + +args = sys.argv[1:] +text = ' '.join(sys.argv[2:]) +for exclusion in exclusions: + if re.search(r'\-o obj/%s[^ ]*\.o' % exclusion, text): + remove_if_exists(args, '-fprofile-arcs') + remove_if_exists(args, '-ftest-coverage') + remove_if_exists(args, '-fsanitize-coverage=func') + remove_if_exists(args, '-fsanitize-coverage=bb') + remove_if_exists(args, '-fsanitize-coverage=edge') + break + +sys.exit(subprocess.check_call(args)) |