[PATCH 4/4] selftests: membarrier: use ksft_* var arg msg api

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Use ksft_* var arg msg to include strerror() info. in test output. Remove
redundant SKIP/FAIL/PASS logic as it is no longer needed with ksft_ api.
Improve test output to be consistent and clear.

Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
---
 .../testing/selftests/membarrier/membarrier_test.c | 91 ++++++++++------------
 1 file changed, 41 insertions(+), 50 deletions(-)

diff --git a/tools/testing/selftests/membarrier/membarrier_test.c b/tools/testing/selftests/membarrier/membarrier_test.c
index 74a712eab2e6..21399fcf1a59 100644
--- a/tools/testing/selftests/membarrier/membarrier_test.c
+++ b/tools/testing/selftests/membarrier/membarrier_test.c
@@ -7,62 +7,63 @@
 
 #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)
@@ -73,10 +74,10 @@ static enum test_membarrier_status test_membarrier(void)
 	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;
 
@@ -87,34 +88,24 @@ static enum test_membarrier_status test_membarrier_query(void)
 			 * 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();
 }
-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux