Re: [PATCH v3 03/22] perf test: Make each test/suite its own struct.

From: Arnaldo Carvalho de Melo
Date: Sat Nov 13 2021 - 08:29:39 EST


Em Sat, Nov 13, 2021 at 10:06:32AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Nov 03, 2021 at 11:41:49PM -0700, Ian Rogers escreveu:
> > 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 | 18 +-
> > tools/perf/arch/arm64/include/arch-tests.h | 2 +-
> > tools/perf/arch/arm64/tests/arch-tests.c | 11 +-
> > tools/perf/arch/powerpc/include/arch-tests.h | 2 +-
> > tools/perf/arch/powerpc/tests/arch-tests.c | 11 +-
> > 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/dwarf-unwind.c | 7 +-
> > tools/perf/tests/tests.h | 8 +-
> > 11 files changed, 215 insertions(+), 168 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..5287729026ab 100644
> > --- a/tools/perf/arch/arm/tests/arch-tests.c
> > +++ b/tools/perf/arch/arm/tests/arch-tests.c
> > @@ -3,18 +3,12 @@
> > #include "tests/tests.h"
> > #include "arch-tests.h"
> >
> > -struct test arch_tests[] = {
> > +DEFINE_SUITE("Vectors page", vectors_page);
> > +
> > +struct test *arch_tests[] = {
> > #ifdef HAVE_DWARF_UNWIND_SUPPORT
> > - {
> > - .desc = "DWARF unwind",
> > - .func = test__dwarf_unwind,
> > - },
> > + &dwarf_unwind,
> > #endif
> > - {
> > - .desc = "Vectors page",
> > - .func = test__vectors_page,
> > - },
> > - {
> > - .func = NULL,
> > - },
> > + &vectors_pages,
>
> Its "vector_page", not plural, I'm fixing it up from this point onwards.

Also had to add this, now fixing up the fallout in the following patches
to see if this builds on arm 32-bit.

- Arnaldo

diff --git a/tools/perf/arch/arm/tests/arch-tests.c b/tools/perf/arch/arm/tests/arch-tests.c
index ee1ee83ee6a17f38..8276740f7ff86db4 100644
--- a/tools/perf/arch/arm/tests/arch-tests.c
+++ b/tools/perf/arch/arm/tests/arch-tests.c
@@ -3,8 +3,6 @@
#include "tests/tests.h"
#include "arch-tests.h"

-DEFINE_SUITE("Vectors page", vectors_page);
-
struct test *arch_tests[] = {
#ifdef HAVE_DWARF_UNWIND_SUPPORT
&dwarf_unwind,
diff --git a/tools/perf/arch/arm/tests/vectors-page.c b/tools/perf/arch/arm/tests/vectors-page.c
index 7ffdd79971c89220..dac7b32afb655608 100644
--- a/tools/perf/arch/arm/tests/vectors-page.c
+++ b/tools/perf/arch/arm/tests/vectors-page.c
@@ -9,8 +9,7 @@

#define VECTORS__MAP_NAME "[vectors]"

-int test__vectors_page(struct test *test __maybe_unused,
- int subtest __maybe_unused)
+static int test__vectors_page(struct test *test __maybe_unused, int subtest __maybe_unused)
{
void *start, *end;

@@ -22,3 +21,5 @@ int test__vectors_page(struct test *test __maybe_unused,

return TEST_OK;
}
+
+DEFINE_SUITE("Vectors page", vectors_page);