Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1663098 > unrolled thread

[PATCH v1 0/2] Fix kselftest_harness regression

Started byMickaël Salaün <mic@digikod.net>
First post2017-06-11 14:40 +0200
Last post2017-06-12 22:40 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v1 0/2] Fix kselftest_harness regression Mickaël Salaün <mic@digikod.net> - 2017-06-11 14:40 +0200
    [PATCH v1 1/2] Revert "selftests: kselftest_harness: fix compile warnings" Mickaël Salaün <mic@digikod.net> - 2017-06-11 14:40 +0200
    [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning Mickaël Salaün <mic@digikod.net> - 2017-06-11 14:40 +0200
      Re: [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning Kees Cook <keescook@chromium.org> - 2017-06-12 04:30 +0200
        Re: [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning Shuah Khan <shuah@kernel.org> - 2017-06-12 22:40 +0200

#1663098 — [PATCH v1 0/2] Fix kselftest_harness regression

FromMickaël Salaün <mic@digikod.net>
Date2017-06-11 14:40 +0200
Subject[PATCH v1 0/2] Fix kselftest_harness regression
Message-ID<tRajT-54m-3@gated-at.bofh.it>
In the linux-next tree, commit f3380b7b8a72 ("selftests: kselftest_harness: fix
compile warnings") changes the test behavior when a test goes wrong.  Instead,
the error handler is called when a test succeed.

Mickaël Salaün (2):
  Revert "selftests: kselftest_harness: fix compile warnings"
  selftests: kselftest_harness: Fix compile warning

 tools/testing/selftests/kselftest_harness.h   | 3 +--
 tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

-- 
2.11.0

[toc] | [next] | [standalone]


#1663099 — [PATCH v1 1/2] Revert "selftests: kselftest_harness: fix compile warnings"

FromMickaël Salaün <mic@digikod.net>
Date2017-06-11 14:40 +0200
Subject[PATCH v1 1/2] Revert "selftests: kselftest_harness: fix compile warnings"
Message-ID<tRajT-54m-1@gated-at.bofh.it>
In reply to#1663098
This reverts commit f3380b7b8a72f435daceb49f7f7513f3ea2ce5ea.

The OPTIONAL_HANDLER macro, called by all ASSERT_* and EXPECT_* macros,
must support an optional error handler. This is done with an optional
block after the "for" loop.

This enable to pass 52/52 seccomp-bpf tests instead of 42/52.

Signed-off-by: Mickaël Salaün <mic@digikod.net>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Kees Cook <keescook@chromium.org>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Will Drewry <wad@chromium.org>
---
 tools/testing/selftests/kselftest_harness.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index 432245faeab3..c56f72e07cd7 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -555,8 +555,7 @@
  * return while still providing an optional block to the API consumer.
  */
 #define OPTIONAL_HANDLER(_assert) \
-	for (; _metadata->trigger;  _metadata->trigger = __bail(_assert)) \
-		;
+	for (; _metadata->trigger;  _metadata->trigger = __bail(_assert))
 
 #define __EXPECT(_expected, _seen, _t, _assert) do { \
 	/* Avoid multiple evaluation of the cases */ \
-- 
2.11.0

[toc] | [prev] | [next] | [standalone]


#1663100 — [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning

FromMickaël Salaün <mic@digikod.net>
Date2017-06-11 14:40 +0200
Subject[PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning
Message-ID<tRajU-54m-9@gated-at.bofh.it>
In reply to#1663098
Do not confuse the compiler with a semicolon preceding a block. Replace
the semicolon with an empty block to avoid a warning:

  gcc -Wl,-no-as-needed -Wall -lpthread seccomp_bpf.c -o /.../linux/tools/testing/selftests/seccomp/seccomp_bpf
  In file included from seccomp_bpf.c:40:0:
  seccomp_bpf.c: In function ‘change_syscall’:
  ../kselftest_harness.h:558:2: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
    for (; _metadata->trigger;  _metadata->trigger = __bail(_assert))
    ^
  ../kselftest_harness.h:574:14: note: in expansion of macro ‘OPTIONAL_HANDLER’
   } while (0); OPTIONAL_HANDLER(_assert)
                ^~~~~~~~~~~~~~~~
  ../kselftest_harness.h:440:2: note: in expansion of macro ‘__EXPECT’
    __EXPECT(expected, seen, ==, 0)
    ^~~~~~~~
  seccomp_bpf.c:1313:2: note: in expansion of macro ‘EXPECT_EQ’
    EXPECT_EQ(0, ret);
    ^~~~~~~~~
  seccomp_bpf.c:1317:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
    {
    ^

Signed-off-by: Mickaël Salaün <mic@digikod.net>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Kees Cook <keescook@chromium.org>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Will Drewry <wad@chromium.org>
---
 tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c
index 7ba94efb24fd..18dad07ae16b 100644
--- a/tools/testing/selftests/seccomp/seccomp_bpf.c
+++ b/tools/testing/selftests/seccomp/seccomp_bpf.c
@@ -1310,7 +1310,7 @@ void change_syscall(struct __test_metadata *_metadata,
 	iov.iov_len = sizeof(regs);
 	ret = ptrace(PTRACE_GETREGSET, tracee, NT_PRSTATUS, &iov);
 #endif
-	EXPECT_EQ(0, ret);
+	EXPECT_EQ(0, ret) {}
 
 #if defined(__x86_64__) || defined(__i386__) || defined(__powerpc__) || \
     defined(__s390__) || defined(__hppa__)
-- 
2.11.0

[toc] | [prev] | [next] | [standalone]


#1663194 — Re: [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning

FromKees Cook <keescook@chromium.org>
Date2017-06-12 04:30 +0200
SubjectRe: [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning
Message-ID<tRnh7-4Ei-3@gated-at.bofh.it>
In reply to#1663100
On Sun, Jun 11, 2017 at 5:32 AM, Mickaël Salaün <mic@digikod.net> wrote:
> Do not confuse the compiler with a semicolon preceding a block. Replace
> the semicolon with an empty block to avoid a warning:
>
>   gcc -Wl,-no-as-needed -Wall -lpthread seccomp_bpf.c -o /.../linux/tools/testing/selftests/seccomp/seccomp_bpf
>   In file included from seccomp_bpf.c:40:0:
>   seccomp_bpf.c: In function ‘change_syscall’:
>   ../kselftest_harness.h:558:2: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
>     for (; _metadata->trigger;  _metadata->trigger = __bail(_assert))
>     ^
>   ../kselftest_harness.h:574:14: note: in expansion of macro ‘OPTIONAL_HANDLER’
>    } while (0); OPTIONAL_HANDLER(_assert)
>                 ^~~~~~~~~~~~~~~~
>   ../kselftest_harness.h:440:2: note: in expansion of macro ‘__EXPECT’
>     __EXPECT(expected, seen, ==, 0)
>     ^~~~~~~~
>   seccomp_bpf.c:1313:2: note: in expansion of macro ‘EXPECT_EQ’
>     EXPECT_EQ(0, ret);
>     ^~~~~~~~~
>   seccomp_bpf.c:1317:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
>     {
>     ^
>
> Signed-off-by: Mickaël Salaün <mic@digikod.net>
> Cc: Andy Lutomirski <luto@amacapital.net>
> Cc: Kees Cook <keescook@chromium.org>
> Cc: Shuah Khan <shuahkh@osg.samsung.com>
> Cc: Will Drewry <wad@chromium.org>

Eek, thanks for catching that. :)

Acked-by: Kees Cook <keescook@chromium.org>

-Kees

> ---
>  tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c
> index 7ba94efb24fd..18dad07ae16b 100644
> --- a/tools/testing/selftests/seccomp/seccomp_bpf.c
> +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c
> @@ -1310,7 +1310,7 @@ void change_syscall(struct __test_metadata *_metadata,
>         iov.iov_len = sizeof(regs);
>         ret = ptrace(PTRACE_GETREGSET, tracee, NT_PRSTATUS, &iov);
>  #endif
> -       EXPECT_EQ(0, ret);
> +       EXPECT_EQ(0, ret) {}
>
>  #if defined(__x86_64__) || defined(__i386__) || defined(__powerpc__) || \
>      defined(__s390__) || defined(__hppa__)
> --
> 2.11.0
>



-- 
Kees Cook
Pixel Security

[toc] | [prev] | [next] | [standalone]


#1664209 — Re: [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning

FromShuah Khan <shuah@kernel.org>
Date2017-06-12 22:40 +0200
SubjectRe: [PATCH v1 2/2] selftests: kselftest_harness: Fix compile warning
Message-ID<tREhX-71h-11@gated-at.bofh.it>
In reply to#1663194
On 06/11/2017 08:22 PM, Kees Cook wrote:
> On Sun, Jun 11, 2017 at 5:32 AM, Mickaël Salaün <mic@digikod.net> wrote:
>> Do not confuse the compiler with a semicolon preceding a block. Replace
>> the semicolon with an empty block to avoid a warning:
>>
>>   gcc -Wl,-no-as-needed -Wall -lpthread seccomp_bpf.c -o /.../linux/tools/testing/selftests/seccomp/seccomp_bpf
>>   In file included from seccomp_bpf.c:40:0:
>>   seccomp_bpf.c: In function ‘change_syscall’:
>>   ../kselftest_harness.h:558:2: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
>>     for (; _metadata->trigger;  _metadata->trigger = __bail(_assert))
>>     ^
>>   ../kselftest_harness.h:574:14: note: in expansion of macro ‘OPTIONAL_HANDLER’
>>    } while (0); OPTIONAL_HANDLER(_assert)
>>                 ^~~~~~~~~~~~~~~~
>>   ../kselftest_harness.h:440:2: note: in expansion of macro ‘__EXPECT’
>>     __EXPECT(expected, seen, ==, 0)
>>     ^~~~~~~~
>>   seccomp_bpf.c:1313:2: note: in expansion of macro ‘EXPECT_EQ’
>>     EXPECT_EQ(0, ret);
>>     ^~~~~~~~~
>>   seccomp_bpf.c:1317:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
>>     {
>>     ^
>>
>> Signed-off-by: Mickaël Salaün <mic@digikod.net>
>> Cc: Andy Lutomirski <luto@amacapital.net>
>> Cc: Kees Cook <keescook@chromium.org>
>> Cc: Shuah Khan <shuahkh@osg.samsung.com>
>> Cc: Will Drewry <wad@chromium.org>
> 
> Eek, thanks for catching that. :)
> 
> Acked-by: Kees Cook <keescook@chromium.org>
> 
> -Kees

Thanks. Ths fix is now in linux-kselftest next.

-- Shuah

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web