On Fri, Jun 7, 2024 at 7:10 PM John Hubbard <jhubbard@xxxxxxxxxx> wrote: > > Clean up and move some copy-pasted items into mseal_helpers.h. > > 1. The test macros can be made safer and simpler, by observing that they > are invariably called when about to return. This means that the macros > do not need an intrusive label to goto; they can simply return. > > 2. PKEY* items. We cannot, unfortunately use pkey-helpers.h. The best we > can do is to factor out these few items into mseal_helpers.h. > > 3. These tests still need their own definition of u64, so also move that > to the header file. > > Cc: Jeff Xu <jeffxu@xxxxxxxxxxxx> > Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx> Reviewed-by: Jeff Xu <jeffxu@xxxxxxxxxxxx> Tested-by: Jeff Xu <jeffxu@xxxxxxxxxxxx> > --- > tools/testing/selftests/mm/mseal_helpers.h | 40 ++++++++++++++++++ > tools/testing/selftests/mm/mseal_test.c | 48 ---------------------- > tools/testing/selftests/mm/seal_elf.c | 32 --------------- > 3 files changed, 40 insertions(+), 80 deletions(-) > > diff --git a/tools/testing/selftests/mm/mseal_helpers.h b/tools/testing/selftests/mm/mseal_helpers.h > index b922d453a014..8c3bf77dcf19 100644 > --- a/tools/testing/selftests/mm/mseal_helpers.h > +++ b/tools/testing/selftests/mm/mseal_helpers.h > @@ -3,3 +3,43 @@ > #ifndef __NR_mseal > #define __NR_mseal 462 > #endif > + > +#define FAIL_TEST_IF_FALSE(test_passed) \ > + do { \ > + if (!(test_passed)) { \ > + ksft_test_result_fail("%s: line:%d\n", \ > + __func__, __LINE__); \ > + return; \ > + } \ > + } while (0) > + > +#define SKIP_TEST_IF_FALSE(test_passed) \ > + do { \ > + if (!(test_passed)) { \ > + ksft_test_result_skip("%s: line:%d\n", \ > + __func__, __LINE__); \ > + return; \ > + } \ > + } while (0) > + > +#define TEST_END_CHECK() ksft_test_result_pass("%s\n", __func__) > + > +#ifndef PKEY_DISABLE_ACCESS > +#define PKEY_DISABLE_ACCESS 0x1 > +#endif > + > +#ifndef PKEY_DISABLE_WRITE > +#define PKEY_DISABLE_WRITE 0x2 > +#endif > + > +#ifndef PKEY_BITS_PER_PKEY > +#define PKEY_BITS_PER_PKEY 2 > +#endif > + > +#ifndef PKEY_MASK > +#define PKEY_MASK (PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE) > +#endif > + > +#ifndef u64 > +#define u64 unsigned long long > +#endif > diff --git a/tools/testing/selftests/mm/mseal_test.c b/tools/testing/selftests/mm/mseal_test.c > index 20949617a036..a29935d82027 100644 > --- a/tools/testing/selftests/mm/mseal_test.c > +++ b/tools/testing/selftests/mm/mseal_test.c > @@ -19,54 +19,6 @@ > #include <sys/stat.h> > #include "mseal_helpers.h" > > -/* > - * need those definition for manually build using gcc. > - * gcc -I ../../../../usr/include -DDEBUG -O3 -DDEBUG -O3 mseal_test.c -o mseal_test > - */ > -#ifndef PKEY_DISABLE_ACCESS > -# define PKEY_DISABLE_ACCESS 0x1 > -#endif > - > -#ifndef PKEY_DISABLE_WRITE > -# define PKEY_DISABLE_WRITE 0x2 > -#endif > - > -#ifndef PKEY_BITS_PER_PKEY > -#define PKEY_BITS_PER_PKEY 2 > -#endif > - > -#ifndef PKEY_MASK > -#define PKEY_MASK (PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE) > -#endif > - > -#define FAIL_TEST_IF_FALSE(c) do {\ > - if (!(c)) {\ > - ksft_test_result_fail("%s, line:%d\n", __func__, __LINE__);\ > - goto test_end;\ > - } \ > - } \ > - while (0) > - > -#define SKIP_TEST_IF_FALSE(c) do {\ > - if (!(c)) {\ > - ksft_test_result_skip("%s, line:%d\n", __func__, __LINE__);\ > - goto test_end;\ > - } \ > - } \ > - while (0) > - > - > -#define TEST_END_CHECK() {\ > - ksft_test_result_pass("%s\n", __func__);\ > - return;\ > -test_end:\ > - return;\ > -} > - > -#ifndef u64 > -#define u64 unsigned long long > -#endif > - > static unsigned long get_vma_size(void *addr, int *prot) > { > FILE *maps; > diff --git a/tools/testing/selftests/mm/seal_elf.c b/tools/testing/selftests/mm/seal_elf.c > index 4053951a535c..0fd129259647 100644 > --- a/tools/testing/selftests/mm/seal_elf.c > +++ b/tools/testing/selftests/mm/seal_elf.c > @@ -18,38 +18,6 @@ > #include <sys/stat.h> > #include "mseal_helpers.h" > > -/* > - * need those definition for manually build using gcc. > - * gcc -I ../../../../usr/include -DDEBUG -O3 -DDEBUG -O3 seal_elf.c -o seal_elf > - */ > -#define FAIL_TEST_IF_FALSE(c) do {\ > - if (!(c)) {\ > - ksft_test_result_fail("%s, line:%d\n", __func__, __LINE__);\ > - goto test_end;\ > - } \ > - } \ > - while (0) > - > -#define SKIP_TEST_IF_FALSE(c) do {\ > - if (!(c)) {\ > - ksft_test_result_skip("%s, line:%d\n", __func__, __LINE__);\ > - goto test_end;\ > - } \ > - } \ > - while (0) > - > - > -#define TEST_END_CHECK() {\ > - ksft_test_result_pass("%s\n", __func__);\ > - return;\ > -test_end:\ > - return;\ > -} > - > -#ifndef u64 > -#define u64 unsigned long long > -#endif > - > /* > * define sys_xyx to call syscall directly. > */ > -- > 2.45.2 >