diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2018-08-06 17:07:07 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2019-01-24 15:51:13 +0000 |
commit | 3a5f86d78452714f2a57772f33f8e6c6b49b6f22 (patch) | |
tree | f7a6b66c73a76f87343a08c4b6456b6e7699ae99 /src/testlib/selfcover.pri | |
parent | f3de22b2117f083308a45cc3ed80979db421e274 (diff) |
Add a feature to enable CodeCoverage analysis of testlib
Based on Asmo Saarela's advice (QTPM-686), adapted on advice from
FrogLogic support and converted to a feature so that the selftest and
testlib qmake config can be co-ordinated.
Task-number: QTPM-1385
Change-Id: Icd706f086009e1e08b3f8c5cd553f792402e28c0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/testlib/selfcover.pri')
-rw-r--r-- | src/testlib/selfcover.pri | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/testlib/selfcover.pri b/src/testlib/selfcover.pri new file mode 100644 index 0000000000..7de50ba6e6 --- /dev/null +++ b/src/testlib/selfcover.pri @@ -0,0 +1,28 @@ +# Configuration for testlib and its tests, to instrument with +# FrogLogic's Squish CoCo (cf. testcocoon.prf, which handles similar +# for general code; but testlib needs special handling). + +# Only for use when feature testlib_selfcover is enabled: +!qtConfig(testlib_selfcover): return() + +# This enables verification that testlib itself is adequately tested, +# as a grounds for trusting that testing with it is useful. +# Exclude all non-testlib source from coverage instrumentation: +COVERAGE_OPTIONS = --cs-exclude-file-abs-wildcard=$$QT_SOURCE_TREE/* +COVERAGE_OPTIONS += --cs-include-file-abs-wildcard=*/src/testlib/* +COVERAGE_OPTIONS += --cs-mcc # enable Multiple Condition Coverage +COVERAGE_OPTIONS += --cs-mcdc # enable Multiple Condition / Decision Coverage +# (recommended for ISO 26262 ASIL A, B and C -- highly recommended for ASIL D) +# https://doc.froglogic.com/squish-coco/4.1/codecoverage.html#sec%3Amcdc + +QMAKE_CFLAGS += $$COVERAGE_OPTIONS +QMAKE_CXXFLAGS += $$COVERAGE_OPTIONS +QMAKE_LFLAGS += $$COVERAGE_OPTIONS + +# FIXME: relies on QMAKE_* being just the command-names, with no path prefix +QMAKE_CC = cs$$QMAKE_CC +QMAKE_CXX = cs$$QMAKE_CXX +QMAKE_LINK = cs$$QMAKE_LINK +QMAKE_LINK_SHLIB = cs$$QMAKE_LINK_SHLIB +QMAKE_AR = cs$$QMAKE_AR +QMAKE_LIB = cs$$QMAKE_LIB |