#include "../kselftest.h"
 
-enum test_membarrier_status {
-       TEST_MEMBARRIER_PASS = 0,
-       TEST_MEMBARRIER_FAIL,
-       TEST_MEMBARRIER_SKIP,
-};
-
 static int sys_membarrier(int cmd, int flags)
 {
        return syscall(__NR_membarrier, cmd, flags);
 }
 
-static enum test_membarrier_status test_membarrier_cmd_fail(void)
+static int test_membarrier_cmd_fail(void)
 {
        int cmd = -1, flags = 0;
-       const char *test_name = "membarrier command cmd=-1. Wrong command should fail";
 
        if (sys_membarrier(cmd, flags) != -1) {
-               ksft_test_result_fail(test_name);
-               return TEST_MEMBARRIER_FAIL;
+               ksft_exit_fail_msg(
+                       "sys membarrier invalid command test: command = %d, flags = %d. Should fail, but passed\n",
+                       cmd, flags);
        }
 
-       ksft_test_result_pass(test_name);
-       return TEST_MEMBARRIER_PASS;
+       ksft_test_result_pass(
+               "sys membarrier invalid command test: command = %d, flags = %d. Failed as expected\n",
+               cmd, flags);
+       return 0;
 }
 
-static enum test_membarrier_status test_membarrier_flags_fail(void)
+static int test_membarrier_flags_fail(void)
 {
        int cmd = MEMBARRIER_CMD_QUERY, flags = 1;
-       const char *test_name = "MEMBARRIER_CMD_QUERY, flags=1, Wrong flags should fail";
 
        if (sys_membarrier(cmd, flags) != -1) {
-               ksft_test_result_fail(test_name);
-               return TEST_MEMBARRIER_FAIL;
+               ksft_exit_fail_msg(
+                       "sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = %d. Should fail, but passed\n",
+                       flags);
        }
 
-       ksft_test_result_pass(test_name);
-       return TEST_MEMBARRIER_PASS;
+       ksft_test_result_pass(
+               "sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = %d. Failed as expected\n",
+               flags);
+       return 0;
 }
 
-static enum test_membarrier_status test_membarrier_success(void)
+static int test_membarrier_success(void)
 {
        int cmd = MEMBARRIER_CMD_SHARED, flags = 0;
-       const char *test_name = "execute MEMBARRIER_CMD_SHARED";
+       const char *test_name = "sys membarrier MEMBARRIER_CMD_SHARED\n";
 
        if (sys_membarrier(cmd, flags) != 0) {
-               ksft_test_result_fail(test_name);
-               return TEST_MEMBARRIER_FAIL;
+               ksft_exit_fail_msg(
+                       "sys membarrier MEMBARRIER_CMD_SHARED test: flags = %d\n",
+                       flags);
        }
 
-       ksft_test_result_pass(test_name);
-       return TEST_MEMBARRIER_PASS;
+       ksft_test_result_pass(
+               "sys membarrier MEMBARRIER_CMD_SHARED test: flags = %d\n",
+               flags);
+       return 0;
 }
 
-static enum test_membarrier_status test_membarrier(void)
+static int test_membarrier(void)
 {
-       enum test_membarrier_status status;
+       int status;
 
        status = test_membarrier_cmd_fail();
        if (status)
        status = test_membarrier_success();
        if (status)
                return status;
-       return TEST_MEMBARRIER_PASS;
+       return 0;
 }
 
-static enum test_membarrier_status test_membarrier_query(void)
+static int test_membarrier_query(void)
 {
        int flags = 0, ret;
 
                         * It is valid to build a kernel with
                         * CONFIG_MEMBARRIER=n. However, this skips the tests.
                         */
-                       ksft_exit_skip("CONFIG_MEMBARRIER is not enabled\n");
+                       ksft_exit_skip(
+                               "sys membarrier (CONFIG_MEMBARRIER) is disabled.\n");
                }
-               ksft_test_result_fail("sys_membarrier() failed\n");
-               return TEST_MEMBARRIER_FAIL;
-       }
-       if (!(ret & MEMBARRIER_CMD_SHARED)) {
-               ksft_test_result_fail("command MEMBARRIER_CMD_SHARED is not supported.\n");
-               return TEST_MEMBARRIER_FAIL;
+               ksft_exit_fail_msg("sys_membarrier() failed\n");
        }
-       ksft_test_result_pass("sys_membarrier available");
-       return TEST_MEMBARRIER_PASS;
+       if (!(ret & MEMBARRIER_CMD_SHARED))
+               ksft_exit_fail_msg("sys_membarrier is not supported.\n");
+
+       ksft_test_result_pass("sys_membarrier available\n");
+       return 0;
 }
 
 int main(int argc, char **argv)
 {
        ksft_print_header();
-       switch (test_membarrier_query()) {
-       case TEST_MEMBARRIER_FAIL:
-               return ksft_exit_fail();
-       case TEST_MEMBARRIER_SKIP:
-               return ksft_exit_skip(NULL);
-       }
-       switch (test_membarrier()) {
-       case TEST_MEMBARRIER_FAIL:
-               return ksft_exit_fail();
-       case TEST_MEMBARRIER_SKIP:
-               return ksft_exit_skip(NULL);
-       }
 
-       return ksft_exit_pass();
+       test_membarrier_query();
+       test_membarrier();
+
+       ksft_exit_pass();
 }