Re: [PATCH v2 6/9] memfd-tests: test hugetlbfs sealing

2017-11-06 Thread Mike Kravetz
On 11/06/2017 06:39 AM, Marc-André Lureau wrote:
> Remove most of the special-casing of hugetlbfs now that sealing
> is supported.
> 
> Signed-off-by: Marc-André Lureau 

Reviewed-by: Mike Kravetz 

-- 
Mike Kravetz

> ---
>  tools/testing/selftests/memfd/memfd_test.c | 150 
> +++--
>  1 file changed, 15 insertions(+), 135 deletions(-)
> 
> diff --git a/tools/testing/selftests/memfd/memfd_test.c 
> b/tools/testing/selftests/memfd/memfd_test.c
> index 845e5f67b6f0..cca957a06525 100644
> --- a/tools/testing/selftests/memfd/memfd_test.c
> +++ b/tools/testing/selftests/memfd/memfd_test.c
> @@ -513,6 +513,10 @@ static void mfd_assert_grow_write(int fd)
>   static char *buf;
>   ssize_t l;
>  
> + /* hugetlbfs does not support write */
> + if (hugetlbfs_test)
> + return;
> +
>   buf = malloc(mfd_def_size * 8);
>   if (!buf) {
>   printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
> @@ -533,6 +537,10 @@ static void mfd_fail_grow_write(int fd)
>   static char *buf;
>   ssize_t l;
>  
> + /* hugetlbfs does not support write */
> + if (hugetlbfs_test)
> + return;
> +
>   buf = malloc(mfd_def_size * 8);
>   if (!buf) {
>   printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
> @@ -627,18 +635,13 @@ static void test_create(void)
>   fd = mfd_assert_new("", 0, MFD_CLOEXEC);
>   close(fd);
>  
> - if (!hugetlbfs_test) {
> - /* verify MFD_ALLOW_SEALING is allowed */
> - fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING);
> - close(fd);
> -
> - /* verify MFD_ALLOW_SEALING | MFD_CLOEXEC is allowed */
> - fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING | MFD_CLOEXEC);
> - close(fd);
> - } else {
> - /* sealing is not supported on hugetlbfs */
> - mfd_fail_new("", MFD_ALLOW_SEALING);
> - }
> + /* verify MFD_ALLOW_SEALING is allowed */
> + fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING);
> + close(fd);
> +
> + /* verify MFD_ALLOW_SEALING | MFD_CLOEXEC is allowed */
> + fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING | MFD_CLOEXEC);
> + close(fd);
>  }
>  
>  /*
> @@ -649,10 +652,6 @@ static void test_basic(void)
>  {
>   int fd;
>  
> - /* hugetlbfs does not contain sealing support */
> - if (hugetlbfs_test)
> - return;
> -
>   printf("%s BASIC\n", MEMFD_STR);
>  
>   fd = mfd_assert_new("kern_memfd_basic",
> @@ -697,28 +696,6 @@ static void test_basic(void)
>   close(fd);
>  }
>  
> -/*
> - * hugetlbfs doesn't support seals or write, so just verify grow and shrink
> - * on a hugetlbfs file created via memfd_create.
> - */
> -static void test_hugetlbfs_grow_shrink(void)
> -{
> - int fd;
> -
> - printf("%s HUGETLBFS-GROW-SHRINK\n", MEMFD_STR);
> -
> - fd = mfd_assert_new("kern_memfd_seal_write",
> - mfd_def_size,
> - MFD_CLOEXEC);
> -
> - mfd_assert_read(fd);
> - mfd_assert_write(fd);
> - mfd_assert_shrink(fd);
> - mfd_assert_grow(fd);
> -
> - close(fd);
> -}
> -
>  /*
>   * Test SEAL_WRITE
>   * Test whether SEAL_WRITE actually prevents modifications.
> @@ -727,13 +704,6 @@ static void test_seal_write(void)
>  {
>   int fd;
>  
> - /*
> -  * hugetlbfs does not contain sealing or write support.  Just test
> -  * basic grow and shrink via test_hugetlbfs_grow_shrink.
> -  */
> - if (hugetlbfs_test)
> - return test_hugetlbfs_grow_shrink();
> -
>   printf("%s SEAL-WRITE\n", MEMFD_STR);
>  
>   fd = mfd_assert_new("kern_memfd_seal_write",
> @@ -760,10 +730,6 @@ static void test_seal_shrink(void)
>  {
>   int fd;
>  
> - /* hugetlbfs does not contain sealing support */
> - if (hugetlbfs_test)
> - return;
> -
>   printf("%s SEAL-SHRINK\n", MEMFD_STR);
>  
>   fd = mfd_assert_new("kern_memfd_seal_shrink",
> @@ -790,10 +756,6 @@ static void test_seal_grow(void)
>  {
>   int fd;
>  
> - /* hugetlbfs does not contain sealing support */
> - if (hugetlbfs_test)
> - return;
> -
>   printf("%s SEAL-GROW\n", MEMFD_STR);
>  
>   fd = mfd_assert_new("kern_memfd_seal_grow",
> @@ -820,10 +782,6 @@ static void test_seal_resize(void)
>  {
>   int fd;
>  
> - /* hugetlbfs does not contain sealing support */
> - if (hugetlbfs_test)
> - return;
> -
>   printf("%s SEAL-RESIZE\n", MEMFD_STR);
>  
>   fd = mfd_assert_new("kern_memfd_seal_resize",
> @@ -842,32 +800,6 @@ static void test_seal_resize(void)
>   close(fd);
>  }
>  
> -/*
> - * hugetlbfs does not support seals.  Basic test to dup the memfd created
> - * fd and perform some basic operations on it.
> - */
> -static void hugetlbfs_dup(char *b_suffix)
> -{
> - int fd, fd2;
> -
> - printf("%s HUGETLBFS-DUP %s\n", MEMFD_STR, b_suffix);
> -
> - fd = mfd_assert_new("kern_memfd_share_dup",
>

[PATCH v2 6/9] memfd-tests: test hugetlbfs sealing

2017-11-06 Thread Marc-André Lureau
Remove most of the special-casing of hugetlbfs now that sealing
is supported.

Signed-off-by: Marc-André Lureau 
---
 tools/testing/selftests/memfd/memfd_test.c | 150 +++--
 1 file changed, 15 insertions(+), 135 deletions(-)

diff --git a/tools/testing/selftests/memfd/memfd_test.c 
b/tools/testing/selftests/memfd/memfd_test.c
index 845e5f67b6f0..cca957a06525 100644
--- a/tools/testing/selftests/memfd/memfd_test.c
+++ b/tools/testing/selftests/memfd/memfd_test.c
@@ -513,6 +513,10 @@ static void mfd_assert_grow_write(int fd)
static char *buf;
ssize_t l;
 
+   /* hugetlbfs does not support write */
+   if (hugetlbfs_test)
+   return;
+
buf = malloc(mfd_def_size * 8);
if (!buf) {
printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
@@ -533,6 +537,10 @@ static void mfd_fail_grow_write(int fd)
static char *buf;
ssize_t l;
 
+   /* hugetlbfs does not support write */
+   if (hugetlbfs_test)
+   return;
+
buf = malloc(mfd_def_size * 8);
if (!buf) {
printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
@@ -627,18 +635,13 @@ static void test_create(void)
fd = mfd_assert_new("", 0, MFD_CLOEXEC);
close(fd);
 
-   if (!hugetlbfs_test) {
-   /* verify MFD_ALLOW_SEALING is allowed */
-   fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING);
-   close(fd);
-
-   /* verify MFD_ALLOW_SEALING | MFD_CLOEXEC is allowed */
-   fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING | MFD_CLOEXEC);
-   close(fd);
-   } else {
-   /* sealing is not supported on hugetlbfs */
-   mfd_fail_new("", MFD_ALLOW_SEALING);
-   }
+   /* verify MFD_ALLOW_SEALING is allowed */
+   fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING);
+   close(fd);
+
+   /* verify MFD_ALLOW_SEALING | MFD_CLOEXEC is allowed */
+   fd = mfd_assert_new("", 0, MFD_ALLOW_SEALING | MFD_CLOEXEC);
+   close(fd);
 }
 
 /*
@@ -649,10 +652,6 @@ static void test_basic(void)
 {
int fd;
 
-   /* hugetlbfs does not contain sealing support */
-   if (hugetlbfs_test)
-   return;
-
printf("%s BASIC\n", MEMFD_STR);
 
fd = mfd_assert_new("kern_memfd_basic",
@@ -697,28 +696,6 @@ static void test_basic(void)
close(fd);
 }
 
-/*
- * hugetlbfs doesn't support seals or write, so just verify grow and shrink
- * on a hugetlbfs file created via memfd_create.
- */
-static void test_hugetlbfs_grow_shrink(void)
-{
-   int fd;
-
-   printf("%s HUGETLBFS-GROW-SHRINK\n", MEMFD_STR);
-
-   fd = mfd_assert_new("kern_memfd_seal_write",
-   mfd_def_size,
-   MFD_CLOEXEC);
-
-   mfd_assert_read(fd);
-   mfd_assert_write(fd);
-   mfd_assert_shrink(fd);
-   mfd_assert_grow(fd);
-
-   close(fd);
-}
-
 /*
  * Test SEAL_WRITE
  * Test whether SEAL_WRITE actually prevents modifications.
@@ -727,13 +704,6 @@ static void test_seal_write(void)
 {
int fd;
 
-   /*
-* hugetlbfs does not contain sealing or write support.  Just test
-* basic grow and shrink via test_hugetlbfs_grow_shrink.
-*/
-   if (hugetlbfs_test)
-   return test_hugetlbfs_grow_shrink();
-
printf("%s SEAL-WRITE\n", MEMFD_STR);
 
fd = mfd_assert_new("kern_memfd_seal_write",
@@ -760,10 +730,6 @@ static void test_seal_shrink(void)
 {
int fd;
 
-   /* hugetlbfs does not contain sealing support */
-   if (hugetlbfs_test)
-   return;
-
printf("%s SEAL-SHRINK\n", MEMFD_STR);
 
fd = mfd_assert_new("kern_memfd_seal_shrink",
@@ -790,10 +756,6 @@ static void test_seal_grow(void)
 {
int fd;
 
-   /* hugetlbfs does not contain sealing support */
-   if (hugetlbfs_test)
-   return;
-
printf("%s SEAL-GROW\n", MEMFD_STR);
 
fd = mfd_assert_new("kern_memfd_seal_grow",
@@ -820,10 +782,6 @@ static void test_seal_resize(void)
 {
int fd;
 
-   /* hugetlbfs does not contain sealing support */
-   if (hugetlbfs_test)
-   return;
-
printf("%s SEAL-RESIZE\n", MEMFD_STR);
 
fd = mfd_assert_new("kern_memfd_seal_resize",
@@ -842,32 +800,6 @@ static void test_seal_resize(void)
close(fd);
 }
 
-/*
- * hugetlbfs does not support seals.  Basic test to dup the memfd created
- * fd and perform some basic operations on it.
- */
-static void hugetlbfs_dup(char *b_suffix)
-{
-   int fd, fd2;
-
-   printf("%s HUGETLBFS-DUP %s\n", MEMFD_STR, b_suffix);
-
-   fd = mfd_assert_new("kern_memfd_share_dup",
-   mfd_def_size,
-   MFD_CLOEXEC);
-
-   fd2 = mfd_assert_dup(fd);
-
-   mfd_assert_read(fd);
-   mfd_assert_write(fd);
-
-   mfd_assert_shrink(fd2);
-   mfd_assert_grow(fd2);
-
-   close