From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Wang Date: Thu, 29 Jul 2021 21:25:14 +0800 Subject: [LTP] [PATCH 3/3] mbind01: add more tests for MPOL_LOCAL In-Reply-To: <20210729132514.1699551-1-liwang@redhat.com> References: <20210729132514.1699551-1-liwang@redhat.com> Message-ID: <20210729132514.1699551-3-liwang@redhat.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ltp@lists.linux.it Signed-off-by: Li Wang --- 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, + }, + { + 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; + } + setup_node(); p = SAFE_MMAP(NULL, MEM_LENGTH, PROT_READ | PROT_WRITE, MAP_PRIVATE | -- 2.31.1