All of lore.kernel.org
 help / color / mirror / Atom feed
From: Santosh Sivaraj <santosh@fossix.org>
To: Linux NVDIMM <linux-nvdimm@lists.01.org>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Vaibhav Jain <vaibhav@linux.ibm.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Harish Sriram <harish@linux.ibm.com>,
	Shivaprasad G Bhat <sbhat@linux.ibm.com>
Cc: Santosh Sivaraj <santosh@fossix.org>
Subject: [PATCH RFC ndctl 7/9] test/libndctl: Don't check for error flags on non-nfit dimms
Date: Wed,  7 Oct 2020 09:52:54 +0530	[thread overview]
Message-ID: <20201007042256.1110626-7-santosh@fossix.org> (raw)
In-Reply-To: <20201007042256.1110626-1-santosh@fossix.org>

Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
---
 test/libndctl.c | 61 +++++++++++++++++++++++++++----------------------
 1 file changed, 34 insertions(+), 27 deletions(-)

diff --git a/test/libndctl.c b/test/libndctl.c
index aaa72dc..ae87807 100644
--- a/test/libndctl.c
+++ b/test/libndctl.c
@@ -575,7 +575,8 @@ static int check_regions(struct ndctl_bus *bus, struct region *regions, int n,
 					ndctl_region_get_type_name(region));
 			return -ENXIO;
 		}
