Skip to content

Commit 9986ac2

Browse files
committed
[CTest] Started to use CTest. Changed ci-extra scripts.
1 parent 7422684 commit 9986ac2

12 files changed

Lines changed: 186 additions & 98 deletions

File tree

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ include(cmake/CompilerOptions.cmake)
2424
include(cmake/CPM.cmake)
2525
include(cmake/dependencies.cmake)
2626

27+
if(PROTEA_BUILD_TESTS)
28+
enable_testing()
29+
endif()
30+
2731
add_subdirectory(lib)
2832
add_subdirectory(sim_lib)
2933
add_subdirectory(sim_gen)

ci-extra/build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ PRESET_NAME=$1
22

33
# Configure CMake
44
cmake -S . \
5-
--preset "${PRESET_NAME}" -DPROTEA_BUILD_TESTS=true -DQEMU_PATH=qemu-riscv32 -G Ninja
5+
--preset "${PRESET_NAME}" -G Ninja
66

77
# Build
8-
cmake --build --preset ${PRESET_NAME} --target all --parallel 12
8+
cmake --build --preset ${PRESET_NAME} --target install --parallel 12

ci-extra/test.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
PRESET_NAME=$1
22

3+
# Configure CMake
4+
cmake -S . \
5+
--preset "${PRESET_NAME}" -DPROTEA_BUILD_TESTS=true -DQEMU_PATH=qemu-riscv32 -G Ninja
6+
7+
# Generate tests
8+
cmake --build --preset ${PRESET_NAME} --target install --parallel 12
9+
310
# Run tests
4-
cmake --build --preset ${PRESET_NAME} --target simtests
11+
ctest -j16
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
if(NOT EXISTS "@OUTPUT_TESTS_DIR@")
2+
message(STATUS "Test directory does not exist yet: @OUTPUT_TESTS_DIR@")
3+
return()
4+
endif()
5+
6+
file(GLOB discovered_tests "@OUTPUT_TESTS_DIR@/*")
7+
8+
if(NOT discovered_tests)
9+
message(STATUS "No generated tests found in @OUTPUT_TESTS_DIR@")
10+
endif()
11+
12+
foreach(test_file IN LISTS discovered_tests)
13+
if(IS_DIRECTORY "${test_file}")
14+
continue()
15+
endif()
16+
17+
get_filename_component(test_name "${test_file}" NAME)
18+
19+
add_test(
20+
"@PROJECT_NAME@.${test_name}"
21+
"@GENERATED_SIM_BIN_PATH@" --propagate-exit "${test_file}"
22+
)
23+
endforeach()

test/SimTests/C/CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ if(PROTEA_BUILD_TESTS)
1313
endif()
1414

1515
set(TESTS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/CImpl)
16+
set(OUTPUT_TESTS_DIR ${CMAKE_CURRENT_BINARY_DIR}/CImpl/bin)
1617
set(GENERATED_SIM_BIN_PATH ${protea_simgen_BINARY_DIR}/sim)
1718

1819
ExternalProject_Add(
@@ -26,8 +27,12 @@ if(PROTEA_BUILD_TESTS)
2627

2728
set(RunTests ${tests-common_SOURCE_DIR}/RunTests.py)
2829

29-
add_custom_target(${PROJECT_NAME}
30-
COMMAND ${Python3_EXECUTABLE} ${RunTests} ${GENERATED_SIM_BIN_PATH} ${TESTS_BINARY_DIR}/bin/
31-
COMMENT "Running ${PROJECT_NAME}")
32-
add_dependencies(${PROJECT_NAME} sim c-simtestsimpl)
30+
set(DISCOVER_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/discover_generated_tests.cmake")
31+
configure_file(
32+
"${CMAKE_SOURCE_DIR}/cmake/discover_generated_tests.cmake.in"
33+
"${DISCOVER_SCRIPT}"
34+
@ONLY
35+
)
36+
37+
set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "${DISCOVER_SCRIPT}")
3338
endif()

test/SimTests/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
project(simtests)
22

3-
add_subdirectory(Common)
4-
53
add_subdirectory(C)
64
add_subdirectory(SnippetBased)
75

8-
add_custom_target(${PROJECT_NAME})
9-
add_dependencies(${PROJECT_NAME} c-simtests snippetbased-simtests)
6+
if(PROTEA_BUILD_TESTS)
7+
add_custom_target(${PROJECT_NAME})
8+
add_dependencies(${PROJECT_NAME} c-simtestsimpl snippetbased-simtestsimpl)
9+
endif()

test/SimTests/Common/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

test/SimTests/Common/RunTests.py

Lines changed: 0 additions & 41 deletions
This file was deleted.

test/SimTests/SnippetBased/CMakeLists.txt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,13 @@ if(PROTEA_BUILD_TESTS)
2929

3030
add_dependencies(snippetbased-simtestsimpl protea_irgen sim)
3131

32-
add_custom_target(${PROJECT_NAME}
33-
COMMAND ${Python3_EXECUTABLE} ${RunTests} ${GENERATED_SIM_BIN_PATH} ${OUTPUT_TESTS_DIR}
34-
COMMENT "Running ${PROJECT_NAME}")
35-
add_dependencies(${PROJECT_NAME} sim snippetbased-simtestsimpl)
32+
set(DISCOVER_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/discover_generated_tests.cmake")
33+
configure_file(
34+
"${CMAKE_SOURCE_DIR}/cmake/discover_generated_tests.cmake.in"
35+
"${DISCOVER_SCRIPT}"
36+
@ONLY
37+
)
38+
39+
set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "${DISCOVER_SCRIPT}")
3640
endif()
3741

test/SimTests/SnippetBased/RunTests.sh

Whitespace-only changes.

0 commit comments

Comments
 (0)