| From foo@baz Wed Dec 6 17:39:55 CET 2017 |
| From: Thomas Richter <tmricht@linux.vnet.ibm.com> |
| Date: Wed, 13 Sep 2017 10:12:09 +0200 |
| Subject: perf test attr: Fix ignored test case result |
| |
| From: Thomas Richter <tmricht@linux.vnet.ibm.com> |
| |
| |
| [ Upstream commit 22905582f6dd4bbd0c370fe5732c607452010c04 ] |
| |
| 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/perf.data |
| (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 |
| result. |
| |
| Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com> |
| Acked-by: Jiri Olsa <jolsa@kernel.org> |
| Cc: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> |
| Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> |
| Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com> |
| LPU-Reference: 20170913081209.39570-2-tmricht@linux.vnet.ibm.com |
| Link: http://lkml.kernel.org/n/tip-rdube6rfcjsr1nzue72c7lqn@git.kernel.org |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| tools/perf/tests/attr.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/tools/perf/tests/attr.c |
| +++ b/tools/perf/tests/attr.c |
| @@ -150,7 +150,7 @@ static int run_dir(const char *d, const |
| snprintf(cmd, 3*PATH_MAX, PYTHON " %s/attr.py -d %s/attr/ -p %s %.*s", |
| d, d, perf, vcnt, v); |
| |
| - return system(cmd); |
| + return system(cmd) ? TEST_FAIL : TEST_OK; |
| } |
| |
| int test__attr(int subtest __maybe_unused) |