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
