On Sun, Nov 06, 2022 at 03:46:57PM -0800, Dan Williams wrote: > 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.
Useful! Reviewed-by: Alison Schofield <[email protected]> > > 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 >
