diff options
author | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-04-14 14:24:56 +0200 |
---|---|---|
committer | Petri Latvala <petri.latvala@intel.com> | 2022-04-14 18:19:39 +0300 |
commit | 9e71e98c6c8c40477be13cff2e8034a50ebf8b14 (patch) | |
tree | e4a93cecd6051df45f4e4feb30b3c7447ed6c61e /scripts/code_cov_selftest.sh | |
parent | 6c8a8c1a81107c45e887b1727e1964e8e936c156 (diff) |
scripts/code_cov_selftest.sh: test if IGT code coverage is working
The runner_tests.c won't be able to test code coverage, as it
requires a kernel specially built for such purpose.
So, add a script that will validate possible steps while doing
code coverage.
Reviewed-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'scripts/code_cov_selftest.sh')
-rwxr-xr-x | scripts/code_cov_selftest.sh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/code_cov_selftest.sh b/scripts/code_cov_selftest.sh new file mode 100755 index 00000000..1c4bd96a --- /dev/null +++ b/scripts/code_cov_selftest.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +trap 'catch $LINENO' ERR +catch() { + echo "===> ERROR: Code coverage selftest failed on $0:$1" >&2 + exit 1 +} + +if [ -z "$IGT_KERNEL_TREE" ] ; then + echo "Error! IGT_KERNEL_TREE environment var was not defined." >&2 + exit 1 +fi + +TEST="igt@debugfs_test@read_all_entries" + +TESTLIST="my_tests.testlist" +GATHER="scripts/code_cov_gather_on_test.py" +LCOV_CAP="scripts/code_cov_capture.sh" +INFO_RESULTS="info_results" +TAR_RESULTS="tar_results" + +sudo rm -rf results/ $INFO_RESULTS/ $TAR_RESULTS/ || true + +echo "$TEST" > $TESTLIST + +# run-tests.sh +echo "==> use lcov capture via run-tests.sh" +./scripts/run-tests.sh -T $TESTLIST -k $IGT_KERNEL_TREE -c $LCOV_CAP +echo "==> gather sysfs using run-tests.sh" +./scripts/run-tests.sh -T $TESTLIST -k $IGT_KERNEL_TREE -P -c $GATHER +echo "==> gather sysfs using run-tests.sh, capturing at the end" +./scripts/run-tests.sh -T $TESTLIST -k $IGT_KERNEL_TREE -c $GATHER + +# igt_runner called directly +echo "==> use lcov capture via igt_runner" +sudo IGT_KERNEL_TREE=$IGT_KERNEL_TREE ./build/runner/igt_runner -o --test-list $TESTLIST --coverage-per-test --collect-script $LCOV_CAP build/tests results +echo "==> gather sysfs running igt_runner" +sudo ./build/runner/igt_runner -o --test-list $TESTLIST --coverage-per-test --collect-script $GATHER build/tests results + +# html report +echo "==> generate report from lcov info files" +scripts/code_cov_gen_report.sh -r results/code_cov/ -k $IGT_KERNEL_TREE -o $INFO_RESULTS -i --only-i915 --ignore-unused +echo "==> generate report from sysfs gather files" +scripts/code_cov_gen_report.sh -r results/code_cov/ -k $IGT_KERNEL_TREE -o $TAR_RESULTS -t --only-drm --ignore-unused + +echo +echo "==> All tests passed. <==" |