• Thomas Richter's avatar
    perf test attr: Fix ignored test case result · 22905582
    Thomas Richter authored
    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: default avatarThomas-Mich Richter <tmricht@linux.vnet.ibm.com>
    Acked-by: default avatarJiri 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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    22905582
attr.c 4.84 KB