diff options
-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 |