It is useful to fail a test if it triggers a backtrace. Generalize the mechanism from test/cxl-topology.sh and add it to tests that want to validate clean kernel logs.
Signed-off-by: Dan Williams <[email protected]> --- test/common | 10 ++++++++++ test/cxl-region-sysfs.sh | 4 +--- test/cxl-topology.sh | 5 +---- test/dax.sh | 2 ++ test/daxdev-errors.sh | 2 ++ test/multi-dax.sh | 2 ++ 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/test/common b/test/common index 65615cc09a3e..44cc352f6009 100644 --- a/test/common +++ b/test/common @@ -132,3 +132,13 @@ json2var() { sed -e "s/[{}\",]//g; s/\[//g; s/\]//g; s/:/=/g" } + +# check_dmesg +# $1: line number where this is called +check_dmesg() +{ + # validate no WARN or lockdep report during the run + log=$(journalctl -r -k --since "-$((SECONDS+1))s") + grep -q "Call Trace" <<< $log && err $1 + true +} diff --git a/test/cxl-region-sysfs.sh b/test/cxl-region-sysfs.sh index 63186b60dfec..e128406cd8c8 100644 --- a/test/cxl-region-sysfs.sh +++ b/test/cxl-region-sysfs.sh @@ -164,8 +164,6 @@ readarray -t endpoint < <($CXL free-dpa -t pmem ${mem[*]} | jq -r ".[] | .decoder.decoder") echo "$region released ${#endpoint[@]} targets: ${endpoint[@]}" -# validate no WARN or lockdep report during the run -log=$(journalctl -r -k --since "-$((SECONDS+1))s") -grep -q "Call Trace" <<< $log && err "$LINENO" +check_dmesg "$LINENO" modprobe -r cxl_test diff --git a/test/cxl-topology.sh b/test/cxl-topology.sh index f7e390d22680..1f15d29f0600 100644 --- a/test/cxl-topology.sh +++ b/test/cxl-topology.sh @@ -169,9 +169,6 @@ done # validate that the bus can be disabled without issue $CXL disable-bus $root -f - -# validate no WARN or lockdep report during the run -log=$(journalctl -r -k --since "-$((SECONDS+1))s") -grep -q "Call Trace" <<< $log && err "$LINENO" +check_dmesg "$LINENO" modprobe -r cxl_test diff --git a/test/dax.sh b/test/dax.sh index bb9848b10ecc..3ffbc8079eba 100755 --- a/test/dax.sh +++ b/test/dax.sh @@ -118,4 +118,6 @@ else run_xfs fi +check_dmesg "$LINENO" + exit 0 diff --git a/test/daxdev-errors.sh b/test/daxdev-errors.sh index 7f79718113d0..84ef93499acf 100755 --- a/test/daxdev-errors.sh +++ b/test/daxdev-errors.sh @@ -71,6 +71,8 @@ if read sector len < /sys/bus/platform/devices/nfit_test.0/$busdev/$region/badbl fi [ -n "$sector" ] && echo "fail: $LINENO" && exit 1 +check_dmesg "$LINENO" + _cleanup exit 0 diff --git a/test/multi-dax.sh b/test/multi-dax.sh index 04070adb18e4..d471e1c96b5e 100755 --- a/test/multi-dax.sh +++ b/test/multi-dax.sh @@ -28,6 +28,8 @@ chardev1=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M) chardev2=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev") +check_dmesg "$LINENO" + _cleanup exit 0
