Re: [RFC PATCH 3/5] perf test: Make each test/suite its own struct.

From: Jiri Olsa
Date: Sun Sep 26 2021 - 17:12:25 EST


On Wed, Sep 22, 2021 at 01:19:56AM -0700, Ian Rogers wrote:
> By switching to an array of pointers to tests (later to be suites)
> the definition of the tests can be moved to the file containing the
> tests.
>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/arch/arm/include/arch-tests.h | 2 +-
> tools/perf/arch/arm/tests/arch-tests.c | 21 +-
> tools/perf/arch/arm64/include/arch-tests.h | 2 +-
> tools/perf/arch/arm64/tests/arch-tests.c | 15 +-
> tools/perf/arch/powerpc/include/arch-tests.h | 2 +-
> tools/perf/arch/powerpc/tests/arch-tests.c | 15 +-
> tools/perf/arch/x86/include/arch-tests.h | 2 +-
> tools/perf/arch/x86/tests/arch-tests.c | 47 ++--
> tools/perf/tests/builtin-test.c | 273 ++++++++++++-------
> tools/perf/tests/tests.h | 6 +
> 10 files changed, 220 insertions(+), 165 deletions(-)
>
> diff --git a/tools/perf/arch/arm/include/arch-tests.h b/tools/perf/arch/arm/include/arch-tests.h
> index c62538052404..37039e80f18b 100644
> --- a/tools/perf/arch/arm/include/arch-tests.h
> +++ b/tools/perf/arch/arm/include/arch-tests.h
> @@ -2,6 +2,6 @@
> #ifndef ARCH_TESTS_H
> #define ARCH_TESTS_H
>
> -extern struct test arch_tests[];
> +extern struct test *arch_tests[];
>
> #endif
> diff --git a/tools/perf/arch/arm/tests/arch-tests.c b/tools/perf/arch/arm/tests/arch-tests.c
> index 6848101a855f..4374b0293177 100644
> --- a/tools/perf/arch/arm/tests/arch-tests.c
> +++ b/tools/perf/arch/arm/tests/arch-tests.c
> @@ -3,18 +3,15 @@
> #include "tests/tests.h"
> #include "arch-tests.h"
>
> -struct test arch_tests[] = {
> #ifdef HAVE_DWARF_UNWIND_SUPPORT
> - {
> - .desc = "DWARF unwind",
> - .func = test__dwarf_unwind,
> - },
> +DEFINE_SUITE("DWARF unwind", dwarf_unwind);

why not having this and other in here DEFINE_SUITE in
tests/dwarf-unwind.c ? it seems to get compiled in only
for supported arch

jirka

> #endif
> - {
> - .desc = "Vectors page",
> - .func = test__vectors_page,
> - },
> - {
> - .func = NULL,
> - },
> +DEFINE_SUITE("Vectors page", vectors_page);
> +
> +struct test *arch_tests[] = {
> +#ifdef HAVE_DWARF_UNWIND_SUPPORT
> + &dwarf_unwind,
> +#endif
> + &vectors_pages,
> + NULL,
> };

SNIP