[PATCH 1/3] common: helper to get value from ndctl list by key

Xiong Zhou
2017-04-07T07:56:15Z

For some nvdimm DAX related tests, it's better to know
some details of devices being tested. Adding new prog
ndctl to manage nvdimms and jq to parse outputs.

Signed-off-by: Xiong Zhou <xzhou@redhat.com>
---
common/config | 2 ++
common/rc | 24 ++++++++++++++++++++++++
2 files changed, 26 insertions(+)

diff --git a/common/config b/common/config
index 59041a3..dfdcb8e 100644
--- a/common/config
+++ b/common/config
@@ -212,6 +212,8 @@ export XZ_PROG="`set_prog_path xz`"
export FLOCK_PROG="`set_prog_path flock`"
export LDD_PROG="`set_prog_path ldd`"
export TIMEOUT_PROG="`set_prog_path timeout`"
+export NDCTL_PROG="`set_prog_path ndctl`"
+export JQ_PROG="`set_prog_path jq`"

# use 'udevadm settle' or 'udevsettle' to wait for lv to be settled.
# newer systems have udevadm command but older systems like RHEL5 don't.
diff --git a/common/rc b/common/rc
index e1ab2c6..0540fdc 100644
--- a/common/rc
+++ b/common/rc
@@ -3148,6 +3148,30 @@ _require_chattr()
rm -f $TEST_DIR/syscalltest.out
}

+_require_ndctl()
+{
+ ndctl list >> $seqres.full || \
+ _notrun "this test requires ndctl"
+}
+
+_require_jq()
+{
+ jq -V >> $seqres.full || \
+ _notrun "this test requires jq"
+}
+
+# $1 SCRATCH_DEV or TEST_DEV or other dev
+# $2 key
+_ndctl_get_pmem_key_value()
+{
+ _require_jq
+ _require_ndctl
+
+ $NDCTL_PROG list | \
+ $JQ_PROG -r ".[] | \
+ select(.blockdev == \"${1#/dev/}\") | .$2"
+}
+
_get_total_inode()
{
if [ -z "$1" ]; then
--
1.8.3.1