diff --git a/tests/kernel/mem_protect/demand_paging/CMakeLists.txt b/tests/kernel/mem_protect/demand_paging/CMakeLists.txt
deleted file mode 100644
index 740ecd7..0000000
--- a/tests/kernel/mem_protect/demand_paging/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: Apache-2.0
-
-cmake_minimum_required(VERSION 3.13.1)
-find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
-project(mem_map)
-
-target_include_directories(app PRIVATE
-  ${ZEPHYR_BASE}/kernel/include
-  ${ZEPHYR_BASE}/arch/${ARCH}/include
-  )
-
-FILE(GLOB app_sources src/*.c)
-target_sources(app PRIVATE ${app_sources})
diff --git a/tests/kernel/mem_protect/demand_paging/prj.conf b/tests/kernel/mem_protect/demand_paging/prj.conf
deleted file mode 100644
index 9467c29..0000000
--- a/tests/kernel/mem_protect/demand_paging/prj.conf
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_ZTEST=y
diff --git a/tests/kernel/mem_protect/demand_paging/src/main.c b/tests/kernel/mem_protect/demand_paging/src/main.c
deleted file mode 100644
index 3a692c3..0000000
--- a/tests/kernel/mem_protect/demand_paging/src/main.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2021 Intel Corporation
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-
-#include <ztest.h>
-#include <sys/mem_manage.h>
-#include <mmu.h>
-
-#define SWAP_PAGES	16
-size_t arena_size;
-char *arena;
-
-static bool expect_fault;
-
-void k_sys_fatal_error_handler(unsigned int reason, const z_arch_esf_t *pEsf)
-{
-	printk("Caught system error -- reason %d\n", reason);
-
-	if (expect_fault && reason == 0) {
-		expect_fault = false;
-		ztest_test_pass();
-	} else {
-		printk("Unexpected fault during test");
-		k_fatal_halt(reason);
-	}
-}
-
-void test_map_anon_pages(void)
-{
-	arena_size = k_mem_free_get() + ((SWAP_PAGES - 1) * CONFIG_MMU_PAGE_SIZE);
-	arena = k_mem_map(arena_size, K_MEM_PERM_RW);
-
-	zassert_not_null(arena, "failed to map anonymous memory arena size %zu",
-			 arena_size);
-	printk("Anonymous memory arena %p size %zu\n", arena, arena_size);
-	z_page_frames_dump();
-}
-
-void test_touch_anon_pages(void)
-{
-	static const char *nums = "0123456789";
-
-	printk("checking zeroes\n");
-	/* The mapped area should have started out zeroed. Check this. */
-	for (size_t i = 0; i < arena_size; i++) {
-		zassert_equal(arena[i], '\x00',
-			      "page not zeroed got 0x%hhx at index %d",
-			      arena[i], i);
-	}
-
-	printk("writing data\n");
-	/* Write a pattern of data to the whole arena */
-	for (size_t i = 0; i < arena_size; i++) {
-		arena[i] = nums[i % 10];
-	}
-
-	printk("reading data\n");
-	/* And ensure it can be read back */
-	for (size_t i = 0; i < arena_size; i++) {
-		zassert_equal(arena[i], nums[i % 10],
-			      "arena corrupted at index %d (%p): got 0x%hhx expected 0x%hhx",
-			      i, &arena[i], arena[i], nums[i % 10]);
-	}
-}
-
-/* ztest main entry*/
-void test_main(void)
-{
-	ztest_test_suite(test_demand_paging,
-			ztest_unit_test(test_map_anon_pages),
-			ztest_unit_test(test_touch_anon_pages)
-			);
-	ztest_run_test_suite(test_demand_paging);
-}
diff --git a/tests/kernel/mem_protect/demand_paging/testcase.yaml b/tests/kernel/mem_protect/demand_paging/testcase.yaml
deleted file mode 100644
index 72917e8..0000000
--- a/tests/kernel/mem_protect/demand_paging/testcase.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-tests:
-  kernel.memory_protection.demand_paging:
-    tags: kernel mmu demand_paging ignore_faults
-    filter: CONFIG_DEMAND_PAGING
