Skip to content

Commit 3abeba8

Browse files
minusbatdavidchisnall
authored andcommitted
Add tests for the static library if built
When we are bulding the static library, then a second version of each of the non-legacy tests is generated, linked against it. These are run together with the shared library versions.
1 parent 1a228d8 commit 3abeba8

1 file changed

Lines changed: 22 additions & 11 deletions

File tree

Test/CMakeLists.txt

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ set_target_properties(test_runtime PROPERTIES
117117

118118
# Function for adding a test. This takes the name of the test and the list of
119119
# source files as arguments.
120-
function(addtest_flags TEST_NAME FLAGS TEST_SOURCE)
120+
function(addtest_flags TEST_NAME FLAGS TEST_SOURCE LINK_TARGET)
121121
if (${TEST_NAME} MATCHES ".*_arc")
122122
# Only compile the main file with ARC
123123
set_source_files_properties(${TEST_SOURCE}
@@ -139,21 +139,28 @@ function(addtest_flags TEST_NAME FLAGS TEST_SOURCE)
139139
if(WIN32)
140140
set_property(TEST ${TEST_NAME} PROPERTY ENVIRONMENT_MODIFICATION "PATH=path_list_append:${CMAKE_BINARY_DIR}")
141141
endif()
142-
target_link_libraries(${TEST_NAME} objc)
142+
target_link_libraries(${TEST_NAME} ${LINK_TARGET})
143143
endfunction(addtest_flags)
144144

145-
function(addtest_variants TEST TEST_SOURCE LEGACY)
146-
addtest_flags(${TEST} "-O0 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}")
147-
target_sources(${TEST} PRIVATE $<TARGET_OBJECTS:test_runtime>)
148-
addtest_flags("${TEST}_optimised" "-O3 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}")
149-
target_sources("${TEST}_optimised" PRIVATE $<TARGET_OBJECTS:test_runtime>)
145+
function(addtest_variants_for_target TEST TEST_SOURCE LEGACY LINK_TARGET SUFFIX)
146+
addtest_flags("${TEST}${SUFFIX}" "-O0 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}" ${LINK_TARGET})
147+
target_sources("${TEST}${SUFFIX}" PRIVATE $<TARGET_OBJECTS:test_runtime>)
148+
addtest_flags("${TEST}_optimised${SUFFIX}" "-O3 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}" ${LINK_TARGET})
149+
target_sources("${TEST}_optimised${SUFFIX}" PRIVATE $<TARGET_OBJECTS:test_runtime>)
150150

151151
# -fobjc-arc is not supported on platforms using the legacy runtime
152152
if (${LEGACY} AND ${OLDABI_COMPAT} AND NOT ${TEST} MATCHES ".*_arc")
153-
addtest_flags("${TEST}_legacy" "-O0 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE}")
154-
target_sources("${TEST}_legacy" PRIVATE $<TARGET_OBJECTS:test_runtime_legacy>)
155-
addtest_flags("${TEST}_legacy_optimised" "-O3 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE}")
156-
target_sources("${TEST}_legacy_optimised" PRIVATE $<TARGET_OBJECTS:test_runtime_legacy>)
153+
addtest_flags("${TEST}_legacy${SUFFIX}" "-O0 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE}" ${LINK_TARGET})
154+
target_sources("${TEST}_legacy${SUFFIX}" PRIVATE $<TARGET_OBJECTS:test_runtime_legacy>)
155+
addtest_flags("${TEST}_legacy_optimised${SUFFIX}" "-O3 -fobjc-runtime=gnustep-1.7 -UNDEBUG" "${TEST_SOURCE}" ${LINK_TARGET})
156+
target_sources("${TEST}_legacy_optimised${SUFFIX}" PRIVATE $<TARGET_OBJECTS:test_runtime_legacy>)
157+
endif()
158+
endfunction(addtest_variants_for_target)
159+
160+
function(addtest_variants TEST TEST_SOURCE LEGACY)
161+
addtest_variants_for_target(${TEST} "${TEST_SOURCE}" ${LEGACY} objc "")
162+
if (BUILD_STATIC_LIBOBJC)
163+
addtest_variants_for_target(${TEST} "${TEST_SOURCE}" false objc-static "_static")
157164
endif()
158165
endfunction(addtest_variants)
159166

@@ -190,3 +197,7 @@ if (${LEGACY})
190197
set_tests_properties(ManyManySelectors_legacy PROPERTIES PROCESSORS 3)
191198
set_tests_properties(ManyManySelectors_legacy_optimised PROPERTIES PROCESSORS 3)
192199
endif ()
200+
if (BUILD_STATIC_LIBOBJC)
201+
set_tests_properties(ManyManySelectors_static PROPERTIES PROCESSORS 3)
202+
set_tests_properties(ManyManySelectors_optimised_static PROPERTIES PROCESSORS 3)
203+
endif ()

0 commit comments

Comments
 (0)