On Mon, Mar 5, 2018 at 3:56 PM, Vishal Verma <[email protected]> wrote: > pre-4.16 kernels had a bug where BTT partitions wouldn't come up on > driver probe because we were adding a zero-sized disk. Add a unit test > that creates partitions, and cycles the namespace to ensure the > partitions are automatically brought up. This performs the test for raw, > memory, and sector modes. > > Reported-by: Dariusz Dokupil <[email protected]> > Cc: Dan Williams <[email protected]> > Signed-off-by: Vishal Verma <[email protected]> > --- > test/Makefile.am | 3 +- > test/rescan-partitions.sh | 106 > ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 108 insertions(+), 1 deletion(-) > create mode 100755 test/rescan-partitions.sh > > diff --git a/test/Makefile.am b/test/Makefile.am > index 749055c..496a663 100644 > --- a/test/Makefile.am > +++ b/test/Makefile.am > @@ -20,7 +20,8 @@ TESTS =\ > hugetlb \ > btt-pad-compat.sh \ > firmware-update.sh \ > - ack-shutdown-count-set > + ack-shutdown-count-set \ > + rescan-partitions.sh > > check_PROGRAMS =\ > libndctl \ > diff --git a/test/rescan-partitions.sh b/test/rescan-partitions.sh > new file mode 100755 > index 0000000..6dd289b > --- /dev/null > +++ b/test/rescan-partitions.sh > @@ -0,0 +1,106 @@ > +#!/bin/bash -Ex > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright(c) 2018 Intel Corporation. All rights reserved. > + > +[ -f "../ndctl/ndctl" ] && [ -x "../ndctl/ndctl" ] && ndctl="../ndctl/ndctl" > +[ -f "./ndctl/ndctl" ] && [ -x "./ndctl/ndctl" ] && ndctl="./ndctl/ndctl" > +[ -z "$ndctl" ] && echo "Couldn't find an ndctl binary" && exit 1 > +bus="nfit_test.0" > +json2var="s/[{}\",]//g; s/:/=/g" > +dev="" > +size="" > +blockdev="" > +rc=77 > + > +trap 'err $LINENO' ERR > + > +# sample json: > +#{ > +# "dev":"namespace5.0", > +# "mode":"sector", > +# "size":"60.00 MiB (62.92 MB)", > +# "uuid":"f1baa71a-d165-4da4-bb6a-083a2b0e6469", > +# "blockdev":"pmem5s", > +#} > + > +# $1: Line number > +# $2: exit code > +err() > +{ > + [ -n "$2" ] && rc="$2" > + echo "test/rescan-partitions.sh: failed at line $1" > + exit "$rc" > +} > + > +check_min_kver() > +{ > + local ver="$1" > + : "${KVER:=$(uname -r)}" > + > + [ -n "$ver" ] || return 1 > + [[ "$ver" == "$(echo -e "$ver\n$KVER" | sort -V | head -1)" ]] > +} > +check_min_kver "4.16" || { echo "kernel $KVER may not contain fixes for > partition rescanning"; exit "$rc"; }
I have a proposal for kernel version checks going forward. How about tests that fail the kernel version check return SKIP / PASS, and kernels that pass the kernel version check return FAIL / PASS for the test. This way we don't bail out early on backport kernels that could otherwise pass the test. Thoughts? _______________________________________________ Linux-nvdimm mailing list [email protected] https://lists.01.org/mailman/listinfo/linux-nvdimm
