diff mbox

[ndctl] ndctl, test: unit test updates for the BTT 2.0 format

Message ID 20170624021758.26815-1-vishal.l.verma@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Verma, Vishal L June 24, 2017, 2:17 a.m. UTC
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 <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
 test/libndctl.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

Comments

Dan Williams June 30, 2017, 2:08 a.m. UTC | #1
On Fri, Jun 23, 2017 at 7:17 PM, Vishal Verma <vishal.l.verma@intel.com> wrote:
> 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 <dan.j.williams@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> ---
>  test/libndctl.c | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/test/libndctl.c b/test/libndctl.c
> index 24aff36..89c4c02 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,

I think we need to have different expectations for different BTT
versions. We should be able to check for v1.2 labels before picking
the expectation, or just have a new ndctl_test_attempt() gate on the
4.13 kernel for the new sizes.

>                 },
>         };
>
> @@ -1517,12 +1517,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);
> +       }

How about just change the first one to: "rc = pwrite(fd, buf, 8192, 0);"?
Verma, Vishal L June 30, 2017, 7:52 p.m. UTC | #2
On 06/29, Dan Williams wrote:
> On Fri, Jun 23, 2017 at 7:17 PM, Vishal Verma <vishal.l.verma@intel.com> wrote:
> > 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 <dan.j.williams@intel.com>
> > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> > ---
> >  test/libndctl.c | 19 +++++++++++++------
> >  1 file changed, 13 insertions(+), 6 deletions(-)
> >
> > diff --git a/test/libndctl.c b/test/libndctl.c
> > index 24aff36..89c4c02 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,
> 
> I think we need to have different expectations for different BTT
> versions. We should be able to check for v1.2 labels before picking
> the expectation, or just have a new ndctl_test_attempt() gate on the
> 4.13 kernel for the new sizes.

I'll make the call under a ndctl_test_atttempt. All of nfit_test will
switch to 1.2 labels with the next release, so keeping support for 1.1
sizes seems pointless..

> 
> >                 },
> >         };
> >
> > @@ -1517,12 +1517,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);
> > +       }
> 
> How about just change the first one to: "rc = pwrite(fd, buf, 8192, 0);"?

The buf that is passed in is only 4096 bytes, so I just took the easy
way out and did it twice :)
diff mbox

Patch

diff --git a/test/libndctl.c b/test/libndctl.c
index 24aff36..89c4c02 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,
 		},
 	};
 
@@ -1517,12 +1517,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);