Skip to content

Commit

Permalink
Merge workaround for CPATH containing working directory causing bui…
Browse files Browse the repository at this point in the history
…ld failures

Rename test binaries that collide with C++ standard library header names

Related PR: #1531
  • Loading branch information
upsj authored Jan 17, 2024
2 parents 4dabd1d + 90772a6 commit 4558fb2
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 11 deletions.
16 changes: 10 additions & 6 deletions cmake/create_test.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(gko_test_resource_args "RESOURCE_LOCAL_CORES;RESOURCE_TYPE")
set(gko_test_single_args "MPI_SIZE;${gko_test_resource_args}")
set(gko_test_single_args "MPI_SIZE;EXECUTABLE_NAME;${gko_test_resource_args}")
set(gko_test_multi_args "DISABLE_EXECUTORS;ADDITIONAL_LIBRARIES;ADDITIONAL_INCLUDES")
set(gko_test_option_args "NO_RESOURCES")

Expand Down Expand Up @@ -80,22 +80,26 @@ endfunction()
function(ginkgo_add_test test_name test_target_name)
cmake_parse_arguments(PARSE_ARGV 2 add_test "" "${gko_test_single_args}" "${gko_test_multi_args}")
file(RELATIVE_PATH REL_BINARY_DIR ${PROJECT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties(${test_target_name} PROPERTIES OUTPUT_NAME ${test_name})
set(test_binary_name ${test_name})
if (add_test_EXECUTABLE_NAME)
set(test_binary_name ${add_test_EXECUTABLE_NAME})
endif()
set_target_properties(${test_target_name} PROPERTIES OUTPUT_NAME ${test_binary_name})
if (add_test_MPI_SIZE)
add_test(NAME ${REL_BINARY_DIR}/${test_name}
add_test(NAME ${REL_BINARY_DIR}/${test_binary_name}
COMMAND
${MPIEXEC_EXECUTABLE}
${MPIEXEC_NUMPROC_FLAG}
${add_test_MPI_SIZE}
"$<TARGET_FILE:${test_target_name}>"
WORKING_DIRECTORY "$<TARGET_FILE_DIR:ginkgo>")
else()
add_test(NAME ${REL_BINARY_DIR}/${test_name}
add_test(NAME ${REL_BINARY_DIR}/${test_binary_name}
COMMAND ${test_target_name}
WORKING_DIRECTORY "$<TARGET_FILE_DIR:ginkgo>")
endif()

ginkgo_add_resource_requirement(${REL_BINARY_DIR}/${test_name} ${ARGN})
ginkgo_add_resource_requirement(${REL_BINARY_DIR}/${test_binary_name} ${ARGN})

set(test_preload)
if (GINKGO_TEST_NONDEFAULT_STREAM AND GINKGO_BUILD_CUDA)
Expand All @@ -105,7 +109,7 @@ function(ginkgo_add_test test_name test_target_name)
set(test_preload $<TARGET_FILE:identify_stream_usage_hip>:${test_preload})
endif()
if(test_preload)
set_tests_properties(${REL_BINARY_DIR}/${test_name} PROPERTIES ENVIRONMENT LD_PRELOAD=${test_preload})
set_tests_properties(${REL_BINARY_DIR}/${test_binary_name} PROPERTIES ENVIRONMENT LD_PRELOAD=${test_preload})
endif()
endfunction()

Expand Down
6 changes: 3 additions & 3 deletions core/test/base/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ginkgo_create_test(abstract_factory)
ginkgo_create_test(allocator)
ginkgo_create_test(array)
ginkgo_create_test(array EXECUTABLE_NAME array_test) # array collides with C++ stdlib header
ginkgo_create_test(batch_dim)
ginkgo_create_test(batch_lin_op)
ginkgo_create_test(batch_multi_vector)
Expand All @@ -10,7 +10,7 @@ ginkgo_create_test(composition)
ginkgo_create_test(deferred_factory)
ginkgo_create_test(dense_cache)
ginkgo_create_test(dim)
ginkgo_create_test(exception)
ginkgo_create_test(exception EXECUTABLE_NAME exception_test) # exception collides with C++ stdlib header
ginkgo_create_test(exception_helpers)
ginkgo_create_test(extended_float)
ginkgo_create_test(executor)
Expand All @@ -27,4 +27,4 @@ ginkgo_create_test(range_accessors)
ginkgo_create_test(sanitizers ADDITIONAL_LIBRARIES Threads::Threads)
ginkgo_create_test(types)
ginkgo_create_test(utils)
ginkgo_create_test(version)
ginkgo_create_test(version EXECUTABLE_NAME version_test) # version collides with C++ stdlib header
2 changes: 1 addition & 1 deletion cuda/test/base/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ginkgo_create_test(array RESOURCE_TYPE cudagpu)
ginkgo_create_test(array EXECUTABLE_NAME array_test RESOURCE_TYPE cudagpu) # array collides with C++ stdlib header
ginkgo_create_cuda_test(cuda_executor)
ginkgo_create_test(index_set RESOURCE_TYPE cudagpu)
if(GINKGO_HAVE_HWLOC)
Expand Down
2 changes: 1 addition & 1 deletion reference/test/base/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ginkgo_create_test(array)
ginkgo_create_test(array EXECUTABLE_NAME array_test) # array collides with C++ stdlib header
ginkgo_create_test(batch_multi_vector_kernels)
ginkgo_create_test(combination)
ginkgo_create_test(composition)
Expand Down

0 comments on commit 4558fb2

Please sign in to comment.