Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ jobs:
- name: Build
run: |
cmake --build build -j8
cmake --install build

- name: Report compiler cache
if: always()
Expand Down
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ option(ENABLE_NATIVE_OPTIMIZATION
"Enable compilation optimization for the native machine's CPU type" OFF)

option(COMMIT_INFO "Print commit information in log" ON)
option(ENABLE_GOOGLEBENCH "Enable GOOGLE-benchmark usage" OFF)
option(ENABLE_JSON "Enable JSON output" OFF)
option(ENABLE_CNPY "Enable cnpy usage" OFF)

Expand Down
21 changes: 19 additions & 2 deletions cmake/Testing.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,24 @@ macro(set_if_higher VARIABLE VALUE)
endif()
endmacro()

# Prepare runtime inputs in the test working directory without installation.
# configure_file tracks content changes; CONFIGURE_DEPENDS tracks directory entries.
function(abacus_copy_test_files)
foreach(path IN LISTS ARGN)
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path}")
file(GLOB_RECURSE test_files CONFIGURE_DEPENDS LIST_DIRECTORIES false
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/${path}/*")
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${path}")
else()
set(test_files "${path}")
endif()
foreach(test_file IN LISTS test_files)
configure_file("${test_file}" "${test_file}" COPYONLY)
endforeach()
endforeach()
endfunction()

# Add performance test in abacus
# Benchmarks are test targets; do not make them implicitly enable the full
# unit-test tree for ordinary builds.
Expand Down Expand Up @@ -66,11 +84,10 @@ endif()
target_include_directories(${UT_TARGET} PUBLIC ${CMAKE_BINARY_DIR}/source/source_io)
endif()

install(TARGETS ${UT_TARGET} DESTINATION ${CMAKE_BINARY_DIR}/tests)
add_test(
NAME ${UT_TARGET}
COMMAND ${UT_TARGET}
WORKING_DIRECTORY $<TARGET_FILE_DIR:${UT_TARGET}>)
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
endfunction(AddTest)

if(BUILD_TESTING)
Expand Down
17 changes: 9 additions & 8 deletions source/source_base/module_parallel/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,24 +77,25 @@ AddTest(
)
target_compile_definitions(MODULE_BASE_para_setup_mpi PRIVATE __MPI)

file(COPY para_world_mpi_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY para_collection_mpi_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY para_mpi_func_mpi_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY para_setup_mpi_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
abacus_copy_test_files(
para_world_mpi_test.sh
para_collection_mpi_test.sh
para_mpi_func_mpi_test.sh
para_setup_mpi_test.sh)
find_program(BASH bash)
add_test(NAME MODULE_BASE_para_world_mpi_test
COMMAND ${BASH} para_world_mpi_test.sh
COMMAND ${BASH} para_world_mpi_test.sh "$<TARGET_FILE:MODULE_BASE_para_world_mpi>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_test(NAME MODULE_BASE_para_collection_mpi_test
COMMAND ${BASH} para_collection_mpi_test.sh
COMMAND ${BASH} para_collection_mpi_test.sh "$<TARGET_FILE:MODULE_BASE_para_collection_mpi>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_test(NAME MODULE_BASE_para_mpi_func_mpi_test
COMMAND ${BASH} para_mpi_func_mpi_test.sh
COMMAND ${BASH} para_mpi_func_mpi_test.sh "$<TARGET_FILE:MODULE_BASE_para_mpi_func_mpi>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_test(NAME MODULE_BASE_para_setup_mpi_test
COMMAND ${BASH} para_setup_mpi_test.sh
COMMAND ${BASH} para_setup_mpi_test.sh "$<TARGET_FILE:MODULE_BASE_para_setup_mpi>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 4;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_para_collection_mpi
mpirun -np $i "${1:-./MODULE_BASE_para_collection_mpi}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 4;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_para_mpi_func_mpi
mpirun -np $i "${1:-./MODULE_BASE_para_mpi_func_mpi}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 4;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_para_setup_mpi
mpirun -np $i "${1:-./MODULE_BASE_para_setup_mpi}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 4;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_para_world_mpi
mpirun -np $i "${1:-./MODULE_BASE_para_world_mpi}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
5 changes: 3 additions & 2 deletions source/source_base/test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
abacus_disable_feature_definitions(__MPI)
install(DIRECTORY data DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
abacus_copy_test_files(data)

AddTest(
TARGET MODULE_BASE_additional_coverage
LIBS parameter base device container
Expand Down Expand Up @@ -247,7 +248,7 @@ AddTest(
SOURCES test_lebedev_laikov.cpp ../ylm.cpp ../math_lebedev_laikov.cpp
)

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/support DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
abacus_copy_test_files(support)

AddTest(
TARGET MODULE_BASE_binstream
Expand Down
28 changes: 14 additions & 14 deletions source/source_base/test_parallel/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@ AddTest(
SOURCES parallel_reduce_test.cpp ../global_variable.cpp ../parallel_global.cpp ../parallel_comm.cpp ../parallel_common.cpp ../parallel_reduce.cpp ../tool_quit.cpp ../global_file.cpp ../global_function.cpp ../memory_recorder.cpp ../timer.cpp
)

install(FILES parallel_common_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
install(FILES parallel_global_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
install(FILES parallel_reduce_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

abacus_copy_test_files(
parallel_common_test.sh
parallel_global_test.sh
parallel_reduce_test.sh)
find_program(BASH bash)
add_test(NAME MODULE_BASE_parallel_common_test
COMMAND ${BASH} parallel_common_test.sh
COMMAND ${BASH} parallel_common_test.sh "$<TARGET_FILE:MODULE_BASE_ParaCommon>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_test(NAME MODULE_BASE_parallel_global_test
COMMAND ${BASH} parallel_global_test.sh
COMMAND ${BASH} parallel_global_test.sh "$<TARGET_FILE:MODULE_BASE_ParaGlobal>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_test(NAME MODULE_BASE_parallel_reduce_test
COMMAND ${BASH} parallel_reduce_test.sh
COMMAND ${BASH} parallel_reduce_test.sh "$<TARGET_FILE:MODULE_BASE_ParaReduce>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

Expand All @@ -47,7 +47,7 @@ AddTest(
)

add_test(NAME MODULE_BASE_parallel_device_parallel
COMMAND mpirun -np 4 ./MODULE_BASE_parallel_device
COMMAND mpirun -np 4 "$<TARGET_FILE:MODULE_BASE_parallel_device>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

Expand All @@ -58,7 +58,7 @@ AddTest(
)

add_test(NAME MODULE_BASE_para_gemm_parallel
COMMAND mpirun -np 4 ./MODULE_BASE_para_gemm
COMMAND mpirun -np 4 "$<TARGET_FILE:MODULE_BASE_para_gemm>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

Expand All @@ -75,14 +75,14 @@ AddTest(
)

add_test(NAME MODULE_BASE_parallel_domain_grid_parallel
COMMAND mpirun -np 4 ./MODULE_BASE_parallel_domain_grid
COMMAND mpirun -np 4 "$<TARGET_FILE:MODULE_BASE_parallel_domain_grid>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

install(FILES parallel_2d_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
abacus_copy_test_files(parallel_2d_test.sh)
find_program(BASH bash)
add_test(NAME MODULE_BASE_parallel_2d_test_para
COMMAND ${BASH} parallel_2d_test.sh
COMMAND ${BASH} parallel_2d_test.sh "$<TARGET_FILE:MODULE_BASE_parallel_2d_test>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

Expand All @@ -99,8 +99,8 @@ add_test(NAME MODULE_BASE_parallel_2d_test_para
LIBS parameter MPI::MPI_CXX ${BLACS_LIB}
SOURCES blacs_connector_test.cpp
)
install(FILES blacs_connector_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
abacus_copy_test_files(blacs_connector_test.sh)
add_test(NAME MODULE_BASE_blacs_connector_test
COMMAND ${BASH} blacs_connector_test.sh
COMMAND ${BASH} blacs_connector_test.sh "$<TARGET_FILE:MODULE_BASE_blacs_connector>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
2 changes: 1 addition & 1 deletion source/source_base/test_parallel/blacs_connector_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_blacs_connector
mpirun -np $i "${1:-./MODULE_BASE_blacs_connector}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
2 changes: 1 addition & 1 deletion source/source_base/test_parallel/parallel_2d_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 2 3 4; do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_parallel_2d_test
mpirun -np $i "${1:-./MODULE_BASE_parallel_2d_test}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
2 changes: 1 addition & 1 deletion source/source_base/test_parallel/parallel_common_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 3;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_ParaCommon
mpirun -np $i "${1:-./MODULE_BASE_ParaCommon}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
2 changes: 1 addition & 1 deletion source/source_base/test_parallel/parallel_global_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 4;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_ParaGlobal
mpirun -np $i "${1:-./MODULE_BASE_ParaGlobal}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
2 changes: 1 addition & 1 deletion source/source_base/test_parallel/parallel_reduce_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 4;do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_BASE_ParaReduce
mpirun -np $i "${1:-./MODULE_BASE_ParaReduce}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
11 changes: 4 additions & 7 deletions source/source_basis/module_ao/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ list(APPEND depend_files
../../../source_lcao/center2orb.cpp
)

install(DIRECTORY GaAs DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/../../../tests)
install(DIRECTORY GaAs DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

abacus_copy_test_files(GaAs)

AddTest(
TARGET MODULE_AO_ORB_nonlocal_test
Expand Down Expand Up @@ -84,12 +82,11 @@ AddTest(
LIBS parameter device base
)

install(FILES parallel_orbitals_test.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
abacus_copy_test_files(parallel_orbitals_test.sh)
find_program(BASH bash)
add_test(NAME MODULE_AO_parallel_orbitals_test_para
COMMAND ${BASH} parallel_orbitals_test.sh
COMMAND ${BASH} parallel_orbitals_test.sh "$<TARGET_FILE:MODULE_AO_parallel_orbitals_test>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

install(DIRECTORY lcao_H2O DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
install(DIRECTORY lcao_H2O DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/../../../tests)
abacus_copy_test_files(lcao_H2O)
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i in 2 3 4; do
continue
fi
echo "TEST in parallel, nprocs=$i"
mpirun -np $i ./MODULE_AO_parallel_orbitals_test
mpirun -np $i "${1:-./MODULE_AO_parallel_orbitals_test}"
if [[ $? -ne 0 ]]; then
echo -e "\e[1;33m [ FAILED ] \e[0m"\
"execute UT with $i cores error."
Expand Down
6 changes: 5 additions & 1 deletion source/source_basis/module_pw/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ AddTest(
)

add_test(NAME MODULE_PW_pw_test_parallel
COMMAND mpirun -np 3 ./MODULE_PW_pw_test; mpirun -np 4 ./MODULE_PW_pw_test
COMMAND mpirun -np 3 "$<TARGET_FILE:MODULE_PW_pw_test>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_test(NAME MODULE_PW_pw_test_parallel_4np
COMMAND mpirun -np 4 "$<TARGET_FILE:MODULE_PW_pw_test>"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
2 changes: 0 additions & 2 deletions source/source_cell/module_neighlist/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ if(ENABLE_MPI)
PRIVATE
parameter base device MPI::MPI_CXX GTest::gtest_main GTest::gmock_main abacus::linalg_libs
)
install(TARGETS MODULE_CELL_NEIGHBOR_mdcell_migrate_mpi DESTINATION ${CMAKE_BINARY_DIR}/tests)
add_test(NAME MODULE_CELL_NEIGHBOR_mdcell_migrate_mpi
COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2
$<TARGET_FILE:MODULE_CELL_NEIGHBOR_mdcell_migrate_mpi>
Expand Down Expand Up @@ -107,7 +106,6 @@ if(ENABLE_MPI)
PRIVATE
parameter base device Threads::Threads MPI::MPI_CXX GTest::gtest GTest::gmock abacus::linalg_libs
)
install(TARGETS MODULE_CELL_NEIGHBOR_mdcell_reader DESTINATION ${CMAKE_BINARY_DIR}/tests)
add_test(NAME MODULE_CELL_NEIGHBOR_mdcell_reader_np4
COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 4
$<TARGET_FILE:MODULE_CELL_NEIGHBOR_mdcell_reader>
Expand Down
Loading
Loading