lkml.org 
[lkml]   [2018]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] selftests: do not macro-expand failed assertion expressions
From
Date
On 12/10/18 10:30 AM, Kees Cook wrote:
> On Sun, Dec 9, 2018 at 3:00 PM Dmitry V. Levin <ldv@altlinux.org> wrote:
>>
>> I've stumbled over the current macro-expand behaviour of the test
>> harness:
>>
>> $ gcc -Wall -xc - <<'__EOF__'
>> TEST(macro) {
>> int status = 0;
>> ASSERT_TRUE(WIFSIGNALED(status));
>> }
>> TEST_HARNESS_MAIN
>> __EOF__
>> $ ./a.out
>> [==========] Running 1 tests from 1 test cases.
>> [ RUN ] global.macro
>> <stdin>:4:global.macro:Expected 0 (0) != (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) (0)
>> global.macro: Test terminated by assertion
>> [ FAIL ] global.macro
>> [==========] 0 / 1 tests passed.
>> [ FAILED ]
>>
>> With this change the output of the same test looks much more
>> comprehensible:
>>
>> [==========] Running 1 tests from 1 test cases.
>> [ RUN ] global.macro
>> <stdin>:4:global.macro:Expected 0 (0) != WIFSIGNALED(status) (0)
>> global.macro: Test terminated by assertion
>> [ FAIL ] global.macro
>> [==========] 0 / 1 tests passed.
>> [ FAILED ]
>>
>> The issue is very similar to the bug fixed in glibc assert(3)
>> three years ago:
>> https://sourceware.org/bugzilla/show_bug.cgi?id=18604
>>
>> Cc: Shuah Khan <shuah@kernel.org>
>> Cc: Kees Cook <keescook@chromium.org>
>> Cc: Andy Lutomirski <luto@amacapital.net>
>> Cc: Will Drewry <wad@chromium.org>
>> Cc: linux-kselftest@vger.kernel.org
>> Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
>
> Yeah, good idea.
>
> Acked-by: Kees Cook <keescook@chromium.org>
>

Thanks. Applied to linux-kselftest next.

-- Shuah

\
 
 \ /
  Last update: 2018-12-10 18:58    [W:0.077 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site