aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/BuildHostTests.cmake35
-rw-r--r--kernel/CMakeLists.txt64
-rw-r--r--libs/acpi/CMakeLists.txt27
-rw-r--r--libs/kstd/CMakeLists.txt30
4 files changed, 45 insertions, 111 deletions
diff --git a/cmake/Modules/BuildHostTests.cmake b/cmake/Modules/BuildHostTests.cmake
new file mode 100644
index 00000000..aa3ae66d
--- /dev/null
+++ b/cmake/Modules/BuildHostTests.cmake
@@ -0,0 +1,35 @@
+include_guard(GLOBAL)
+
+function("teachos_add_tests" NAME)
+ add_executable("${NAME}_tests")
+ add_executable("${NAME}::tests" ALIAS "${NAME}_tests")
+
+ file(GLOB_RECURSE
+ TEST_SOURCES
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ CONFIGURE_DEPENDS
+ "*.tests.cpp"
+ )
+
+ target_sources("${NAME}_tests" PRIVATE
+ ${TEST_SOURCES}
+ )
+
+ target_link_libraries("${NAME}_tests" PRIVATE
+ "Catch2::Catch2WithMain"
+ "${NAME}::lib"
+ )
+
+ set_target_properties("${NAME}_tests" PROPERTIES
+ EXCLUDE_FROM_ALL NO
+ )
+
+
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bht_results")
+
+ catch_discover_tests("${NAME}::tests"
+ REPORTER junit
+ OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/bht_results"
+ OUTPUT_SUFFIX ".xml"
+ )
+endfunction() \ No newline at end of file
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index d50944e4..34d71de1 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -140,79 +140,32 @@ endif()
if(BUILD_TESTING)
find_package("Catch2")
include("Catch")
+ include("BuildHostTests")
- enable_coverage("kernel_lib")
-
- add_executable("kernel_tests")
- add_executable("kernel::tests" ALIAS "kernel_tests")
+ teachos_add_tests("kernel")
target_sources("kernel_tests" PRIVATE
- # Platform-defined KAPI
"kernel/test_support/kapi/cpu.cpp"
"kernel/test_support/kapi/cio.cpp"
"kernel/test_support/kapi/interrupts.cpp"
"kernel/test_support/kapi/memory.cpp"
- # Device Subsystem Support
"kernel/test_support/devices/block_device.cpp"
"kernel/test_support/devices/character_device.cpp"
- # Filesystem Subsystem Support
"kernel/test_support/filesystem/inode.cpp"
"kernel/test_support/filesystem/filesystem.cpp"
"kernel/test_support/filesystem/ext2.cpp"
"kernel/test_support/filesystem/storage_boot_module_fixture.cpp"
"kernel/test_support/filesystem/storage_boot_module_vfs_fixture.cpp"
- # I/O Support
"kernel/test_support/log_buffer.cpp"
"kernel/test_support/output_device.cpp"
- # Memory Support
"kernel/test_support/page_mapper.cpp"
"kernel/test_support/simulated_memory.cpp"
- # Support System Listener
"kernel/test_support/state_reset_listener.cpp"
-
- # KAPI Shim Tests
- "kapi/cpu.tests.cpp"
- "kapi/system.tests.cpp"
- "kapi/filesystem.tests.cpp"
-
- # KSTD Shim Tests
- "kstd/print.tests.cpp"
-
- # Memory Subsystem Tests
- "kernel/memory/bitmap_allocator.tests.cpp"
- "kernel/memory/block_list_allocator.tests.cpp"
-
- # Filesystem Subsystem Tests
- "kernel/filesystem/devfs/filesystem.tests.cpp"
- "kernel/filesystem/devfs/inode.tests.cpp"
- "kernel/filesystem/ext2/filesystem.tests.cpp"
- "kernel/filesystem/ext2/inode.tests.cpp"
- "kernel/filesystem/path.tests.cpp"
- "kernel/filesystem/rootfs/filesystem.tests.cpp"
- "kernel/filesystem/rootfs/inode.tests.cpp"
- "kernel/filesystem/dentry.tests.cpp"
- "kernel/filesystem/device_inode.tests.cpp"
- "kernel/filesystem/mount_table.tests.cpp"
- "kernel/filesystem/mount.tests.cpp"
- "kernel/filesystem/open_file_descriptor.tests.cpp"
- "kernel/filesystem/open_file_table.tests.cpp"
- "kernel/filesystem/type_registry.tests.cpp"
- "kernel/filesystem/vfs.tests.cpp"
-
- # Storage Subsystem Tests
- "kernel/devices/block_device_utils.tests.cpp"
- "kernel/devices/block_device.tests.cpp"
- "kernel/devices/storage/ram_disk/device.tests.cpp"
- )
-
- target_link_libraries("kernel_tests" PRIVATE
- "kernel::lib"
- "Catch2::Catch2WithMain"
)
target_compile_definitions("kernel_tests" PRIVATE
@@ -224,13 +177,8 @@ if(BUILD_TESTING)
CXX_CLANG_TIDY ""
)
- enable_coverage("kernel_tests")
-
- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bht_results")
-
- catch_discover_tests("kernel::tests"
- REPORTER junit
- OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/bht_results"
- OUTPUT_SUFFIX ".xml"
- )
+ if(COMMAND "enable_coverage")
+ enable_coverage("kernel_lib")
+ enable_coverage("kernel_tests")
+ endif()
endif()
diff --git a/libs/acpi/CMakeLists.txt b/libs/acpi/CMakeLists.txt
index 76941dcf..caffa1c9 100644
--- a/libs/acpi/CMakeLists.txt
+++ b/libs/acpi/CMakeLists.txt
@@ -56,6 +56,7 @@ set_target_properties("acpi" PROPERTIES
if(BUILD_TESTING)
find_package("Catch2")
include("Catch")
+ include("BuildHostTests")
find_program(IASL_EXE NAMES "iasl" REQUIRED)
@@ -88,37 +89,13 @@ if(BUILD_TESTING)
enable_coverage("acpi")
endif()
- add_executable("acpi_tests")
- add_executable("acpi::tests" ALIAS "acpi_tests")
+ teachos_add_tests("acpi")
target_sources("acpi_tests" PRIVATE
- "acpi/common/table_header.tests.cpp"
- "acpi/data/madt.tests.cpp"
- "acpi/data/rsdt.tests.cpp"
- "acpi/data/xsdt.tests.cpp"
- "acpi/pointers.tests.cpp"
-
"acpi/test_data/tables.S"
)
target_include_directories("acpi_tests" PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}/test_data"
)
-
- target_link_libraries("acpi_tests" PRIVATE
- "Catch2::Catch2WithMain"
- "acpi::lib"
- )
-
- set_target_properties("acpi_tests" PROPERTIES
- EXCLUDE_FROM_ALL NO
- )
-
- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bht_results")
-
- catch_discover_tests("acpi::tests"
- REPORTER junit
- OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/bht_results"
- OUTPUT_SUFFIX ".xml"
- )
endif()
diff --git a/libs/kstd/CMakeLists.txt b/libs/kstd/CMakeLists.txt
index 2c63f87d..9c68feed 100644
--- a/libs/kstd/CMakeLists.txt
+++ b/libs/kstd/CMakeLists.txt
@@ -69,38 +69,12 @@ endif()
if(BUILD_TESTING)
find_package("Catch2")
include("Catch")
+ include("BuildHostTests")
- add_executable("kstd_tests")
- add_executable("kstd::tests" ALIAS "kstd_tests")
-
- target_sources("kstd_tests" PRIVATE
- "kstd/flat_map.tests.cpp"
- "kstd/format.tests.cpp"
- "kstd/vector.tests.cpp"
- "kstd/bits/observer_ptr.tests.cpp"
- "kstd/test_support/os_panic.tests.cpp"
- "kstd/string.tests.cpp"
- )
-
- target_link_libraries("kstd_tests" PRIVATE
- "Catch2::Catch2WithMain"
- "kstd::lib"
- )
-
- set_target_properties("kstd_tests" PROPERTIES
- EXCLUDE_FROM_ALL NO
- )
+ teachos_add_tests("kstd")
if(COMMAND "enable_coverage")
enable_coverage("kstd")
enable_coverage("kstd_tests")
endif()
-
- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bht_results")
-
- catch_discover_tests("kstd::tests"
- REPORTER junit
- OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/bht_results"
- OUTPUT_SUFFIX ".xml"
- )
endif() \ No newline at end of file