aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Gierlings <[email protected]>2018-04-10 22:10:37 +0200
committerMatthias Gierlings <[email protected]>2018-04-12 22:44:28 +0200
commiteae170db2a6f0461cfe2f55b84ae4e89bd719a74 (patch)
treef9b9297df1a3e389a5fa44d70487cc81b87d56fa
parent6a9557cc5528ec01737e77b67959cba8778f1265 (diff)
Codecov - cover MT code in XMSS_PrivateKey
Codecov does not reach all parts of the `XMSS_PrivateKey` code because too few cores are detected during the CI run. To cover the missed codepaths always return a large enough core count if botan is compiled with coverage.
-rwxr-xr-xconfigure.py2
-rw-r--r--src/build-data/buildh.in4
-rw-r--r--src/lib/pubkey/xmss/xmss_tools.cpp8
3 files changed, 14 insertions, 0 deletions
diff --git a/configure.py b/configure.py
index 26a5ba8a2..bf4cf1365 100755
--- a/configure.py
+++ b/configure.py
@@ -1857,6 +1857,8 @@ def create_template_vars(source_paths, build_paths, options, modules, cc, arch,
'build_fuzzers': options.build_fuzzers,
+ 'build_coverage' : options.with_coverage_info or options.with_coverage,
+
'symlink_shared_lib': options.build_shared_lib and shared_lib_uses_symlinks(),
'libobj_dir': build_paths.libobj_dir,
diff --git a/src/build-data/buildh.in b/src/build-data/buildh.in
index 807b6f479..594eab9c8 100644
--- a/src/build-data/buildh.in
+++ b/src/build-data/buildh.in
@@ -56,6 +56,10 @@
#define BOTAN_HAS_SANITIZER_%{i|upper}
%{endfor}
+%{if build_coverage}
+#define BOTAN_HAS_COVERAGE
+%{endif}
+
#define BOTAN_TARGET_ARCH_IS_%{arch|upper}
%{if endian}
#define BOTAN_TARGET_CPU_IS_%{endian|upper}_ENDIAN
diff --git a/src/lib/pubkey/xmss/xmss_tools.cpp b/src/lib/pubkey/xmss/xmss_tools.cpp
index f4f762aeb..3297664fb 100644
--- a/src/lib/pubkey/xmss/xmss_tools.cpp
+++ b/src/lib/pubkey/xmss/xmss_tools.cpp
@@ -66,11 +66,19 @@ size_t XMSS_Tools::bench_threads()
if(durations[0].count() < durations[1].count())
{
+#if defined(BOTAN_HAS_COVERAGE)
+ return 4;
+#else
return concurrency[0];
+#endif
}
else
{
+#if defined(BOTAN_HAS_COVERAGE)
+ return 4;
+#else
return concurrency[1];
+#endif
}
}