__is_defined is only usable for undefined macros and defined macros with a value. __is_defined on a defined macro without a value are will yield zero, which is unfortunate as ARCH_HAS_REMAP is defined without a value for the architectures that define it. The header has an arch_can_remap() helper that's already used to guard remapping code in the memtest command, so let's make use of it instead. While at it, fix the skipped test count to correctly reflect the number of tests skipped. This should fix failure of the test on x86, where remapping is not supported as we run under EFI and don't touch page tables. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- test/self/mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/self/mmu.c b/test/self/mmu.c index 48515b30aeb8..5e630e708f02 100644 --- a/test/self/mmu.c +++ b/test/self/mmu.c @@ -79,8 +79,8 @@ static void test_remap(void) memtest(buffer, SZ_8M, "cached buffer"); memtest(mirror, SZ_8M, "cached mirror"); - if (__is_defined(ARCH_HAS_REMAP)) { - skipped_tests += 10; + if (!arch_can_remap()) { + skipped_tests += 18; goto out; } -- 2.39.2