run_mremap_test_case() reports a test as pass when remap_region()
succeeds. But if the test was expecting failure and remap succeeds,
it should be treated as a failure and not a success.

Check test_case.expect_failure on the successful remap path. If
it expected failure, report a failure instead of success.

Fixes: 7df666253f26 ("kselftests: vm: add mremap tests")
Signed-off-by: Sarthak Sharma <[email protected]>
---
 tools/testing/selftests/mm/mremap_test.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/mm/mremap_test.c 
b/tools/testing/selftests/mm/mremap_test.c
index a5813a5e8f5b..ba9b7f7566d0 100644
--- a/tools/testing/selftests/mm/mremap_test.c
+++ b/tools/testing/selftests/mm/mremap_test.c
@@ -1138,12 +1138,15 @@ static void run_mremap_test_case(struct test test_case, 
unsigned int threshold_m
                else
                        ksft_test_result_fail("%s\n", test_case.name);
        } else {
+               if (test_case.expect_failure)
+                       ksft_test_result_fail("%s: unexpected mremap success\n",
+                                             test_case.name);
                /*
                 * Comparing mremap time is only applicable if entire region
                 * was faulted in.
                 */
-               if (threshold_mb == VALIDATION_NO_THRESHOLD ||
-                   test_case.config.region_size <= threshold_mb * _1MB)
+               else if (threshold_mb == VALIDATION_NO_THRESHOLD ||
+                        test_case.config.region_size <= threshold_mb * _1MB)
                        ksft_test_result_pass("%s: mremap time: %12lldns\n",
                                              test_case.name, remap_time);
                else
-- 
2.53.0


Reply via email to