Skip to content

Commit a0f6ffe

Browse files
authored
Merge pull request #125 from LecrisUT/cmake/refactor/tests
cmake: Refactor the current test-suite
2 parents 6f56981 + bd1768b commit a0f6ffe

File tree

390 files changed

+379
-426
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

390 files changed

+379
-426
lines changed

.github/workflows/cmake.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
# CMake<3.20 does not have -B option
8181
working-directory: ${{github.workspace}}/build
8282
run: >
83-
ctest --output-on-failure
83+
ctest --output-on-failure -j $(nproc)
8484
8585
- name: Install
8686
run: cmake --install build --prefix scalapack_install

Makefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ pblasexe:
8181
( cd PBLAS/TIMING; $(MAKE) $(PRECISIONS) )
8282

8383
scalapackexe:
84-
( cd TESTING/LIN; $(MAKE) $(PRECISIONS) )
85-
( cd TESTING/EIG; $(MAKE) $(PRECISIONS) )
84+
( cd TESTING/traditional/LIN; $(MAKE) $(PRECISIONS) )
85+
( cd TESTING/traditional/EIG; $(MAKE) $(PRECISIONS) )
8686

8787
redistexe:
8888
( cd REDIST/TESTING; $(MAKE) integer $(PRECISIONS) )
@@ -93,11 +93,12 @@ example:
9393
cleanexe:
9494
( cd PBLAS/TESTING; $(MAKE) clean )
9595
( cd PBLAS/TIMING; $(MAKE) clean )
96-
( cd TESTING/LIN; $(MAKE) clean )
97-
( cd TESTING/EIG; $(MAKE) clean )
96+
( cd TESTING/traditional/LIN; $(MAKE) clean )
97+
( cd TESTING/traditional/EIG; $(MAKE) clean )
9898
( cd REDIST/TESTING; $(MAKE) clean )
9999
( cd BLACS/TESTING; $(MAKE) clean )
100100
( cd TESTING; rm -f x* )
101+
( cd TESTING/traditional; rm -f x* )
101102

102103
cleanlib:
103104
( cd BLACS; $(MAKE) clean )

TESTING/CMakeLists.txt

Lines changed: 12 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,16 @@
1-
add_subdirectory(LIN)
2-
add_subdirectory(EIG)
1+
cmake_minimum_required(VERSION 3.26...4.0)
32

4-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/TESTING)
3+
## Old test-suite to be modernized
4+
# include only if this is included via `add_subdirectory`
55