-		if (ndctl_region_get_interleave_ways(region) != regions[i].interleave_ways) {
+		if (ndctl_bus_has_nfit(bus) &&
+		    ndctl_region_get_interleave_ways(region) != regions[i].interleave_ways) {
 			fprintf(stderr, "%s: expected interleave_ways: %d got: %d\n",
 					devname, regions[i].interleave_ways,
 					ndctl_region_get_interleave_ways(region));
@@ -2516,20 +2517,21 @@ static int check_dimms(struct ndctl_bus *bus, struct dimm *dimms, int n,
 			return -ENXIO;
 		}
 
-		if (ndctl_dimm_has_errors(dimm) != !!dimms[i].flags) {
-			fprintf(stderr, "bus: %s dimm%d %s expected%s errors\n",
+		if (ndctl_bus_has_nfit(bus)) {
+			if (ndctl_dimm_has_errors(dimm) != !!dimms[i].flags) {
+				fprintf(stderr, "bus: %s dimm%d %s expected%s errors\n",
 					ndctl_bus_get_provider(bus), i,
 					ndctl_dimm_get_devname(dimm),
 					dimms[i].flags ? "" : " no");
-			return -ENXIO;
-		}
+				return -ENXIO;
+			}
 
-		if (ndctl_dimm_failed_save(dimm) != dimms[i].f_save
-				|| ndctl_dimm_failed_arm(dimm) != dimms[i].f_arm
-				|| ndctl_dimm_failed_restore(dimm) != dimms[i].f_restore
-				|| ndctl_dimm_smart_pending(dimm) != dimms[i].f_smart
-				|| ndctl_dimm_failed_flush(dimm) != dimms[i].f_flush) {
-			fprintf(stderr, "expected: %s%s%s%s%sgot: %s%s%s%s%s\n",
+			if (ndctl_dimm_failed_save(dimm) != dimms[i].f_save
+			    || ndctl_dimm_failed_arm(dimm) != dimms[i].f_arm
+			    || ndctl_dimm_failed_restore(dimm) != dimms[i].f_restore
+			    || ndctl_dimm_smart_pending(dimm) != dimms[i].f_smart
+			    || ndctl_dimm_failed_flush(dimm) != dimms[i].f_flush) {
+				fprintf(stderr, "expected: %s%s%s%s%sgot: %s%s%s%s%s\n",
 					dimms[i].f_save ? "save_fail " : "",
 					dimms[i].f_arm ? "not_armed " : "",
 					dimms[i].f_restore ? "restore_fail " : "",
@@ -2540,24 +2542,25 @@ static int check_dimms(struct ndctl_bus *bus, struct dimm *dimms, int n,
 					ndctl_dimm_failed_restore(dimm) ? "restore_fail " : "",
 					ndctl_dimm_smart_pending(dimm) ? "smart_event " : "",
 					ndctl_dimm_failed_flush(dimm) ? "flush_fail " : "");
-			return -ENXIO;
-		}
+				return -ENXIO;
+			}
 
-		if (ndctl_test_attempt(test, KERNEL_VERSION(4, 7, 0)) &&
-		    ndctl_bus_has_nfit(bus)) {
-			if (ndctl_dimm_get_formats(dimm) != dimms[i].formats) {
-				fprintf(stderr, "dimm%d expected formats: %d got: %d\n",
+			if (ndctl_test_attempt(test, KERNEL_VERSION(4, 7, 0))) {
+				if (ndctl_dimm_get_formats(dimm) != dimms[i].formats) {
+					fprintf(stderr, "dimm%d expected formats: %d got: %d\n",
 						i, dimms[i].formats,
 						ndctl_dimm_get_formats(dimm));
-				return -ENXIO;
-			}
-			for (j = 0; j < dimms[i].formats; j++) {
-				if (ndctl_dimm_get_formatN(dimm, j) != dimms[i].format[j]) {
-					fprintf(stderr,
-						"dimm%d expected format[%d]: %d got: %d\n",
+					return -ENXIO;
+				}
+				for (j = 0; j < dimms[i].formats; j++) {
+					if (ndctl_dimm_get_formatN(dimm, j) !=
+					    dimms[i].format[j]) {
+						fprintf(stderr,
+							"dimm%d expected format[%d]: %d got: %d\n",
 							i, j, dimms[i].format[j],
 							ndctl_dimm_get_formatN(dimm, j));
-					return -ENXIO;
+						return -ENXIO;
+					}
 				}
 			}
 		}
@@ -2623,6 +2626,7 @@ static int do_test0(struct ndctl_ctx *ctx, struct ndctl_test *test)
 	struct ndctl_bus *bus = ndctl_bus_get_by_provider(ctx, NFIT_PROVIDER0);
 	struct ndctl_region *region;
 	struct ndctl_dimm *dimm;
+	unsigned num_regions = ARRAY_SIZE(regions0);
 	int rc;
 
 	if (!bus)
@@ -2658,22 +2662,25 @@ static int do_test0(struct ndctl_ctx *ctx, struct ndctl_test *test)
 				* ndctl_region_get_interleave_ways(region));
 	}
 
+	if (!ndctl_bus_has_nfit(bus))
+		num_regions = 1;
+
 	/* pfn and dax tests require vmalloc-enabled nfit_test */
 	if (ndctl_test_attempt(test, KERNEL_VERSION(4, 8, 0))) {
-		rc = check_regions(bus, regions0, ARRAY_SIZE(regions0), DAX);
+		rc = check_regions(bus, regions0, num_regions, DAX);
 		if (rc)
 			return rc;
 		reset_bus(bus);
 	}
 
 	if (ndctl_test_attempt(test, KERNEL_VERSION(4, 8, 0))) {
-		rc = check_regions(bus, regions0, ARRAY_SIZE(regions0), PFN);
+		rc = check_regions(bus, regions0, num_regions, PFN);
 		if (rc)
 			return rc;
 		reset_bus(bus);
 	}
 
-	return check_regions(bus, regions0, ARRAY_SIZE(regions0), BTT);
+	return check_regions(bus, regions0, num_regions, BTT);
 }
 
 static int do_test1(struct ndctl_ctx *ctx, struct ndctl_test *test)
-- 
2.26.2
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org

  parent reply	other threads:[~2020-10-07  4:23 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-06  1:00 [PATCH RFC v3] testing/nvdimm: Add test module for non-nfit platforms Santosh Sivaraj
2020-10-07  4:22 ` [PATCH RFC ndctl 1/9] libndctl: test enablement for non-nfit devices Santosh Sivaraj
2020-10-07  4:22   ` [PATCH RFC ndctl 2/9] test/core: Don't fail is nfit module is missing Santosh Sivaraj
2020-10-07  4:22   ` [PATCH RFC ndctl 3/9] test/libndctl: Don't compare phys-id if no-interleave support Santosh Sivaraj
2020-10-07  4:22   ` [PATCH RFC ndctl 4/9] test/libndctl: search by handle instead of range index Santosh Sivaraj
2020-10-07  4:22   ` [PATCH RFC ndctl 5/9] test/libndctl: skip smart tests for non-nfit platforms Santosh Sivaraj
2020-10-07  4:22   ` [PATCH RFC ndctl 6/9] test/libndctl: Don't check for two formats on a dimm Santosh Sivaraj
2020-10-07  4:22   ` Santosh Sivaraj [this message]
2020-10-07  4:22   ` [PATCH RFC ndctl 8/9] test/multi-pmem: fix for no-interleave support Santosh Sivaraj
2020-10-07  4:22   ` [PATCH RFC ndctl 9/9] test: Disable paths which are possibly wrong Santosh Sivaraj
2020-12-07 22:00 ` [PATCH RFC v3] testing/nvdimm: Add test module for non-nfit platforms Dan Williams
2020-12-09  4:17   ` Aneesh Kumar K.V
2020-12-09  4:43     ` Dan Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201007042256.1110626-7-santosh@fossix.org \
    --to=santosh@fossix.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=harish@linux.ibm.com \
    --cc=linux-nvdimm@lists.01.org \
    --cc=sbhat@linux.ibm.com \
    --cc=vaibhav@linux.ibm.com \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.