Re: [PATCH 1/1] selftests: Fix lib.mk run_tests target shell script

From: Mathieu Desnoyers
Date: Wed Nov 01 2017 - 18:24:38 EST


----- On Nov 1, 2017, at 6:22 PM, Mathieu Desnoyers mathieu.desnoyers@xxxxxxxxxxxx wrote:

> ----- On Nov 1, 2017, at 5:33 PM, Shuah Khan shuahkh@xxxxxxxxxxxxxxx wrote:
>
>> On 10/28/2017 07:46 AM, Mathieu Desnoyers wrote:
>>> Within run_tests target, the whole script needs to be executed within
>>> the same shell and not as separate subshells, so the initial test_num
>>> variable set to 0 is still present when executing "test_num=`echo
>>> $$test_num+1 | bc`;".
>>>
>>> Demonstration of the issue (make run_tests):
>>>
>>> TAP version 13
>>> (standard_in) 1: syntax error
>>> selftests: basic_test
>>> ========================================
>>> ok 1.. selftests: basic_test [PASS]
>>> (standard_in) 1: syntax error
>>> selftests: basic_percpu_ops_test
>>> ========================================
>>> ok 1.. selftests: basic_percpu_ops_test [PASS]
>>> (standard_in) 1: syntax error
>>> selftests: param_test
>>> ========================================
>>> ok 1.. selftests: param_test [PASS]
>>
>> Hi Mathieu,
>>
>> Odd. I don't see the error. I am curious if this specific to
>> env. Can you reproduce this with one of the existing tests,
>> kcmp or breakpoints
>
> Yes, it reproduces:
>
> cd tools/testing/selftests/kcmp
> make run_tests
> gcc -I../../../../usr/include/ kcmp_test.c -o
> /home/efficios/git/linux-rseq/tools/testing/selftests/kcmp/kcmp_test
> TAP version 13
> (standard_in) 1: syntax error
> selftests: kcmp_test
> ========================================
> ok 1.. selftests: kcmp_test [PASS]
>
> cd tools/testing/selftests/breakpoints
> make run_tests
> gcc step_after_suspend_test.c -o
> /home/efficios/git/linux-rseq/tools/testing/selftests/breakpoints/step_after_suspend_test
> gcc breakpoint_test.c -o
> /home/efficios/git/linux-rseq/tools/testing/selftests/breakpoints/breakpoint_test
> TAP version 13
> (standard_in) 1: syntax error
> selftests: step_after_suspend_test
> ========================================
> not ok 1.. selftests: step_after_suspend_test [FAIL]
> (standard_in) 1: syntax error
> selftests: breakpoint_test
> ========================================
> ok 1.. selftests: breakpoint_test [PASS]
>

The version of "make" on that machine is:

make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

(if it helps reproducing)

Thanks,

Mathieu


> Thanks,
>
> Mathieu
>
>
>>
>>>
>>> With fix applied:
>>>
>>> TAP version 13
>>> selftests: basic_test
>>> ========================================
>>> ok 1..1 selftests: basic_test [PASS]
>>> selftests: basic_percpu_ops_test
>>> ========================================
>>> ok 1..2 selftests: basic_percpu_ops_test [PASS]
>>> selftests: param_test
>>> ========================================
>>> ok 1..3 selftests: param_test [PASS]
>>>
>>> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
>>> Fixes: 1f87c7c15d7 ("selftests: lib.mk: change RUN_TESTS to print messages in
>>> TAP13 format")
>>> CC: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
>>> CC: linux-kselftest@xxxxxxxxxxxxxxx
>>> ---
>>
>> thanks,
>> -- Shuah
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com