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

From: Namhyung Kim

Date: Mon Oct 12 2026 - 19:09:18 EST


On Mon, Oct 12, 2026 at 02:51:52PM -0700, Ian Rogers wrote:
> 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?

AFAIK it's set when you pass O=$(DIR) option when you build perf and it
points the source tree.

> nit: could we add the exec_path case to the list?

It's checked right after. :)

Thanks,
Namhyung

>
> 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
> >