[LTP] [PATCH 3/3] mbind01: add more tests for MPOL_LOCAL

Jan Stancek jstancek@redhat.com
Thu Jul 29 16:20:17 CEST 2021


On Thu, Jul 29, 2021 at 3:25 PM Li Wang <liwang@redhat.com> wrote:

> Signed-off-by: Li Wang <liwang@redhat.com>
> ---
>  testcases/kernel/syscalls/mbind/mbind01.c | 25 ++++++++++++++++++++---
>  1 file changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/mbind/mbind01.c
> b/testcases/kernel/syscalls/mbind/mbind01.c
> index d2cf13c8f..b5c1e948d 100644
> --- a/testcases/kernel/syscalls/mbind/mbind01.c
> +++ b/testcases/kernel/syscalls/mbind/mbind01.c
> @@ -34,7 +34,7 @@ static struct bitmask *nodemask, *getnodemask,
> *empty_nodemask;
>  static void test_default(unsigned int i, char *p);
>  static void test_none(unsigned int i, char *p);
>  static void test_invalid_nodemask(unsigned int i, char *p);
> -static void check_policy_pref_no_target(int);
> +static void check_policy_pref_or_local(int);
>
>  struct test_case {
>         int policy;
> @@ -92,7 +92,7 @@ static struct test_case tcase[] = {
>                 .ret = 0,
>                 .err = 0,
>                 .test = test_none,
> -               .check_policy = check_policy_pref_no_target,
> +               .check_policy = check_policy_pref_or_local,
>         },
>         {
>                 POLICY_DESC(MPOL_PREFERRED),
> @@ -101,6 +101,20 @@ static struct test_case tcase[] = {
>                 .test = test_default,
>                 .exp_nodemask = &nodemask,
>         },
> +       {
> +               POLICY_DESC(MPOL_LOCAL),
> +               .ret = 0,
> +               .err = 0,
> +               .test = test_none,
> +               .exp_nodemask = &empty_nodemask,
> +               .check_policy = check_policy_pref_or_local,
>

This is a bit more permissive, it allows for MPOL_LOCAL to return also
MPOL_PREFERRED.
Shouldn't that still be treated as error?


> +       },
> +       {
> +               POLICY_DESC_TEXT(MPOL_LOCAL, "target exists"),
> +               .ret = -1,
> +               .err = EINVAL,
> +               .test = test_default,
> +       },
>         {
>                 POLICY_DESC(UNKNOWN_POLICY),
>                 .ret = -1,
> @@ -122,7 +136,7 @@ static struct test_case tcase[] = {
>         },
>  };
>
> -static void check_policy_pref_no_target(int policy)
> +static void check_policy_pref_or_local(int policy)
>  {
>         if (policy != MPOL_PREFERRED && policy != MPOL_LOCAL) {
>                 tst_res(TFAIL, "Wrong policy: %s(%d), "
> @@ -182,6 +196,11 @@ static void do_test(unsigned int i)
>
>         tst_res(TINFO, "case %s", tc->desc);
>
> +       if ((tst_kvercmp(3, 8, 0)) < 0 && (tc->policy == MPOL_LOCAL)) {
> +               tst_res(TCONF, "%s is not supported",
> tst_mempolicy_mode_name(tc->policy));
> +               return;
> +       }
>

I was thinking of runtime check (to support also downstream kernels that
backported it),
but I don't have strong opinion.



> +
>         setup_node();
>
>         p = SAFE_MMAP(NULL, MEM_LENGTH, PROT_READ | PROT_WRITE,
> MAP_PRIVATE |
> --
> 2.31.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20210729/7098a98b/attachment.htm>


More information about the ltp mailing list