[PATCH 1/2] perf test: Remove redundant shellcheck source paths

From: James Clark

Date: Mon Sep 21 2026 - 12:01:51 EST


The minimum required shellcheck version treats paths with leading
variables as starting from the script's current directory, so shellcheck
is able to source all of these files without needing the extra
directives:

v0.7.2 - 2021-04-19

Changed
* SC1090: A leading $x/ or $(x)/ is now treated as ./ when locating files

Remove them to avoid future copy pasting and confusion that they are
required. Because the paths weren't actually followed, they didn't have
to be accurate and accepted any string to silence the warning.

Signed-off-by: James Clark <james.clark@xxxxxxxxxx>
---
tools/perf/tests/shell/annotate.sh | 1 -
tools/perf/tests/shell/base_probe/test_adding_kernel.sh | 1 -
tools/perf/tests/shell/diff.sh | 1 -
tools/perf/tests/shell/inject_aslr.sh | 1 -
tools/perf/tests/shell/jitdump-python.sh | 1 -
tools/perf/tests/shell/list.sh | 1 -
tools/perf/tests/shell/pipe_test.sh | 1 -
tools/perf/tests/shell/probe_vfs_getname.sh | 2 --
tools/perf/tests/shell/python-use.sh | 1 -
tools/perf/tests/shell/record+probe_libc_inet_pton.sh | 2 --
tools/perf/tests/shell/record+script_probe_vfs_getname.sh | 2 --
tools/perf/tests/shell/record.sh | 2 --
tools/perf/tests/shell/record_weak_term.sh | 1 -
tools/perf/tests/shell/script_dlfilter.sh | 1 -
tools/perf/tests/shell/stat+csv_output.sh | 1 -
tools/perf/tests/shell/stat+json_output.sh | 1 -
tools/perf/tests/shell/stat+std_output.sh | 1 -
tools/perf/tests/shell/stat_metrics_values.sh | 1 -
tools/perf/tests/shell/test_arm_callgraph_fp.sh | 1 -
tools/perf/tests/shell/test_brstack.sh | 1 -
tools/perf/tests/shell/test_data_symbol.sh | 1 -
tools/perf/tests/shell/test_intel_pt.sh | 1 -
tools/perf/tests/shell/test_perf_data_converter_json.sh | 1 -
tools/perf/tests/shell/test_test_junit_output.sh | 1 -
tools/perf/tests/shell/test_uprobe_from_different_cu.sh | 1 -
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 1 -
tools/perf/tests/shell/trace_btf_enum.sh | 1 -
tools/perf/tests/shell/trace_btf_general.sh | 1 -
tools/perf/tests/shell/trace_exit_race.sh | 1 -
tools/perf/tests/shell/trace_record_replay.sh | 2 --
tools/perf/tests/shell/trace_summary.sh | 1 -
31 files changed, 36 deletions(-)

diff --git a/tools/perf/tests/shell/annotate.sh b/tools/perf/tests/shell/annotate.sh
index 689de58e9238..26411edf5cb4 100755
--- a/tools/perf/tests/shell/annotate.sh
+++ b/tools/perf/tests/shell/annotate.sh
@@ -6,7 +6,6 @@ set -e

shelldir=$(dirname "$0")

-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

testsym="noploop"
diff --git a/tools/perf/tests/shell/base_probe/test_adding_kernel.sh b/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
index 555a825d55f2..eadac837f108 100755
--- a/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
+++ b/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
@@ -19,7 +19,6 @@ TEST_RESULT=0
# include working environment
. "$DIR_PATH/../common/init.sh"

-# shellcheck source=lib/probe_vfs_getname.sh
. "$DIR_PATH/../lib/probe_vfs_getname.sh"

TEST_PROBE=${TEST_PROBE:-"inode_permission"}
diff --git a/tools/perf/tests/shell/diff.sh b/tools/perf/tests/shell/diff.sh
index fe05fdebcab5..88f37b8ef893 100755
--- a/tools/perf/tests/shell/diff.sh
+++ b/tools/perf/tests/shell/diff.sh
@@ -11,7 +11,6 @@ perfdata3=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
testprog="perf test -w thloop"

shelldir=$(dirname "$0")
-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

testsym="test_loop"
diff --git a/tools/perf/tests/shell/inject_aslr.sh b/tools/perf/tests/shell/inject_aslr.sh
index d83c2591db8f..6ee4c8b5c850 100755
--- a/tools/perf/tests/shell/inject_aslr.sh
+++ b/tools/perf/tests/shell/inject_aslr.sh
@@ -6,7 +6,6 @@ set -e
set -o pipefail

shelldir=$(dirname "$0")
-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

