diff options
author | Jack Lloyd <[email protected]> | 2016-11-26 06:05:34 -0500 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2016-11-26 06:08:05 -0500 |
commit | d695dfadc0daf8290d344f82697d456fd011d153 (patch) | |
tree | 9cb0b623f8ecfa8076ab5a8c04622a161e5bdbfc | |
parent | f397471782357aa57b55cf8d3ec5c3018e9b0aaf (diff) |
Add script for running lcov report
Add configure.py option --with-coverage-info which enables coverage but
does not disable optimizations. Changes the scripts to use
--with-coverage-info --no-optimization which is the same behavior as
--with-coverage except explicit about what is happening.
[ci skip]
-rwxr-xr-x | configure.py | 12 | ||||
-rwxr-xr-x | src/scripts/ci/travis/build.sh | 2 | ||||
-rwxr-xr-x | src/scripts/lcov.sh | 10 |
3 files changed, 19 insertions, 5 deletions
diff --git a/configure.py b/configure.py index e98d0e41f..0fabeed3e 100755 --- a/configure.py +++ b/configure.py @@ -272,12 +272,15 @@ def process_command_line(args): build_group = optparse.OptionGroup(parser, 'Build options') build_group.add_option('--with-debug-info', action='store_true', default=False, dest='with_debug_info', - help='enable debug info') + help='include debug symbols') build_group.add_option('--with-sanitizers', action='store_true', default=False, dest='with_sanitizers', - help='enable runtime checks') + help='enable ASan/UBSan checks') build_group.add_option('--with-coverage', action='store_true', default=False, dest='with_coverage', + help='enable coverage checking and disable opts') + + build_group.add_option('--with-coverage-info', action='store_true', default=False, dest='with_coverage_info', help='enable coverage checking') build_group.add_option('--enable-shared-library', dest='build_shared_lib', @@ -483,6 +486,7 @@ def process_command_line(args): options.with_debug_info = True if options.with_coverage: + options.with_coverage_info = True options.no_optimizations = True def parse_multiple_enable(modules): @@ -939,7 +943,7 @@ class CompilerInfo(object): if flag != None and flag != '' and flag not in abi_link: abi_link.append(flag) - if options.with_coverage: + if options.with_coverage_info: if self.coverage_flags == '': raise Exception('No coverage handling for %s' % (self.basename)) abi_link.append(self.coverage_flags) @@ -1572,7 +1576,7 @@ def create_template_vars(build_config, options, modules, cc, arch, osinfo): vars["gmake_dso_in"] = process_template(os.path.join(options.makefile_dir, 'gmake_dso.in'), vars) \ if options.build_shared_lib else '' vars["gmake_coverage_in"] = process_template(os.path.join(options.makefile_dir, 'gmake_coverage.in'), vars) \ - if options.with_coverage else '' + if options.with_coverage_info else '' return vars diff --git a/src/scripts/ci/travis/build.sh b/src/scripts/ci/travis/build.sh index 336d2c629..5fb6bec2d 100755 --- a/src/scripts/ci/travis/build.sh +++ b/src/scripts/ci/travis/build.sh @@ -32,7 +32,7 @@ elif [ "$BUILD_MODE" = "parallel" ]; then fi elif [ "$BUILD_MODE" = "coverage" ]; then - CFG_FLAGS+=(--with-coverage) + CFG_FLAGS+=(--with-coverage --no-optimizations) elif [ "$BUILD_MODE" = "sanitizer" ]; then export ASAN_OPTIONS=detect_leaks=0 CFG_FLAGS+=(--with-sanitizers --disable-modules=locking_allocator) diff --git a/src/scripts/lcov.sh b/src/scripts/lcov.sh new file mode 100755 index 000000000..f1340c787 --- /dev/null +++ b/src/scripts/lcov.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +./configure.py --with-debug-info --with-coverage-info --no-optimizations --with-bzip2 --with-lzma --with-sqlite --with-zlib --with-pkcs11 --with-openssl --with-sqlite3 + +make -l4 -j8 -k +./botan-test --pkcs11-lib=/usr/lib/libsofthsm2.so + +lcov --rc lcov_branch_coverage=1 --capture --directory . --output-file coverage.info.raw +lcov --remove coverage.info.raw '/usr/*' --output-file coverage.info +genhtml --rc lcov_branch_coverage=1 coverage.info --output-directory lcov-out |