Re: [PATCH v2 4/4] perf test: Update PE file test for other locations

From: Ian Rogers

Date: Mon Oct 12 2026 - 17:52:41 EST


On Sun, Oct 11, 2026 at 10:30 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> The test__pe_file_parsing() expects the test is in the tools/perf
> directory, but it could be root or a separate build directory. Let's
> update the logic to try other paths like in the shell_tests__dir_fd().
>
> Also add some debug messages to inform users why it's skipped.
>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/tests/pe-file-parsing.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/tests/pe-file-parsing.c b/tools/perf/tests/pe-file-parsing.c
> index 3979f38bf127c218..78dae7e43603b9f8 100644
> --- a/tools/perf/tests/pe-file-parsing.c
> +++ b/tools/perf/tests/pe-file-parsing.c
> @@ -74,10 +74,17 @@ static int test__pe_file_parsing(struct test_suite *test __maybe_unused,
> {
> struct stat st;
> char path_dir[PATH_MAX];
> + static const char * const tests_dirs[] = {
> + "./tools/perf/tests",
> + "./tests",
> + "./source/tests"

I'm not sure where "source/tests" comes from?
nit: could we add the exec_path case to the list?

Thanks,
Ian

> + };
>
> /* First try development tree tests. */
> - if (!lstat("./tests", &st))
> - return run_dir("./tests");
> + for (size_t i = 0; i < ARRAY_SIZE(tests_dirs); ++i) {
> + if (!lstat(tests_dirs[i], &st))
> + return run_dir(tests_dirs[i]);
> + }
>
> /* Then installed path. */
> snprintf(path_dir, PATH_MAX, "%s/tests", get_argv_exec_path());
> @@ -85,6 +92,7 @@ static int test__pe_file_parsing(struct test_suite *test __maybe_unused,
> if (!lstat(path_dir, &st))
> return run_dir(path_dir);
>
> + pr_debug("cannot find the tests directory\n");
> return TEST_SKIP;
> }
>
> @@ -93,6 +101,7 @@ static int test__pe_file_parsing(struct test_suite *test __maybe_unused,
> static int test__pe_file_parsing(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> + pr_debug("libbfd is not available\n");
> return TEST_SKIP;
> }
>
> --
> 2.55.0
>