[lkml]   [2017]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[tip:perf/core] perf test attr: Fix ignored test case result
Commit-ID:  22905582f6dd4bbd0c370fe5732c607452010c04
Author: Thomas Richter <>
AuthorDate: Wed, 13 Sep 2017 10:12:09 +0200
Committer: Arnaldo Carvalho de Melo <>
CommitDate: Mon, 2 Oct 2017 14:00:57 -0300

perf test attr: Fix ignored test case result

Command perf test -v 16 (Setup struct perf_event_attr test) always
reports success even if the test case fails. It works correctly if you
also specify -F (for don't fork).

root@s35lp76 perf]# ./perf test -v 16
15: Setup struct perf_event_attr :
--- start ---
running './tests/attr/test-record-no-delay'
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.002 MB /tmp/tmp4E1h7R/
(1 samples) ]
expected task=0, got 1
expected precise_ip=0, got 3
expected wakeup_events=1, got 0
FAILED './tests/attr/test-record-no-delay' - match failure
test child finished with 0
---- end ----
Setup struct perf_event_attr: Ok

The reason for the wrong error reporting is the return value of the
system() library call. It is called in run_dir() file tests/attr.c and
returns the exit status, in above case 0xff00.

This value is given as parameter to the exit() function which can only
handle values 0-0xff.

The child process terminates with exit value of 0 and the parent does
not detect any error.

This patch corrects the error reporting and prints the correct test

Signed-off-by: Thomas-Mich Richter <>
Acked-by: Jiri Olsa <>
Cc: Heiko Carstens <>
Cc: Hendrik Brueckner <>
Cc: Martin Schwidefsky <>
Cc: Thomas-Mich Richter <>
Signed-off-by: Arnaldo Carvalho de Melo <>
tools/perf/tests/attr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
index c9aafed..25ede44 100644
--- a/tools/perf/tests/attr.c
+++ b/tools/perf/tests/attr.c
@@ -166,7 +166,7 @@ static int run_dir(const char *d, const char *perf)
snprintf(cmd, 3*PATH_MAX, PYTHON " %s/ -d %s/attr/ -p %s %.*s",
d, d, perf, vcnt, v);

- return system(cmd);
+ return system(cmd) ? TEST_FAIL : TEST_OK;

int test__attr(struct test *test __maybe_unused, int subtest __maybe_unused)
 \ /
  Last update: 2017-10-03 18:45    [W:0.029 / U:35.236 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site