6-
file(COPY BLLT.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
7-
file(COPY BLU.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
8-
file(COPY BRD.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
9-
file(COPY EVC.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
10-
file(COPY HRD.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
11-
file(COPY INV.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
12-
file(COPY LLT.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
13-
file(COPY LS.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
14-
file(COPY LU.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
15-
file(COPY NEP.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
16-
file(COPY QR.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
17-
file(COPY SEP.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
18-
file(COPY SEPR.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
19-
file(COPY SVD.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
20-
file(COPY TRD.dat DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
6+
if(DEFINED SCALAPACK_SOURCE_DIR)
7+
add_subdirectory(traditional)
8+
endif()
219

22-
add_test(xslu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xslu)
23-
add_test(xdlu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdlu)
24-
add_test(xclu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xclu)
25-
add_test(xzlu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzlu)
26-
27-
add_test(xsdblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsdblu)
28-
add_test(xddblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xddblu)
29-
add_test(xcdblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcdblu)
30-
add_test(xzdblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzdblu)
31-
32-
add_test(xsdtlu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsdtlu)
33-
add_test(xddtlu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xddtlu)
34-
add_test(xcdtlu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcdtlu)
35-
add_test(xzdtlu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzdtlu)
36-
37-
add_test(xsgblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsgblu)
38-
add_test(xdgblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdgblu)
39-
add_test(xcgblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcgblu)
40-
add_test(xzgblu ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzgblu)
41-
42-
add_test(xsllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsllt)
43-
add_test(xdllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdllt)
44-
add_test(xcllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcllt)
45-
add_test(xzllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzllt)
46-
47-
add_test(xspbllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xspbllt)
48-
add_test(xdpbllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdpbllt)
49-
add_test(xcpbllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcpbllt)
50-
add_test(xzpbllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzpbllt)
51-
52-
add_test(xsptllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsptllt)
53-
add_test(xdptllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdptllt)
54-
add_test(xcptllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcptllt)
55-
add_test(xzptllt ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzptllt)
56-
57-
add_test(xsinv ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsinv)
58-
add_test(xdinv ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdinv)
59-
add_test(xcinv ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcinv)
60-
add_test(xzinv ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzinv)
61-
62-
add_test(xsqr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsqr)
63-
add_test(xdqr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdqr)
64-
add_test(xcqr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcqr)
65-
add_test(xzqr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzqr)
66-
67-
add_test(xsbrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsbrd)
68-
add_test(xdbrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdbrd)
69-
add_test(xcbrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcbrd)
70-
add_test(xzbrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzbrd)
71-
72-
add_test(xshrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xshrd)
73-
add_test(xdhrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdhrd)
74-
add_test(xchrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xchrd)
75-
add_test(xzhrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzhrd)
76-
77-
add_test(xstrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xstrd)
78-
add_test(xdtrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdtrd)
79-
add_test(xctrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xctrd)
80-
add_test(xztrd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xztrd)
81-
82-
add_test(xssvd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xssvd)
83-
add_test(xdsvd ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xdsvd)
84-
85-
add_test(xssep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xssep)
86-
add_test(xdsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xdsep)
87-
add_test(xcsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xcsep)
88-
add_test(xzsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xzsep)
89-
90-
add_test(xsgsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xsgsep)
91-
add_test(xdgsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xdgsep)
92-
add_test(xcgsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xcgsep)
93-
add_test(xzgsep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xzgsep)
94-
95-
add_test(xsnep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xsnep)
96-
add_test(xdnep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdnep)
97-
add_test(xcnep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcnep)
98-
add_test(xznep ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xznep)
99-
100-
add_test(xcevc ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xcevc)
101-
add_test(xzevc ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xzevc)
102-
103-
add_test(xssyevr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xssyevr)
104-
add_test(xdsyevr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xdsyevr)
105-
add_test(xcheevr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xcheevr)
106-
add_test(xzheevr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ${MPIEXEC_PREFLAGS} ./xzheevr)
107-
108-
add_test(xshseqr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xshseqr)
109-
add_test(xdhseqr ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} ./xdhseqr)
10+
## Modern test-suite is an independent project
11011

12+
# TODO: Add the implementations
13+
project(scalapack-tests
14+
LANGUAGES C Fortran
15+
)
16+
enable_testing()

TESTING/LIN/CMakeLists.txt

Lines changed: 0 additions & 116 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.
File renamed without changes.

TESTING/traditional/CMakeLists.txt

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
foreach(file_dat IN ITEMS
2+
BLLT.dat
3+
BLU.dat
4+
BRD.dat
5+
EVC.dat
6+
HRD.dat
7+
INV.dat
8+
LLT.dat
9+
LS.dat
10+
LU.dat
11+
NEP.dat
12+
QR.dat
13+
SEP.dat
14+
SEPR.dat
15+
SVD.dat
16+
TRD.dat
17+
)
18+
configure_file(${file_dat} ${file_dat} COPYONLY)
19+
endforeach()
20+
21+
set(traditional_test_workdir ${CMAKE_CURRENT_BINARY_DIR})
22+
function(add_traditional_test test num_proc)
23+
add_test(NAME ${test}
24+
COMMAND
25+
${MPIEXEC}
26+
${MPIEXEC_NUMPROC_FLAG} ${num_proc}
27+
${MPIEXEC_PREFLAGS}
28+
$<TARGET_FILE:${test}>
29+
WORKING_DIRECTORY ${traditional_test_workdir}
30+
)
31+
set_tests_properties(${test} PROPERTIES
32+
PROCESSORS ${num_proc}
33+
)
34+
endfunction()
35+
36+
# If gfortran >= 10
37+
set(genex_gfortran_10
38+
"$<AND:$<Fortran_COMPILER_ID:GNU>,$<VERSION_GREATER_EQUAL:$<Fortran_COMPILER_VERSION>,10>>"
39+
)
40+
function(setup_test_target)
41+
foreach(target IN LISTS ARGN)
42+
target_link_libraries(${target} PRIVATE
43+
scalapack
44+
${LAPACK_LIBRARIES}
45+
${BLAS_LIBRARIES}
46+
MPI::MPI_Fortran
47+
)
48+
target_compile_options(${target} PRIVATE
49+
"$<${genex_gfortran_10}:-std=legacy>"
50+
)
51+
endforeach()
52+
endfunction()
53+
54+
add_subdirectory(LIN)
55+
add_subdirectory(EIG)
56+

0 commit comments

Comments
 (0)