Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031960AbdIZTlk (ORCPT ); Tue, 26 Sep 2017 15:41:40 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:35251 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030581AbdIZTli (ORCPT ); Tue, 26 Sep 2017 15:41:38 -0400 X-Google-Smtp-Source: AOwi7QBD0+Ces0J76cGs7yjf9kWjCURd+djMpyJF7DxccWzaFqVzM/jbGh5J/zRml93inmmOdWrwANPD/gcdj2+I/kU= MIME-Version: 1.0 In-Reply-To: <20170926175151.14264-2-mathieu.desnoyers@efficios.com> References: <20170926175151.14264-1-mathieu.desnoyers@efficios.com> <20170926175151.14264-2-mathieu.desnoyers@efficios.com> From: Shuah Khan Date: Tue, 26 Sep 2017 13:41:35 -0600 Message-ID: Subject: Re: [PATCH for 4.14 2/3] membarrier: selftest: Test private expedited cmd To: Mathieu Desnoyers , shuah@kernel.org Cc: "Paul E . McKenney" , Peter Zijlstra , LKML , Boqun Feng , Andrew Hunter , Maged Michael , gromer@google.com, Avi Kivity , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Dave Watson , Alan Stern , Will Deacon , Andy Lutomirski , linux-arch@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 7791 Lines: 199 Hi Mathew, On Tue, Sep 26, 2017 at 11:51 AM, Mathieu Desnoyers wrote: > Test the new MEMBARRIER_CMD_PRIVATE_EXPEDITED and > MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED commands. > > Add checks expecting specific error values on system calls expected to > fail. > > Signed-off-by: Mathieu Desnoyers > CC: Peter Zijlstra > CC: Paul E. McKenney > CC: Boqun Feng > CC: Andrew Hunter > CC: Maged Michael > CC: gromer@google.com > CC: Avi Kivity > CC: Benjamin Herrenschmidt > CC: Paul Mackerras > CC: Michael Ellerman > CC: Dave Watson > CC: Alan Stern > CC: Will Deacon > CC: Andy Lutomirski > CC: linux-arch@vger.kernel.org > --- > .../testing/selftests/membarrier/membarrier_test.c | 109 Did you run get_maintainers script on this patch? I am curious why get_maintainers didn't include linux-kselftest@vger.kernel.org and shuah@kernel.org thanks, -- Shuah Please make sure you send the patches to ++++++++++++++++++--- > 1 file changed, 94 insertions(+), 15 deletions(-) > > diff --git a/tools/testing/selftests/membarrier/membarrier_test.c b/tools/testing/selftests/membarrier/membarrier_test.c > index 21399fcf1a59..f85657374b59 100644 > --- a/tools/testing/selftests/membarrier/membarrier_test.c > +++ b/tools/testing/selftests/membarrier/membarrier_test.c > @@ -15,49 +15,119 @@ static int sys_membarrier(int cmd, int flags) > static int test_membarrier_cmd_fail(void) > { > int cmd = -1, flags = 0; > + const char *test_name = "sys membarrier invalid command"; > > if (sys_membarrier(cmd, flags) != -1) { > ksft_exit_fail_msg( > - "sys membarrier invalid command test: command = %d, flags = %d. Should fail, but passed\n", > - cmd, flags); > + "%s test: command = %d, flags = %d. Should fail, but passed\n", > + test_name, cmd, flags); > + } > + if (errno != EINVAL) { > + ksft_exit_fail_msg( > + "%s test: flags = %d. Should return (%d: \"%s\"), but returned (%d: \"%s\").\n", > + test_name, flags, EINVAL, strerror(EINVAL), > + errno, strerror(errno)); > } > > ksft_test_result_pass( > - "sys membarrier invalid command test: command = %d, flags = %d. Failed as expected\n", > - cmd, flags); > + "%s test: command = %d, flags = %d, errno = %d. Failed as expected\n", > + test_name, cmd, flags, errno); > return 0; > } > > static int test_membarrier_flags_fail(void) > { > int cmd = MEMBARRIER_CMD_QUERY, flags = 1; > + const char *test_name = "sys membarrier MEMBARRIER_CMD_QUERY invalid flags"; > > if (sys_membarrier(cmd, flags) != -1) { > ksft_exit_fail_msg( > - "sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = %d. Should fail, but passed\n", > - flags); > + "%s test: flags = %d. Should fail, but passed\n", > + test_name, flags); > + } > + if (errno != EINVAL) { > + ksft_exit_fail_msg( > + "%s test: flags = %d. Should return (%d: \"%s\"), but returned (%d: \"%s\").\n", > + test_name, flags, EINVAL, strerror(EINVAL), > + errno, strerror(errno)); > } > > ksft_test_result_pass( > - "sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = %d. Failed as expected\n", > - flags); > + "%s test: flags = %d, errno = %d. Failed as expected\n", > + test_name, flags, errno); > return 0; > } > > -static int test_membarrier_success(void) > +static int test_membarrier_shared_success(void) > { > int cmd = MEMBARRIER_CMD_SHARED, flags = 0; > - const char *test_name = "sys membarrier MEMBARRIER_CMD_SHARED\n"; > + const char *test_name = "sys membarrier MEMBARRIER_CMD_SHARED"; > + > + if (sys_membarrier(cmd, flags) != 0) { > + ksft_exit_fail_msg( > + "%s test: flags = %d, errno = %d\n", > + test_name, flags, errno); > + } > + > + ksft_test_result_pass( > + "%s test: flags = %d\n", test_name, flags); > + return 0; > +} > + > +static int test_membarrier_private_expedited_fail(void) > +{ > + int cmd = MEMBARRIER_CMD_PRIVATE_EXPEDITED, flags = 0; > + const char *test_name = "sys membarrier MEMBARRIER_CMD_PRIVATE_EXPEDITED not registered failure"; > + > + if (sys_membarrier(cmd, flags) != -1) { > + ksft_exit_fail_msg( > + "%s test: flags = %d. Should fail, but passed\n", > + test_name, flags); > + } > + if (errno != EPERM) { > + ksft_exit_fail_msg( > + "%s test: flags = %d. Should return (%d: \"%s\"), but returned (%d: \"%s\").\n", > + test_name, flags, EPERM, strerror(EPERM), > + errno, strerror(errno)); > + } > + > + ksft_test_result_pass( > + "%s test: flags = %d, errno = %d\n", > + test_name, flags, errno); > + return 0; > +} > + > +static int test_membarrier_register_private_expedited_success(void) > +{ > + int cmd = MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED, flags = 0; > + const char *test_name = "sys membarrier MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED"; > > if (sys_membarrier(cmd, flags) != 0) { > ksft_exit_fail_msg( > - "sys membarrier MEMBARRIER_CMD_SHARED test: flags = %d\n", > - flags); > + "%s test: flags = %d, errno = %d\n", > + test_name, flags, errno); > } > > ksft_test_result_pass( > - "sys membarrier MEMBARRIER_CMD_SHARED test: flags = %d\n", > - flags); > + "%s test: flags = %d\n", > + test_name, flags); > + return 0; > +} > + > +static int test_membarrier_private_expedited_success(void) > +{ > + int cmd = MEMBARRIER_CMD_PRIVATE_EXPEDITED, flags = 0; > + const char *test_name = "sys membarrier MEMBARRIER_CMD_PRIVATE_EXPEDITED"; > + > + if (sys_membarrier(cmd, flags) != 0) { > + ksft_exit_fail_msg( > + "%s test: flags = %d, errno = %d\n", > + test_name, flags, errno); > + } > + > + ksft_test_result_pass( > + "%s test: flags = %d\n", > + test_name, flags); > return 0; > } > > @@ -71,7 +141,16 @@ static int test_membarrier(void) > status = test_membarrier_flags_fail(); > if (status) > return status; > - status = test_membarrier_success(); > + status = test_membarrier_shared_success(); > + if (status) > + return status; > + status = test_membarrier_private_expedited_fail(); > + if (status) > + return status; > + status = test_membarrier_register_private_expedited_success(); > + if (status) > + return status; > + status = test_membarrier_private_expedited_success(); > if (status) > return status; > return 0; > -- > 2.11.0 >