perf test: Fix test case 83 ('perf stat CSV output linter') on s390
authorThomas Richter <tmricht@linux.ibm.com>
Wed, 20 Jul 2022 12:34:19 +0000 (14:34 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 20 Jul 2022 16:20:33 +0000 (13:20 -0300)
Perf test case 83: perf stat CSV output linter might fail
on s390.
The reason for this is the output of the command

 ./perf stat -x, -A -a --no-merge true

which depends on a .config file setting. When CONFIG_SCHED_TOPOLOGY
is set, the output of above perf command is

   CPU0,1.50,msec,cpu-clock,1502781,100.00,1.052,CPUs utilized

When CONFIG_SCHED_TOPOLOGY is *NOT* set the output of above perf
command is

   0.95,msec,cpu-clock,949800,100.00,1.060,CPUs utilized

Fix the test case to accept both output formats.

Output before:
 # perf test 83
 83: perf stat CSV output linter       : FAILED!
 #

Output after:
 # ./perf test 83
 83: perf stat CSV output linter       : Ok
 #

Fixes: ec906102e5b7d339 ("perf test: Fix "perf stat CSV output linter" test on s390")
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Ian Rogers <irogers@google.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Link: https://lore.kernel.org/r/20220720123419.220953-1-tmricht@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/shell/stat+csv_output.sh

index 38c26f3ef4c15b15ad5fdb3799fe8b77a64c0564..eb5196f58190e71db2c1f83c4872a6f0a7a87dca 100755 (executable)
@@ -8,7 +8,8 @@ set -e
 
 function commachecker()
 {
-       local -i cnt=0 exp=0
+       local -i cnt=0
+       local exp=0
 
        case "$1"
        in "--no-args")         exp=6
@@ -17,7 +18,7 @@ function commachecker()
        ;; "--interval")        exp=7
        ;; "--per-thread")      exp=7
        ;; "--system-wide-no-aggr")     exp=7
-                               [ $(uname -m) = "s390x" ] && exp=6
+                               [ $(uname -m) = "s390x" ] && exp='^[6-7]$'
        ;; "--per-core")        exp=8
        ;; "--per-socket")      exp=8
        ;; "--per-node")        exp=8
@@ -34,7 +35,7 @@ function commachecker()
                x=$(echo $line | tr -d -c ',')
                cnt="${#x}"
                # echo $line $cnt
-               [ "$cnt" -ne "$exp" ] && {
+               [[ ! "$cnt" =~ $exp ]] && {
                        echo "wrong number of fields. expected $exp in $line" 1>&2
                        exit 1;
                }