perf test: Change all remaining #!/bin/sh to #!/bin/bash

There are 43 instances of posix shell tests and 35 instances of bash. To
give us a single consistent language for testing in, replace
all #!/bin/sh to #!/bin/bash. Common sources that are included in both
different shells will now work as expected. And we no longer have to fix
up bashisms that appear to work when someone's system has sh symlinked
to bash, but don't work on other systems that have both shells
installed.

Although we could have chosen sh, it's not backwards compatible so it
wouldn't be possible to bulk convert without re-writing the existing
bash tests.

Choosing bash also gives us some nicer features including 'local'
variable definitions and regexes in if statements that are already
widely used in the tests.

It's not expected that there are any users with only sh available due to
the large number of bash tests that exist.

Discussed in relation to running shellcheck here:
https://lore.kernel.org/linux-perf-users/e3751a74be34bbf3781c4644f518702a7270220b.1749785642.git.collin.funk1@gmail.com/

Signed-off-by: James Clark <james.clark@linaro.org>
Reviewed-by: Collin Funk <collin.funk1@gmail.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Link: https://lore.kernel.org/r/20250623-james-perf-bash-tests-v1-1-f572f54d4559@linaro.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
James Clark
2025-06-23 10:00:12 +01:00
committed by Namhyung Kim
parent f0d0f978f3
commit 2f5d370dec
43 changed files with 43 additions and 43 deletions

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Test one of the main kernel Makefile targets to generate a perf sources tarball
# suitable for build outside the full kernel sources.

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# AMD IBS software filtering
echo "check availability of IBS swfilt"

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# build id cache operations
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh -e
#!/bin/bash -e
# CoreSight / ASM Pure Loop (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh -e
#!/bin/bash -e
# CoreSight / Memcpy 16k 10 Threads (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh -e
#!/bin/bash -e
# CoreSight / Thread Loop 10 Threads - Check TID (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh -e
#!/bin/bash -e
# CoreSight / Thread Loop 2 Threads - Check TID (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh -e
#!/bin/bash -e
# CoreSight / Unroll Loop Thread 10 (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf diff tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf ftrace tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
perf_has_symbol()

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Arnaldo Carvalho de Melo <acme@kernel.org>, 2017
perf probe -l 2>&1 | grep -q probe:vfs_getname

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
if [ "x$PYTHON" = "x" ]

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
tenths=date\ +%s%1N

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf list tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# kernel lock contention analysis test
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf report --hierarchy
# SPDX-License-Identifier: GPL-2.0
# Arnaldo Carvalho de Melo <acme@redhat.com>

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Add vfs_getname probe to get syscall args filenames (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# probe libc's inet_pton & backtrace it with ping (exclusive)
# Installs a probe on libc's inet_pton function, that will use uprobes,

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Use vfs_getname probe to get syscall args filenames (exclusive)
# Uses the 'perf test shell' library to add probe:vfs_getname to the system

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Zstd perf.data compression/decompression
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf record sample filtering (by BPF) tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf record offcpu profiling tests (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf record sideband tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf script tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf stat csv summary test
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf stat metrics (shadow stat) test
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf all libpfm4 events test
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf stat --bpf-counters test (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf stat --bpf-counters --for-each-cgroup test
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Check Arm64 callgraphs are complete in fp mode
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Check Arm CoreSight trace data recording and synthesized samples (exclusive)
# Uses the 'perf record' to record trace data with Arm CoreSight sinks;

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Check Arm CoreSight disassembly script completes without errors (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Check Arm SPE trace data recording and synthesized samples (exclusive)
# Uses the 'perf record' to record trace data of Arm SPE events;

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Check Arm SPE doesn't hang when there are forks
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# BPF metadata collection test.

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Miscellaneous Intel PT testing (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Check open filename arg using perf trace + vfs_getname (exclusive)
# Uses the 'perf test shell' library to add probe:vfs_getname to the system

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf trace enum augmentation tests
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf trace exit race
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf trace record and replay
# SPDX-License-Identifier: GPL-2.0

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# perf trace summary (exclusive)
# SPDX-License-Identifier: GPL-2.0

View File

@@ -85,7 +85,7 @@ static char *shell_test__description(int dir_fd, const char *name)
if (io.fd < 0)
return NULL;
/* Skip first line - should be #!/bin/sh Shebang */
/* Skip first line - should be #!/bin/bash Shebang */
if (io__get_char(&io) != '#')
goto err_out;
if (io__get_char(&io) != '!')