Implementation had static config and made assumption that the region in
nfit_test will be ndbus0. Adding code to discover the proper bus and also
pass onto daxdev-errors.

Signed-off-by: Dave Jiang <[email protected]>
---
 test/daxdev-errors.c  |    9 +++++----
 test/daxdev-errors.sh |   11 ++++++++---
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/test/daxdev-errors.c b/test/daxdev-errors.c
index 687e593..d8d5324 100644
--- a/test/daxdev-errors.c
+++ b/test/daxdev-errors.c
@@ -234,7 +234,7 @@ static struct ndctl_dax * get_dax_region(struct 
ndctl_region *region)
        return NULL;
 }
 
-static int test_daxdev_clear_error(void)
+static int test_daxdev_clear_error(const char *busname)
 {
        int rc = 0, i;
        struct ndctl_ctx *ctx;
@@ -277,8 +277,9 @@ static int test_daxdev_clear_error(void)
 
        /* get badblocks */
        if (snprintf(path, 256,
-                       "/sys/devices/platform/%s/ndbus0/%s/badblocks",
+                       "/sys/devices/platform/%s/%s/%s/badblocks",
                        NFIT_PROVIDER0,
+                       busname,
                        ndctl_region_get_devname(region)) >= 256) {
                fprintf(stderr, "%s: buffer too small!\n",
                                ndctl_region_get_devname(region));
@@ -343,7 +344,7 @@ int main(int argc, char *argv[])
        int rc;
        struct sigaction act;
 
-       if (argc < 1)
+       if (argc < 1 || argc > 3)
                return -EINVAL;
 
        memset(&act, 0, sizeof(act));
@@ -355,7 +356,7 @@ int main(int argc, char *argv[])
                return 1;
        }
 
-       rc = test_daxdev_clear_error();
+       rc = test_daxdev_clear_error(argv[1]);
 
        return rc;
 }
diff --git a/test/daxdev-errors.sh b/test/daxdev-errors.sh
index 1777210..ee07f81 100755
--- a/test/daxdev-errors.sh
+++ b/test/daxdev-errors.sh
@@ -5,6 +5,7 @@ NDCTL="../ndctl/ndctl"
 DAXCTL="../daxctl/daxctl"
 BUS="-b nfit_test.0"
 BUS1="-b nfit_test.1"
+json2var="s/[{}\",]//g; s/:/=/g"
 rc=77
 
 err() {
@@ -52,15 +53,19 @@ chardev=$(echo $json | jq ". | select(.mode == \"dax\") | 
.daxregion.devices[0].
 #    ]
 #  }
 
-read sector len < 
/sys/bus/platform/devices/nfit_test.0/ndbus0/region5/badblocks
+json1=$($NDCTL list $BUS)
+eval $(echo $json1 | sed -e "$json2var")
+
+echo "read /sys/bus/platform/devices/nfit_test.0/$dev/region5/badblocks"
+read sector len < /sys/bus/platform/devices/nfit_test.0/$dev/region5/badblocks
 echo "sector: $sector len: $len"
 
 # run the daxdev-errors test
 test -x ./daxdev-errors
-./daxdev-errors
+./daxdev-errors $dev
 
 # check badblocks, should be empty
-if read sector len < 
/sys/bus/platform/devices/nfit_test.0/ndbus0/region5/badblocks; then
+if read sector len < 
/sys/bus/platform/devices/nfit_test.0/$dev/region5/badblocks; then
        echo "badblocks empty, expected"
 fi
 [ -n "$sector" ] && echo "fail: $LINENO" && exit 1

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to