sym="noploop"
diff --git a/tools/perf/tests/shell/jitdump-python.sh b/tools/perf/tests/shell/jitdump-python.sh
index 05aaa3bd900b..ad345a35c16d 100755
--- a/tools/perf/tests/shell/jitdump-python.sh
+++ b/tools/perf/tests/shell/jitdump-python.sh
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: GPL-2.0

SHELLDIR=$(dirname $0)
-# shellcheck source=lib/setup_python.sh
. "${SHELLDIR}"/lib/setup_python.sh

OUTPUT=$(${PYTHON} -Xperf_jit -c 'import os, sys; print(os.getpid(), sys.is_stack_trampoline_active())' 2> /dev/null)
diff --git a/tools/perf/tests/shell/list.sh b/tools/perf/tests/shell/list.sh
index 0c04b3159cef..14a03e0290ed 100755
--- a/tools/perf/tests/shell/list.sh
+++ b/tools/perf/tests/shell/list.sh
@@ -5,7 +5,6 @@
set -e

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

list_output=$(mktemp /tmp/__perf_test.list_output.json.XXXXX)
diff --git a/tools/perf/tests/shell/pipe_test.sh b/tools/perf/tests/shell/pipe_test.sh
index ce68d850c983..f4eb129afda2 100755
--- a/tools/perf/tests/shell/pipe_test.sh
+++ b/tools/perf/tests/shell/pipe_test.sh
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: GPL-2.0

shelldir=$(dirname "$0")
-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

sym="noploop"
diff --git a/tools/perf/tests/shell/probe_vfs_getname.sh b/tools/perf/tests/shell/probe_vfs_getname.sh
index 5fe5682c28ce..36dc319eea0e 100755
--- a/tools/perf/tests/shell/probe_vfs_getname.sh
+++ b/tools/perf/tests/shell/probe_vfs_getname.sh
@@ -4,13 +4,11 @@
# SPDX-License-Identifier: GPL-2.0
# Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>, 2017

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

skip_if_no_perf_probe || exit 2
[ "$(id -u)" = 0 ] || exit 2

-# shellcheck source=lib/probe_vfs_getname.sh
. "$(dirname $0)"/lib/probe_vfs_getname.sh

add_probe_vfs_getname
diff --git a/tools/perf/tests/shell/python-use.sh b/tools/perf/tests/shell/python-use.sh
index fd2ee5390060..2d6017d5dd9d 100755
--- a/tools/perf/tests/shell/python-use.sh
+++ b/tools/perf/tests/shell/python-use.sh
@@ -5,7 +5,6 @@
set -e

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

MODULE_DIR=$(dirname "$(which perf)")/python
diff --git a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
index eca629ee83f0..4c9a308a450d 100755
--- a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
+++ b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
@@ -10,9 +10,7 @@
# SPDX-License-Identifier: GPL-2.0
# Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>, 2017

-# shellcheck source=lib/probe.sh
. "$(dirname "$0")/lib/probe.sh"
-# shellcheck source=lib/probe_vfs_getname.sh
. "$(dirname "$0")/lib/probe_vfs_getname.sh"

libc=$(grep -w libc /proc/self/maps | head -1 | sed -r 's/.*[[:space:]](\/.*)/\1/g')
diff --git a/tools/perf/tests/shell/record+script_probe_vfs_getname.sh b/tools/perf/tests/shell/record+script_probe_vfs_getname.sh
index 002f7037f182..ce20663601dc 100755
--- a/tools/perf/tests/shell/record+script_probe_vfs_getname.sh
+++ b/tools/perf/tests/shell/record+script_probe_vfs_getname.sh
@@ -9,13 +9,11 @@
# SPDX-License-Identifier: GPL-2.0
# Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>, 2017

-# shellcheck source=lib/probe.sh
. "$(dirname "$0")/lib/probe.sh"

skip_if_no_perf_probe || exit 2
[ "$(id -u)" = 0 ] || exit 2

-# shellcheck source=lib/probe_vfs_getname.sh
. "$(dirname "$0")/lib/probe_vfs_getname.sh"

