Message ID | 166777841716.1238089.7618196736080256393.stgit@dwillia2-xfh.jf.intel.com |
---|---|
State | Superseded |
Headers | show |
Series | cxl-cli test and usability updates | expand |
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 <alison.schofield@intel.com> > > Signed-off-by: Dan Williams <dan.j.williams@intel.com> > --- > 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 >
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
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 <dan.j.williams@intel.com> --- 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(-)