With the BTT 2.0 update, a couple of minor updates to the unit tests are
needed:
test/libndctl: Update expected BTT sizes
test/libndctl: in btt_autodetect, when wiping an old BTT, wipe the first
two 4K pages instead of one.

Cc: Dan Williams <[email protected]>
Signed-off-by: Vishal Verma <[email protected]>
---

v2:
 - Move the new BTT size check under a 4.13.0 attempt (Dan)

 test/libndctl.c | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/test/libndctl.c b/test/libndctl.c
index 24aff36..0f67d54 100644
--- a/test/libndctl.c
+++ b/test/libndctl.c
@@ -994,16 +994,16 @@ static int check_btt_size(struct ndctl_btt *btt)
        int size_select, sect_select;
        unsigned long long expect_table[][2] = {
                [0] = {
-                       [0] = 0x11b4400,
-                       [1] = 0x8da2000,
+                       [0] = 0x11b5400,
+                       [1] = 0x8daa000,
                },
                [1] = {
-                       [0] = 0x13b0400,
-                       [1] = 0x9d82000,
+                       [0] = 0x13b1400,
+                       [1] = 0x9d8a000,
                },
                [2] = {
-                       [0] = 0x1aa2600,
-                       [1] = 0xd513000,
+                       [0] = 0x1aa3600,
+                       [1] = 0xd51b000,
                },
        };
 
@@ -1107,9 +1107,12 @@ static int check_btt_create(struct ndctl_region *region, 
struct ndctl_namespace
                                                devname, mode);
                }
 
-               rc = check_btt_size(btt);
-               if (rc)
-                       goto err;
+               /* prior to v4.13 the expected sizes were different due to 
BTT1.1 */
+               if (ndctl_test_attempt(test, KERNEL_VERSION(4, 13, 0))) {
+                       rc = check_btt_size(btt);
+                       if (rc)
+                               goto err;
+               }
 
                if (btt_seed == ndctl_region_get_btt_seed(region)
                                && btt == btt_seed) {
@@ -1517,12 +1520,19 @@ static int check_btt_autodetect(struct ndctl_bus *bus,
        }
 
        memset(buf, 0, 4096);
+       /* Delete both the first and second 4K pages */
        rc = pwrite(fd, buf, 4096, 4096);
        if (rc < 4096) {
                rc = -ENXIO;
                fprintf(stderr, "%s: failed to overwrite btt on %s\n",
                                devname, bdev);
        }
+       rc = pwrite(fd, buf, 4096, 0);
+       if (rc < 4096) {
+               rc = -ENXIO;
+               fprintf(stderr, "%s: failed to overwrite btt on %s\n",
+                               devname, bdev);
+       }
  out:
        ndctl_region_set_ro(region, namespace->ro);
        ndctl_namespace_set_raw_mode(ndns, 0);
-- 
2.9.3

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

Reply via email to