]> www.infradead.org Git - users/jedix/linux-maple.git/commit
perf test stat_all_pmu.sh: Correctly check 'perf stat' result
authorVeronika Molnarova <vmolnaro@redhat.com>
Fri, 22 Nov 2024 23:12:33 +0000 (00:12 +0100)
committerNamhyung Kim <namhyung@kernel.org>
Fri, 14 Mar 2025 17:41:34 +0000 (10:41 -0700)
commit02ba09c8ab9406f30c5c63b7cfd4b300c3c2c32c
treee243c890e2f80f2f681cb94eee0d1f8ab50d38a3
parentfa9bc517af6b20a0e36cea95456d1485d98d3113
perf test stat_all_pmu.sh: Correctly check 'perf stat' result

Test case "stat_all_pmu.sh" is not correctly checking 'perf stat' output
due to a poor design. Firstly, having the 'set -e' option with a trap
catching the sigexit causes the shell to exit immediately if 'perf stat' ends
with any non-zero value, which is then caught by the trap reporting an
unexpected signal. This causes events that should be parsed by the if-else
statement to be caught by the trap handler and are reported as errors:

    $ perf test -vv "perf all pmu"
    Testing i915/actual-frequency/
    Unexpected signal in main
    Error:
    Access to performance monitoring and observability operations is limited.

Secondly, the if-else branches are not exclusive as the checking if the
event is present in the output log covers also the "<not supported>"
events, which should be accepted, and also the "Bad name events", which
should be rejected.

Remove the "set -e" option from the test case, correctly parse the
"perf stat" output log and check its return value. Add the missing
outputs for the 'perf stat' result and also add logs messages to
report the branch that parsed the event for more info.

Fixes: 7e73ea40295620e7 ("perf test: Ignore security failures in all PMU test")
Signed-off-by: Veronika Molnarova <vmolnaro@redhat.com>
Tested-by: Qiao Zhao <qzhao@redhat.com>
Link: https://lore.kernel.org/r/20241122231233.79509-1-vmolnaro@redhat.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/tests/shell/stat_all_pmu.sh