* [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix
@ 2018-07-11 23:56 Vishal Verma
2018-07-11 23:56 ` [ndctl PATCH 2/2] ndctl, test: convert remaining tests to use test/common Vishal Verma
2018-07-12 15:43 ` [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix Ross Zwisler
0 siblings, 2 replies; 4+ messages in thread
From: Vishal Verma @ 2018-07-11 23:56 UTC (permalink / raw)
To: linux-nvdimm; +Cc: Masayoshi Mizuma
The commit below updated json listings to always be arrays unless,
potentially, --human was specified. As a fallout of the change, some
unit tests that used jq to look for certain elements, or the json2var
conversion broke in certain cases. Fix the jq query in sector-mode.sh,
and fix json2var in test/common. The 'destructive' class of unit tests
still need to be converted to the test/common scheme, and subsequently
have their own local json2var instances. These will be fixed in a future
commit by simply performing the test/common conversion.
Fixes: 72c46ab194d9 ("ndctl list: always output array without --human")
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
test/common | 2 +-
test/sector-mode.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/common b/test/common
index fb4e18e..1b9d3da 100644
--- a/test/common
+++ b/test/common
@@ -79,5 +79,5 @@ _cleanup()
#
json2var()
{
- sed -e "s/[{}\",]//g; s/:/=/g"
+ sed -e "s/[{}\",]//g; s/\[//g; s/\]//g; s/:/=/g"
}
diff --git a/test/sector-mode.sh b/test/sector-mode.sh
index 16c1ddf..4b964c5 100755
--- a/test/sector-mode.sh
+++ b/test/sector-mode.sh
@@ -31,7 +31,7 @@ $NDCTL enable-region -b $NFIT_TEST_BUS1 all
rc=1
query=". | sort_by(.size) | reverse | .[0].dev"
NAMESPACE=$($NDCTL list -b $NFIT_TEST_BUS1 -N | jq -r "$query")
-REGION=$($NDCTL list -R --namespace=$NAMESPACE | jq -r ".dev")
+REGION=$($NDCTL list -R --namespace=$NAMESPACE | jq -r "(.[]) | .dev")
echo 0 > /sys/bus/nd/devices/$REGION/read_only
$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a 4K
--
2.14.4
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [ndctl PATCH 2/2] ndctl, test: convert remaining tests to use test/common
2018-07-11 23:56 [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix Vishal Verma
@ 2018-07-11 23:56 ` Vishal Verma
2018-07-12 20:15 ` Masayoshi Mizuma
2018-07-12 15:43 ` [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix Ross Zwisler
1 sibling, 1 reply; 4+ messages in thread
From: Vishal Verma @ 2018-07-11 23:56 UTC (permalink / raw)
To: linux-nvdimm; +Cc: Masayoshi Mizuma
The original test/common conversions missed the --enable-destructive
class of tests. The json single object vs. array changes prompted
changes to the json2var definitions, which these tests had a local copy
of. Instead of fixing up these local copies, take the change to properly
convert these tests to using test/common.
Fixes: 72c46ab194d9 ("ndctl list: always output array without --human")
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
test/dax.sh | 18 +++++++++---------
test/device-dax-fio.sh | 23 +++++------------------
test/mmap.sh | 12 +++++-------
3 files changed, 19 insertions(+), 34 deletions(-)
diff --git a/test/dax.sh b/test/dax.sh
index b63d563..d38fd01 100755
--- a/test/dax.sh
+++ b/test/dax.sh
@@ -11,13 +11,13 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
+. ./common
+
MNT=test_dax_mnt
FILE=image
-NDCTL="../ndctl/ndctl"
-json2var="s/[{}\",]//g; s/:/=/g"
blockdev=""
-err() {
+cleanup() {
echo "test-dax: failed at line $1"
if [ -n "$blockdev" ]; then
umount /dev/$blockdev
@@ -40,11 +40,11 @@ run_test() {
set -e
mkdir -p $MNT
-trap 'err $LINENO' ERR
+trap 'err $LINENO cleanup' ERR
dev=$(./dax-dev)
json=$($NDCTL list -N -n $dev)
-eval $(echo $json | sed -e "$json2var")
+eval $(json2var <<< "$json")
rc=1
mkfs.ext4 /dev/$blockdev
@@ -55,7 +55,7 @@ umount $MNT
# convert pmem to put the memmap on the device
json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev)
-eval $(echo $json | sed -e "$json2var")
+eval $(json2var <<< "$json")
[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
#note the blockdev returned from ndctl create-namespace lacks the /dev prefix
@@ -66,7 +66,7 @@ run_test
umount $MNT
json=$($NDCTL create-namespace -m raw -f -e $dev)
-eval $(echo $json | sed -e "$json2var")
+eval $(json2var <<< "$json")
[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
mkfs.xfs -f /dev/$blockdev
@@ -77,7 +77,7 @@ umount $MNT
# convert pmem to put the memmap on the device
json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev)
-eval $(echo $json | sed -e "$json2var")
+eval $(json2var <<< "$json")
[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
mkfs.xfs -f /dev/$blockdev
@@ -88,7 +88,7 @@ umount $MNT
# revert namespace to raw mode
json=$($NDCTL create-namespace -m raw -f -e $dev)
-eval $(echo $json | sed -e "$json2var")
+eval $(json2var <<< "$json")
[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
exit $rc
diff --git a/test/device-dax-fio.sh b/test/device-dax-fio.sh
index 6214030..b6d5e0e 100755
--- a/test/device-dax-fio.sh
+++ b/test/device-dax-fio.sh
@@ -11,30 +11,17 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
-NDCTL="../ndctl/ndctl"
+. ./common
+
rc=77
set -e
-err() {
- echo "test/device-dax-fio.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.11" || do_skip "kernel may lack device-dax fixes"
-check_min_kver "4.11" || { echo "kernel $KVER may lack latest device-dax fixes"; exit $rc; }
-
-set -e
trap 'err $LINENO' ERR
+check_prereq "fio"
if ! fio --enghelp | grep -q "dev-dax"; then
echo "fio lacks dev-dax engine"
exit 77
@@ -79,7 +66,7 @@ do
# revert namespace to raw mode
json=$($NDCTL create-namespace -m raw -f -e $dev)
- mode=$(echo $json | jq -r ".mode")
+ eval $(json2var <<< "$json")
[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
done
diff --git a/test/mmap.sh b/test/mmap.sh
index 423c283..afe50fd 100755
--- a/test/mmap.sh
+++ b/test/mmap.sh
@@ -11,15 +11,15 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
+. ./common
+
MNT=test_mmap_mnt
FILE=image
DEV=""
TEST=./mmap
-NDCTL="../ndctl/ndctl"
-json2var="s/[{}\",]//g; s/:/=/g"
rc=77
-err() {
+cleanup() {
echo "test-mmap: failed at line $1"
if [ -n "$DEV" ]; then
umount $DEV
@@ -31,8 +31,6 @@ err() {
}
test_mmap() {
- trap 'err $LINENO' ERR
-
# SHARED
$TEST -Mrwps $MNT/$FILE # mlock, populate, shared (mlock fail)
$TEST -Arwps $MNT/$FILE # mlockall, populate, shared
@@ -58,11 +56,11 @@ test_mmap() {
set -e
mkdir -p $MNT
-trap 'err $LINENO' ERR
+trap 'err $LINENO cleanup' ERR
dev=$(./dax-dev)
json=$($NDCTL list -N -n $dev)
-eval $(echo $json | sed -e "$json2var")
+eval $(json2var <<< "$json")
DEV="/dev/${blockdev}"
rc=1
--
2.14.4
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix
2018-07-11 23:56 [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix Vishal Verma
2018-07-11 23:56 ` [ndctl PATCH 2/2] ndctl, test: convert remaining tests to use test/common Vishal Verma
@ 2018-07-12 15:43 ` Ross Zwisler
1 sibling, 0 replies; 4+ messages in thread
From: Ross Zwisler @ 2018-07-12 15:43 UTC (permalink / raw)
To: Vishal Verma; +Cc: Masayoshi Mizuma, linux-nvdimm
On Wed, Jul 11, 2018 at 05:56:43PM -0600, Vishal Verma wrote:
> The commit below updated json listings to always be arrays unless,
> potentially, --human was specified. As a fallout of the change, some
> unit tests that used jq to look for certain elements, or the json2var
> conversion broke in certain cases. Fix the jq query in sector-mode.sh,
> and fix json2var in test/common. The 'destructive' class of unit tests
> still need to be converted to the test/common scheme, and subsequently
> have their own local json2var instances. These will be fixed in a future
> commit by simply performing the test/common conversion.
>
> Fixes: 72c46ab194d9 ("ndctl list: always output array without --human")
> Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Nice, thanks for the fixes.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ndctl PATCH 2/2] ndctl, test: convert remaining tests to use test/common
2018-07-11 23:56 ` [ndctl PATCH 2/2] ndctl, test: convert remaining tests to use test/common Vishal Verma
@ 2018-07-12 20:15 ` Masayoshi Mizuma
0 siblings, 0 replies; 4+ messages in thread
From: Masayoshi Mizuma @ 2018-07-12 20:15 UTC (permalink / raw)
To: vishal.l.verma, linux-nvdimm; +Cc: m.mizuma
Hi Vishal,
Looks good to me. Please feel free to add:
Reviewed-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Thanks,
Masa
On 07/11/2018 07:56 PM, Vishal Verma wrote:
> The original test/common conversions missed the --enable-destructive
> class of tests. The json single object vs. array changes prompted
> changes to the json2var definitions, which these tests had a local copy
> of. Instead of fixing up these local copies, take the change to properly
> convert these tests to using test/common.
>
> Fixes: 72c46ab194d9 ("ndctl list: always output array without --human")
> Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Cc: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> ---
> test/dax.sh | 18 +++++++++---------
> test/device-dax-fio.sh | 23 +++++------------------
> test/mmap.sh | 12 +++++-------
> 3 files changed, 19 insertions(+), 34 deletions(-)
>
> diff --git a/test/dax.sh b/test/dax.sh
> index b63d563..d38fd01 100755
> --- a/test/dax.sh
> +++ b/test/dax.sh
> @@ -11,13 +11,13 @@
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> # General Public License for more details.
>
> +. ./common
> +
> MNT=test_dax_mnt
> FILE=image
> -NDCTL="../ndctl/ndctl"
> -json2var="s/[{}\",]//g; s/:/=/g"
> blockdev=""
>
> -err() {
> +cleanup() {
> echo "test-dax: failed at line $1"
> if [ -n "$blockdev" ]; then
> umount /dev/$blockdev
> @@ -40,11 +40,11 @@ run_test() {
>
> set -e
> mkdir -p $MNT
> -trap 'err $LINENO' ERR
> +trap 'err $LINENO cleanup' ERR
>
> dev=$(./dax-dev)
> json=$($NDCTL list -N -n $dev)
> -eval $(echo $json | sed -e "$json2var")
> +eval $(json2var <<< "$json")
> rc=1
>
> mkfs.ext4 /dev/$blockdev
> @@ -55,7 +55,7 @@ umount $MNT
>
> # convert pmem to put the memmap on the device
> json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev)
> -eval $(echo $json | sed -e "$json2var")
> +eval $(json2var <<< "$json")
> [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
>
> #note the blockdev returned from ndctl create-namespace lacks the /dev prefix
> @@ -66,7 +66,7 @@ run_test
> umount $MNT
>
> json=$($NDCTL create-namespace -m raw -f -e $dev)
> -eval $(echo $json | sed -e "$json2var")
> +eval $(json2var <<< "$json")
> [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
>
> mkfs.xfs -f /dev/$blockdev
> @@ -77,7 +77,7 @@ umount $MNT
>
> # convert pmem to put the memmap on the device
> json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev)
> -eval $(echo $json | sed -e "$json2var")
> +eval $(json2var <<< "$json")
> [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
>
> mkfs.xfs -f /dev/$blockdev
> @@ -88,7 +88,7 @@ umount $MNT
>
> # revert namespace to raw mode
> json=$($NDCTL create-namespace -m raw -f -e $dev)
> -eval $(echo $json | sed -e "$json2var")
> +eval $(json2var <<< "$json")
> [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
>
> exit $rc
> diff --git a/test/device-dax-fio.sh b/test/device-dax-fio.sh
> index 6214030..b6d5e0e 100755
> --- a/test/device-dax-fio.sh
> +++ b/test/device-dax-fio.sh
> @@ -11,30 +11,17 @@
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> # General Public License for more details.
>
> -NDCTL="../ndctl/ndctl"
> +. ./common
> +
> rc=77
>
> set -e
>
> -err() {
> - echo "test/device-dax-fio.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.11" || do_skip "kernel may lack device-dax fixes"
>
> -check_min_kver "4.11" || { echo "kernel $KVER may lack latest device-dax fixes"; exit $rc; }
> -
> -set -e
> trap 'err $LINENO' ERR
>
> +check_prereq "fio"
> if ! fio --enghelp | grep -q "dev-dax"; then
> echo "fio lacks dev-dax engine"
> exit 77
> @@ -79,7 +66,7 @@ do
>
> # revert namespace to raw mode
> json=$($NDCTL create-namespace -m raw -f -e $dev)
> - mode=$(echo $json | jq -r ".mode")
> + eval $(json2var <<< "$json")
> [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1
> done
>
> diff --git a/test/mmap.sh b/test/mmap.sh
> index 423c283..afe50fd 100755
> --- a/test/mmap.sh
> +++ b/test/mmap.sh
> @@ -11,15 +11,15 @@
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> # General Public License for more details.
>
> +. ./common
> +
> MNT=test_mmap_mnt
> FILE=image
> DEV=""
> TEST=./mmap
> -NDCTL="../ndctl/ndctl"
> -json2var="s/[{}\",]//g; s/:/=/g"
> rc=77
>
> -err() {
> +cleanup() {
> echo "test-mmap: failed at line $1"
> if [ -n "$DEV" ]; then
> umount $DEV
> @@ -31,8 +31,6 @@ err() {
> }
>
> test_mmap() {
> - trap 'err $LINENO' ERR
> -
> # SHARED
> $TEST -Mrwps $MNT/$FILE # mlock, populate, shared (mlock fail)
> $TEST -Arwps $MNT/$FILE # mlockall, populate, shared
> @@ -58,11 +56,11 @@ test_mmap() {
>
> set -e
> mkdir -p $MNT
> -trap 'err $LINENO' ERR
> +trap 'err $LINENO cleanup' ERR
>
> dev=$(./dax-dev)
> json=$($NDCTL list -N -n $dev)
> -eval $(echo $json | sed -e "$json2var")
> +eval $(json2var <<< "$json")
> DEV="/dev/${blockdev}"
> rc=1
>
>
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-07-12 20:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-11 23:56 [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix Vishal Verma
2018-07-11 23:56 ` [ndctl PATCH 2/2] ndctl, test: convert remaining tests to use test/common Vishal Verma
2018-07-12 20:15 ` Masayoshi Mizuma
2018-07-12 15:43 ` [ndctl PATCH 1/2] ndctl, test: fix tests for the array vs object listing fix Ross Zwisler
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.