Hi Greg/Paul/Alice, On 06/12/2017 12:56 AM, Greg Kroah-Hartman wrote: > From: Paul Elder <paul.elder@xxxxxxxx> > > Make the membarrier test output in the TAP13 format by using the > TAP13 output functions defined in kselftest.h > > Signed-off-by: Paul Elder <paul.elder@xxxxxxxx> > Signed-off-by: Alice Ferrazzi <alice.ferrazzi@xxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > v2: Just use the standard function names, no _tap suffix - Alice I am pulling all of these into linux-kselftest next very soon. Please send a separate patch to fix the messages for this test. Details below: The output looks like this: TAP version 13 ok 1 sys_membarrier available ok 2 membarrier command fail ok 3 Wrong flags should fail ok 4 execute MEMBARRIER_CMD_SHARED 1..4 selftests: membarrier_test [PASS] Looks good overall - couple of comments: Please use these as reference for output. thanks again for doing this. -- Shuah > > > .../testing/selftests/membarrier/membarrier_test.c | 35 ++++++++++++---------- > 1 file changed, 19 insertions(+), 16 deletions(-) > > diff --git a/tools/testing/selftests/membarrier/membarrier_test.c b/tools/testing/selftests/membarrier/membarrier_test.c > index 535f0fef4d0b..cae8c984dfb0 100644 > --- a/tools/testing/selftests/membarrier/membarrier_test.c > +++ b/tools/testing/selftests/membarrier/membarrier_test.c > @@ -21,36 +21,42 @@ static int sys_membarrier(int cmd, int flags) > static enum test_membarrier_status test_membarrier_cmd_fail(void) > { > int cmd = -1, flags = 0; > + const char *test_name = "membarrier command fail"; > > if (sys_membarrier(cmd, flags) != -1) { > - printf("membarrier: Wrong command should fail but passed.\n"); > + ksft_test_result_fail(test_name); This changes the text - I think this should read: ok 2 membarrier command cmd=-1. Wrong command should fail but passed. instead of "ok 2 membarrier command fail" > return TEST_MEMBARRIER_FAIL; > } > + > + ksft_test_result_pass(test_name); > return TEST_MEMBARRIER_PASS; > } > > static enum test_membarrier_status test_membarrier_flags_fail(void) > { > int cmd = MEMBARRIER_CMD_QUERY, flags = 1; > + const char *test_name = "Wrong flags should fail"; > > if (sys_membarrier(cmd, flags) != -1) { > - printf("membarrier: Wrong flags should fail but passed.\n"); > + ksft_test_result_fail(test_name); This can be improved to read: "ok 3 MEMBARRIER_CMD_QUERY - Wrong flags should fail" > return TEST_MEMBARRIER_FAIL; > } > + > + ksft_test_result_pass(test_name); > return TEST_MEMBARRIER_PASS; > } > > static enum test_membarrier_status test_membarrier_success(void) > { > int cmd = MEMBARRIER_CMD_SHARED, flags = 0; > + const char *test_name = "execute MEMBARRIER_CMD_SHARED"; > > if (sys_membarrier(cmd, flags) != 0) { > - printf("membarrier: Executing MEMBARRIER_CMD_SHARED failed. %s.\n", > - strerror(errno)); > + ksft_test_result_fail(test_name); > return TEST_MEMBARRIER_FAIL; > } > > - printf("membarrier: MEMBARRIER_CMD_SHARED success.\n"); > + ksft_test_result_pass(test_name); > return TEST_MEMBARRIER_PASS; > } > > @@ -74,32 +80,30 @@ static enum test_membarrier_status test_membarrier_query(void) > { > int flags = 0, ret; > > - printf("membarrier MEMBARRIER_CMD_QUERY "); > ret = sys_membarrier(MEMBARRIER_CMD_QUERY, flags); > if (ret < 0) { > - printf("failed. %s.\n", strerror(errno)); > - switch (errno) { > - case ENOSYS: > + if (errno == ENOSYS) { > /* > * It is valid to build a kernel with > * CONFIG_MEMBARRIER=n. However, this skips the tests. > */ > - return TEST_MEMBARRIER_SKIP; > - case EINVAL: > - default: > - return TEST_MEMBARRIER_FAIL; > + ksft_test_result_skip("CONFIG_MEMBARRIER is not enabled\n"); > + return ksft_exit_skip(); > } > + ksft_test_result_fail("sys_membarrier() failed\n"); > + return TEST_MEMBARRIER_FAIL; > } > if (!(ret & MEMBARRIER_CMD_SHARED)) { > - printf("command MEMBARRIER_CMD_SHARED is not supported.\n"); > + ksft_test_result_fail("command MEMBARRIER_CMD_SHARED is not supported.\n"); > return TEST_MEMBARRIER_FAIL; > } > - printf("syscall available.\n"); > + ksft_test_result_pass("sys_membarrier available"); > return TEST_MEMBARRIER_PASS; > } > > int main(int argc, char **argv) > { > + ksft_print_header(); > switch (test_membarrier_query()) { > case TEST_MEMBARRIER_FAIL: > return ksft_exit_fail(); > @@ -113,6 +117,5 @@ int main(int argc, char **argv) > return ksft_exit_skip(); > } > > - printf("membarrier: tests done!\n"); > return ksft_exit_pass(); > } > -- 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