Re: [PATCH] perf test: Fix exit code for record+probe_libc_inet_pton.sh

From: Jiri Olsa
Date: Mon Mar 12 2018 - 09:05:54 EST


On Mon, Mar 12, 2018 at 06:14:50PM +0530, Sandipan Das wrote:
> This fixes record+probe_libc_inet_pton.sh from always exiting
> with code 0 and making the test pass even if the perf script
> output does not match the expected pattern.
>
> The issue can be observed if this test is run with the verbose
> flags as shown below:
>
> 60: probe libc's inet_pton & backtrace it with ping :
> ...
> ping 19602 [006] 16988.413767: probe_libc:inet_pton: (7fff9a2c42e8)
> 1842e8 __GI___inet_pton (/usr/lib64/libc-2.26.so)
> 130db4 getaddrinfo (/usr/lib64/libc-2.26.so)
>
> FAIL: expected backtrace entry 3 ".*\(.*/bin/ping.*\)$" got ""
> test child finished with 0
> ...
> probe libc's inet_pton & backtrace it with ping: Ok
>
> Fixes: e07d585e2454 ("perf tests: Switch trace+probe_libc_inet_pton to use record")
> Signed-off-by: Sandipan Das <sandipan@xxxxxxxxxxxxxxxxxx>
> ---
> tools/perf/tests/shell/record+probe_libc_inet_pton.sh | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
> index 52c3ee701a89..1ecc1f0ff84a 100755
> --- a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
> +++ b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
> @@ -47,7 +47,10 @@ trace_libc_inet_pton_backtrace() {
> [ -z "${expected[$idx]}" ] && break
> done
>
> - rm -f $file
> + # If any statements are executed from this point onwards,
> + # the exit code of the last among these will be reflected
> + # in err below. If the exit code is 0, the test will pass
> + # even if the perf script output does not match.

right :-\ but we still need to delete that $file.. I assume it will
get delete by the 'rm -f ${file}' in the script main body?

thanks,
jirka