linux/tools/perf/tests/shell
Leo Yan 1dc481c0b0 perf test: Change to use bash for daemon test
When executing the daemon test on Arm64 and x86 with Debian (Buster)
distro, both skip the test case with the log:

  # ./perf test -v 76
  76: daemon operations                                               :
  --- start ---
  test child forked, pid 11687
  test daemon list
  trap: SIGINT: bad trap
  ./tests/shell/daemon.sh: 173: local: cpu-clock: bad variable name
  test child finished with -2
  ---- end ----
  daemon operations: Skip

So the error happens for the variable expansion when use local variable
in the shell script.  Since Debian Buster uses dash but not bash as
non-interactive shell, when execute the daemon testing, it hits a known
issue for dash which was reported [1].

To resolve this issue, one option is to add double quotes for all local
variables assignment, so need to change the code from:

  local line=`perf daemon --config ${config} -x: | head -2 | tail -1`

  ... to:

  local line="`perf daemon --config ${config} -x: | head -2 | tail -1`"

But the testing script has bunch of local variables, this leads to big
changes for whole script.

On the other hand, the testing script asks to use the "local" feature
which is bash-specific, so this patch explicitly uses "#!/bin/bash" to
ensure running the script with bash.

After:

  # ./perf test -v 76
  76: daemon operations                                               :
  --- start ---
  test child forked, pid 11329
  test daemon list
  test daemon reconfig
  test daemon stop
  test daemon signal
  signal 12 sent to session 'test [11596]'
  signal 12 sent to session 'test [11596]'
  test daemon ping
  test daemon lock
  test child finished with 0
  ---- end ----
  daemon operations: Ok

[1] https://bugs.launchpad.net/ubuntu/+source/dash/+bug/139097

Fixes: 2291bb915b ("perf tests: Add daemon 'list' command test")
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20210320104554.529213-1-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2021-03-26 08:56:57 -03:00
..
lib perf test: Fix test trace+probe_vfs_getname.sh on s390 2020-02-18 10:13:28 -03:00
buildid.sh perf buildid-cache: Add test for 16-byte build-id 2021-02-18 16:40:30 -03:00
daemon.sh perf test: Change to use bash for daemon test 2021-03-26 08:56:57 -03:00
probe_vfs_getname.sh perf tests: Add missing SPDX headers 2019-06-17 15:57:19 -03:00
record+probe_libc_inet_pton.sh Merge remote-tracking branch 'tip/perf/core' into perf/urgent 2019-07-08 13:06:57 -03:00
record+script_probe_vfs_getname.sh perf test: Allow multiple probes in record+script_probe_vfs_getname.sh 2020-08-13 09:34:26 -03:00
record+zstd_comp_decomp.sh perf tests: Fix test 68 zstd compression for s390 2020-07-31 09:27:32 -03:00
stat+shadow_stat.sh perf test: Fix shadow stat test for non-bash shells 2021-01-15 16:31:46 -03:00
test_arm_coresight.sh perf test: Output the sub testing result in cs-etm 2021-02-18 16:30:36 -03:00
trace+probe_vfs_getname.sh perf tools: Add support to read build id from compressed elf 2020-12-17 14:36:17 -03:00