summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@kernel.org>2022-04-14 14:24:56 +0200
committerPetri Latvala <petri.latvala@intel.com>2022-04-14 18:19:39 +0300
commit9e71e98c6c8c40477be13cff2e8034a50ebf8b14 (patch)
treee4a93cecd6051df45f4e4feb30b3c7447ed6c61e /scripts
parent6c8a8c1a81107c45e887b1727e1964e8e936c156 (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')
-rwxr-xr-xscripts/code_cov_selftest.sh47
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. <=="