perf test stat_bpf_counters_cgrp: Fix shellcheck issue about logical operators
authorKajol Jain <kjain@linux.ibm.com>
Sun, 9 Jul 2023 18:27:39 +0000 (23:57 +0530)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 3 Aug 2023 20:01:25 +0000 (17:01 -0300)
Running shellcheck on lock_contention.sh generates below warning:

In stat_bpf_counters_cgrp.sh line 28:
if [ -d /sys/fs/cgroup/system.slice -a -d /sys/fs/cgroup/user.slice ]; then
                                            ^-- SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In stat_bpf_counters_cgrp.sh line 34:
local self_cgrp=$(grep perf_event /proc/self/cgroup | cut -d: -f3)
        ^-------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
              ^-------^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                        ^-- SC2046 (warning): Quote this to prevent word splitting.

In stat_bpf_counters_cgrp.sh line 51:
local output
        ^----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.

In stat_bpf_counters_cgrp.sh line 65:
local output
        ^----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.

Fixed above warnings by:
- Changing the expression [p -a q] to [p] && [q].
- Fixing shellcheck warnings for local usage, by prefixing
  function name to the variable.

Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lore.kernel.org/r/20230709182800.53002-6-atrajeev@linux.vnet.ibm.com
Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/shell/stat_bpf_counters_cgrp.sh

index d724855..a74440a 100755 (executable)
@@ -25,22 +25,22 @@ check_bpf_counter()
 find_cgroups()
 {
        # try usual systemd slices first
-       if [ -d /sys/fs/cgroup/system.slice -a -d /sys/fs/cgroup/user.slice ]; then
+       if [ -d /sys/fs/cgroup/system.slice ] && [ -d /sys/fs/cgroup/user.slice ]; then
                test_cgroups="system.slice,user.slice"
                return
        fi
 
        # try root and self cgroups
-       local self_cgrp=$(grep perf_event /proc/self/cgroup | cut -d: -f3)
-       if [ -z ${self_cgrp} ]; then
+       find_cgroups_self_cgrp=$(grep perf_event /proc/self/cgroup | cut -d: -f3)
+       if [ -z ${find_cgroups_self_cgrp} ]; then
                # cgroup v2 doesn't specify perf_event
-               self_cgrp=$(grep ^0: /proc/self/cgroup | cut -d: -f3)
+               find_cgroups_self_cgrp=$(grep ^0: /proc/self/cgroup | cut -d: -f3)
        fi
 
-       if [ -z ${self_cgrp} ]; then
+       if [ -z ${find_cgroups_self_cgrp} ]; then
                test_cgroups="/"
        else
-               test_cgroups="/,${self_cgrp}"
+               test_cgroups="/,${find_cgroups_self_cgrp}"
        fi
 }
 
@@ -48,13 +48,11 @@ find_cgroups()
 # Just check if it runs without failure and has non-zero results.
 check_system_wide_counted()
 {
-       local output
-
-       output=$(perf stat -a --bpf-counters --for-each-cgroup ${test_cgroups} -e cpu-clock -x, sleep 1  2>&1)
-       if echo ${output} | grep -q -F "<not "; then
+       check_system_wide_counted_output=$(perf stat -a --bpf-counters --for-each-cgroup ${test_cgroups} -e cpu-clock -x, sleep 1  2>&1)
+       if echo ${check_system_wide_counted_output} | grep -q -F "<not "; then
                echo "Some system-wide events are not counted"
                if [ "${verbose}" = "1" ]; then
-                       echo ${output}
+                       echo ${check_system_wide_counted_output}
                fi
                exit 1
        fi
@@ -62,13 +60,11 @@ check_system_wide_counted()
 
 check_cpu_list_counted()
 {
-       local output
-
-       output=$(perf stat -C 1 --bpf-counters --for-each-cgroup ${test_cgroups} -e cpu-clock -x, taskset -c 1 sleep 1  2>&1)
-       if echo ${output} | grep -q -F "<not "; then
+       check_cpu_list_counted_output=$(perf stat -C 1 --bpf-counters --for-each-cgroup ${test_cgroups} -e cpu-clock -x, taskset -c 1 sleep 1  2>&1)
+       if echo ${check_cpu_list_counted_output} | grep -q -F "<not "; then
                echo "Some CPU events are not counted"
                if [ "${verbose}" = "1" ]; then
-                       echo ${output}
+                       echo ${check_cpu_list_counted_output}
                fi
                exit 1
        fi