Re: [RFC PATCH v2 03/10] selftests/verification: fix verificationtest-ktap for out-of-tree execution
From: Gabriele Monaco
Date: Wed May 13 2026 - 04:34:02 EST
On Tue, 2026-05-12 at 02:24 +0800, wen.yang@xxxxxxxxx wrote:
> From: Wen Yang <wen.yang@xxxxxxxxx>
>
> verificationtest-ktap used a CWD-relative path (../ftrace/ftracetest)
> and a relative argument (../verification) for --rv. This works when
> the shell changes into the verification directory first, but breaks
> when the script is invoked directly - e.g. by the kselftest runner or
> vng - because the working directory is the kernel source root, not the
> script's own directory.
>
> Fix this by computing the script's directory from $0 with cd/dirname/pwd
> and using absolute paths for both the ftracetest invocation and the --rv
> argument. Also export the directory to PATH so that check_requires in
> the ftracetest framework can locate helper binaries.
>
> Signed-off-by: Wen Yang <wen.yang@xxxxxxxxx>
Just out of curiosity, how do you run the selftests?
Are you calling the script directly just to run /some/ of them?
The officially supported way is through make [1]:
make -C tools/testing/selftests TARGETS=verification run_tests
(though I find it faster to omit TARGETS and just do make -C
tools/testing/selftests/verification).
Calling with make should set up all paths as needed.
> ---
> tools/testing/selftests/verification/verificationtest-ktap | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/verification/verificationtest-ktap
> b/tools/testing/selftests/verification/verificationtest-ktap
> index 18f7fe324e2f..456b8578a307 100755
> --- a/tools/testing/selftests/verification/verificationtest-ktap
> +++ b/tools/testing/selftests/verification/verificationtest-ktap
> @@ -5,4 +5,6 @@
> #
> # Copyright (C) Arm Ltd., 2023
>
> -../ftrace/ftracetest -K -v --rv ../verification
> +dir=$(cd "$(dirname "$0")" && pwd)
> +export PATH="$dir:$PATH"
Then if you really really need to call it directly, do you need to override
PATH?
And isn't it clearer to do:
dir=$(realpath "$(dirname "$0")")
Thanks,
Gabriele
[1] - https://www.kernel.org/doc/html/latest/dev-tools/kselftest.html
> +"$dir/../ftrace/ftracetest" -K -v --rv "$dir"