record_open_file() {
diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
index 625240809fce..7c6657aa1c52 100755
--- a/tools/perf/tests/shell/record.sh
+++ b/tools/perf/tests/shell/record.sh
@@ -8,10 +8,8 @@ shelldir=$(dirname "$0")
. "${shelldir}"/lib/perf_record.sh


-# shellcheck source=lib/waiting.sh
. "${shelldir}"/lib/waiting.sh

-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

testsym="test_loop"
diff --git a/tools/perf/tests/shell/record_weak_term.sh b/tools/perf/tests/shell/record_weak_term.sh
index 811b00ffb47a..da418669ab52 100755
--- a/tools/perf/tests/shell/record_weak_term.sh
+++ b/tools/perf/tests/shell/record_weak_term.sh
@@ -5,7 +5,6 @@
set -e

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

# Find the first event with a specified period, such as
diff --git a/tools/perf/tests/shell/script_dlfilter.sh b/tools/perf/tests/shell/script_dlfilter.sh
index aaed92bb7828..88222280f609 100755
--- a/tools/perf/tests/shell/script_dlfilter.sh
+++ b/tools/perf/tests/shell/script_dlfilter.sh
@@ -5,7 +5,6 @@
set -e

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

# skip if there's no compiler
diff --git a/tools/perf/tests/shell/stat+csv_output.sh b/tools/perf/tests/shell/stat+csv_output.sh
index cd6fff597091..a5b34c42e8d7 100755
--- a/tools/perf/tests/shell/stat+csv_output.sh
+++ b/tools/perf/tests/shell/stat+csv_output.sh
@@ -6,7 +6,6 @@

set -e

-# shellcheck source=lib/stat_output.sh
. "$(dirname $0)"/lib/stat_output.sh

csv_sep=@
diff --git a/tools/perf/tests/shell/stat+json_output.sh b/tools/perf/tests/shell/stat+json_output.sh
index 85d1ad7186c6..4969ad70b67b 100755
--- a/tools/perf/tests/shell/stat+json_output.sh
+++ b/tools/perf/tests/shell/stat+json_output.sh
@@ -9,7 +9,6 @@ set -e
skip_test=0

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh
pythonchecker=$(dirname $0)/lib/perf_json_output_lint.py

diff --git a/tools/perf/tests/shell/stat+std_output.sh b/tools/perf/tests/shell/stat+std_output.sh
index 9c4b92ecf448..64c2b81f02de 100755
--- a/tools/perf/tests/shell/stat+std_output.sh
+++ b/tools/perf/tests/shell/stat+std_output.sh
@@ -6,7 +6,6 @@

set -e

-# shellcheck source=lib/stat_output.sh
. "$(dirname $0)"/lib/stat_output.sh

stat_output=$(mktemp /tmp/__perf_test.stat_output.std.XXXXX)
diff --git a/tools/perf/tests/shell/stat_metrics_values.sh b/tools/perf/tests/shell/stat_metrics_values.sh
index 86c5c7f70933..0982f6b9737a 100755
--- a/tools/perf/tests/shell/stat_metrics_values.sh
+++ b/tools/perf/tests/shell/stat_metrics_values.sh
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: GPL-2.0

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

grep -q GenuineIntel /proc/cpuinfo || { echo Skipping non-Intel; exit 2; }
diff --git a/tools/perf/tests/shell/test_arm_callgraph_fp.sh b/tools/perf/tests/shell/test_arm_callgraph_fp.sh
index 9172dd68a81d..8adfe81fa8dc 100755
--- a/tools/perf/tests/shell/test_arm_callgraph_fp.sh
+++ b/tools/perf/tests/shell/test_arm_callgraph_fp.sh
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: GPL-2.0

shelldir=$(dirname "$0")
-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

if [ "$(uname -m)" != "aarch64" ]; then
diff --git a/tools/perf/tests/shell/test_brstack.sh b/tools/perf/tests/shell/test_brstack.sh
index 71550e0b37ba..fd05ebb5ae74 100755
--- a/tools/perf/tests/shell/test_brstack.sh
+++ b/tools/perf/tests/shell/test_brstack.sh
@@ -5,7 +5,6 @@
# German Gomez <german.gomez@xxxxxxx>, 2022

shelldir=$(dirname "$0")
-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

# skip the test if the hardware doesn't support branch stack sampling
diff --git a/tools/perf/tests/shell/test_data_symbol.sh b/tools/perf/tests/shell/test_data_symbol.sh
index d61b5659a46d..edc528c11dda 100755
--- a/tools/perf/tests/shell/test_data_symbol.sh
+++ b/tools/perf/tests/shell/test_data_symbol.sh
@@ -6,7 +6,6 @@

shelldir=$(dirname "$0")

-# shellcheck source=lib/perf_has_symbol.sh
. "${shelldir}"/lib/perf_has_symbol.sh

skip_if_no_mem_event() {
diff --git a/tools/perf/tests/shell/test_intel_pt.sh b/tools/perf/tests/shell/test_intel_pt.sh
index 26243ff760ec..a2e87ef09593 100755
--- a/tools/perf/tests/shell/test_intel_pt.sh
+++ b/tools/perf/tests/shell/test_intel_pt.sh
@@ -8,7 +8,6 @@ set -e
perf list pmu | grep -q 'intel_pt//' || exit 2

shelldir=$(dirname "$0")
-# shellcheck source=lib/waiting.sh
. "${shelldir}"/lib/waiting.sh

skip_cnt=0
diff --git a/tools/perf/tests/shell/test_perf_data_converter_json.sh b/tools/perf/tests/shell/test_perf_data_converter_json.sh
index 35d81e39a26c..c2c4ade7609a 100755
--- a/tools/perf/tests/shell/test_perf_data_converter_json.sh
+++ b/tools/perf/tests/shell/test_perf_data_converter_json.sh
@@ -7,7 +7,6 @@ set -e
err=0

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
diff --git a/tools/perf/tests/shell/test_test_junit_output.sh b/tools/perf/tests/shell/test_test_junit_output.sh
index 5104ac1e1e6d..38a29e646906 100755
--- a/tools/perf/tests/shell/test_test_junit_output.sh
+++ b/tools/perf/tests/shell/test_test_junit_output.sh
@@ -7,7 +7,6 @@ set -e
err=0

shelldir=$(dirname "$0")
-# shellcheck source=lib/setup_python.sh
. "${shelldir}"/lib/setup_python.sh

result=$(mktemp /tmp/__perf_test.output.xml.XXXXX)
diff --git a/tools/perf/tests/shell/test_uprobe_from_different_cu.sh b/tools/perf/tests/shell/test_uprobe_from_different_cu.sh
index 7adf9755d6de..83505093257d 100755
--- a/tools/perf/tests/shell/test_uprobe_from_different_cu.sh
+++ b/tools/perf/tests/shell/test_uprobe_from_different_cu.sh
@@ -4,7 +4,6 @@

set -e

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

skip_if_no_perf_probe || exit 2
diff --git a/tools/perf/tests/shell/trace+probe_vfs_getname.sh b/tools/perf/tests/shell/trace+probe_vfs_getname.sh
index 7a0b1145d0cd..28d3aa8a9e33 100755
--- a/tools/perf/tests/shell/trace+probe_vfs_getname.sh
+++ b/tools/perf/tests/shell/trace+probe_vfs_getname.sh
@@ -10,7 +10,6 @@
# SPDX-License-Identifier: GPL-2.0
# Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>, 2017

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

skip_if_no_perf_probe || exit 2
diff --git a/tools/perf/tests/shell/trace_btf_enum.sh b/tools/perf/tests/shell/trace_btf_enum.sh
index 03e9f680a4a6..b1a659e0245f 100755
--- a/tools/perf/tests/shell/trace_btf_enum.sh
+++ b/tools/perf/tests/shell/trace_btf_enum.sh
@@ -9,7 +9,6 @@ non_syscall="timer:hrtimer_start"

TESTPROG="perf test -w landlock"

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh
skip_if_no_perf_trace || exit 2
[ "$(id -u)" = 0 ] || exit 2
diff --git a/tools/perf/tests/shell/trace_btf_general.sh b/tools/perf/tests/shell/trace_btf_general.sh
index 7a94a5743924..06f4a704daf8 100755
--- a/tools/perf/tests/shell/trace_btf_general.sh
+++ b/tools/perf/tests/shell/trace_btf_general.sh
@@ -4,7 +4,6 @@

err=0

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

file1=$(mktemp /tmp/file1_XXXX)
diff --git a/tools/perf/tests/shell/trace_exit_race.sh b/tools/perf/tests/shell/trace_exit_race.sh
index db300cde94fb..024ff8f1d388 100755
--- a/tools/perf/tests/shell/trace_exit_race.sh
+++ b/tools/perf/tests/shell/trace_exit_race.sh
@@ -6,7 +6,6 @@
# lost. Specifically, trace the exiting syscall of "true" 10 times and ensure
# the output contains 10 correct lines.

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

skip_if_no_perf_trace || exit 2
diff --git a/tools/perf/tests/shell/trace_record_replay.sh b/tools/perf/tests/shell/trace_record_replay.sh
index 38fcafcdfb91..76a7bba6ef23 100755
--- a/tools/perf/tests/shell/trace_record_replay.sh
+++ b/tools/perf/tests/shell/trace_record_replay.sh
@@ -4,9 +4,7 @@

# Check that perf trace works with record and replay

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh
-# shellcheck source=lib/perf_record.sh
. "$(dirname $0)"/lib/perf_record.sh

skip_if_no_perf_trace || exit 2
diff --git a/tools/perf/tests/shell/trace_summary.sh b/tools/perf/tests/shell/trace_summary.sh
index b80dea77cec6..d5da1d7d8d88 100755
--- a/tools/perf/tests/shell/trace_summary.sh
+++ b/tools/perf/tests/shell/trace_summary.sh
@@ -4,7 +4,6 @@

# Check that perf trace works with various summary mode

-# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

skip_if_no_perf_trace || exit 2

--
2.43.0