aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorShuah Khan <shuahkh@osg.samsung.com>2017-06-29 18:54:57 -0400
committerShuah Khan <shuahkh@osg.samsung.com>2017-06-30 18:16:23 -0400
commite67f85fb96ca80e5a60ea69c536affed0affc77d (patch)
tree47e015c9c6e077e19b163357020ec181cdbf57c9 /tools
parent0732d06ee563bbcdf34ec889918baa62451b580d (diff)
selftests: membarrier: use ksft_* var arg msg api
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@osg.samsung.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/testing/selftests/membarrier/membarrier_test.c91
1 files 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 @@
7 7
8#include "../kselftest.h" 8#include "../kselftest.h"
9 9
10enum test_membarrier_status {
11 TEST_MEMBARRIER_PASS = 0,
12 TEST_MEMBARRIER_FAIL,
13 TEST_MEMBARRIER_SKIP,
14};
15
16static int sys_membarrier(int cmd, int flags) 10static int sys_membarrier(int cmd, int flags)
17{ 11{
18 return syscall(__NR_membarrier, cmd, flags); 12 return syscall(__NR_membarrier, cmd, flags);
19} 13}
20 14
21static enum test_membarrier_status test_membarrier_cmd_fail(void) 15static int test_membarrier_cmd_fail(void)
22{ 16{
23 int cmd = -1, flags = 0; 17 int cmd = -1, flags = 0;
24 const char *test_name = "membarrier command cmd=-1. Wrong command should fail";
25 18
26 if (sys_membarrier(cmd, flags) != -1) { 19 if (sys_membarrier(cmd, flags) != -1) {
27 ksft_test_result_fail(test_name); 20 ksft_exit_fail_msg(
28 return TEST_MEMBARRIER_FAIL; 21 "sys membarrier invalid command test: command = %d, flags = %d. Should fail, but passed\n",
22 cmd, flags);
29 } 23 }
30 24
31 ksft_test_result_pass(test_name); 25 ksft_test_result_pass(
32 return TEST_MEMBARRIER_PASS; 26 "sys membarrier invalid command test: command = %d, flags = %d. Failed as expected\n",
27 cmd, flags);
28 return 0;
33} 29}
34 30
35static enum test_membarrier_status test_membarrier_flags_fail(void) 31static int test_membarrier_flags_fail(void)
36{ 32{
37 int cmd = MEMBARRIER_CMD_QUERY, flags = 1; 33 int cmd = MEMBARRIER_CMD_QUERY, flags = 1;
38 const char *test_name = "MEMBARRIER_CMD_QUERY, flags=1, Wrong flags should fail";
39 34
40 if (sys_membarrier(cmd, flags) != -1) { 35 if (sys_membarrier(cmd, flags) != -1) {
41 ksft_test_result_fail(test_name); 36 ksft_exit_fail_msg(
42 return TEST_MEMBARRIER_FAIL; 37 "sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = %d. Should fail, but passed\n",
38 flags);
43 } 39 }
44 40
45 ksft_test_result_pass(test_name); 41 ksft_test_result_pass(
46 return TEST_MEMBARRIER_PASS; 42 "sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = %d. Failed as expected\n",
43 flags);
44 return 0;
47} 45}
48 46
49static enum test_membarrier_status test_membarrier_success(void) 47static int test_membarrier_success(void)
50{ 48{
51 int cmd = MEMBARRIER_CMD_SHARED, flags = 0; 49 int cmd = MEMBARRIER_CMD_SHARED, flags = 0;
52 const char *test_name = "execute MEMBARRIER_CMD_SHARED"; 50 const char *test_name = "sys membarrier MEMBARRIER_CMD_SHARED\n";
53 51
54 if (sys_membarrier(cmd, flags) != 0) { 52 if (sys_membarrier(cmd, flags) != 0) {
55 ksft_test_result_fail(test_name); 53 ksft_exit_fail_msg(
56 return TEST_MEMBARRIER_FAIL; 54 "sys membarrier MEMBARRIER_CMD_SHARED test: flags = %d\n",
55 flags);
57 } 56 }
58 57
59 ksft_test_result_pass(test_name); 58 ksft_test_result_pass(
60 return TEST_MEMBARRIER_PASS; 59 "sys membarrier MEMBARRIER_CMD_SHARED test: flags = %d\n",
60 flags);
61 return 0;
61} 62}
62 63
63static enum test_membarrier_status test_membarrier(void) 64static int test_membarrier(void)
64{ 65{
65 enum test_membarrier_status status; 66 int status;
66 67
67 status = test_membarrier_cmd_fail(); 68 status = test_membarrier_cmd_fail();
68 if (status) 69 if (status)
@@ -73,10 +74,10 @@ static enum test_membarrier_status test_membarrier(void)
73 status = test_membarrier_success(); 74 status = test_membarrier_success();
74 if (status) 75 if (status)
75 return status; 76 return status;
76 return TEST_MEMBARRIER_PASS; 77 return 0;
77} 78}
78 79
79static enum test_membarrier_status test_membarrier_query(void) 80static int test_membarrier_query(void)
80{ 81{
81 int flags = 0, ret; 82 int flags = 0, ret;
82 83
@@ -87,34 +88,24 @@ static enum test_membarrier_status test_membarrier_query(void)
87 * It is valid to build a kernel with 88 * It is valid to build a kernel with
88 * CONFIG_MEMBARRIER=n. However, this skips the tests. 89 * CONFIG_MEMBARRIER=n. However, this skips the tests.
89 */ 90 */
90 ksft_exit_skip("CONFIG_MEMBARRIER is not enabled\n"); 91 ksft_exit_skip(
92 "sys membarrier (CONFIG_MEMBARRIER) is disabled.\n");
91 } 93 }
92 ksft_test_result_fail("sys_membarrier() failed\n"); 94 ksft_exit_fail_msg("sys_membarrier() failed\n");
93 return TEST_MEMBARRIER_FAIL;
94 }
95 if (!(ret & MEMBARRIER_CMD_SHARED)) {
96 ksft_test_result_fail("command MEMBARRIER_CMD_SHARED is not supported.\n");
97 return TEST_MEMBARRIER_FAIL;
98 } 95 }
99 ksft_test_result_pass("sys_membarrier available"); 96 if (!(ret & MEMBARRIER_CMD_SHARED))
100 return TEST_MEMBARRIER_PASS; 97 ksft_exit_fail_msg("sys_membarrier is not supported.\n");
98
99 ksft_test_result_pass("sys_membarrier available\n");
100 return 0;
101} 101}
102 102
103int main(int argc, char **argv) 103int main(int argc, char **argv)
104{ 104{
105 ksft_print_header(); 105 ksft_print_header();
106 switch (test_membarrier_query()) {
107 case TEST_MEMBARRIER_FAIL:
108 return ksft_exit_fail();
109 case TEST_MEMBARRIER_SKIP:
110 return ksft_exit_skip(NULL);
111 }
112 switch (test_membarrier()) {
113 case TEST_MEMBARRIER_FAIL:
114 return ksft_exit_fail();
115 case TEST_MEMBARRIER_SKIP:
116 return ksft_exit_skip(NULL);
117 }
118 106
119 return ksft_exit_pass(); 107 test_membarrier_query();
108 test_membarrier();
109
110 ksft_exit_pass();
120} 111}