Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
110029a
Make the tests in the test suite fatal; the testsuites in the JUnit f…
ACSimon33 Aug 25, 2026
85346fa
Merge branch 'master' into fatal_test_failures
ACSimon33 Sep 8, 2026
b19c710
Disable error exit tests for shared Windows builds
ACSimon33 Sep 9, 2026
703bbf2
Handle non-existent input files in helper function
ACSimon33 Sep 9, 2026
a89ae4f
Merge branch 'master' into fatal_test_failures
ACSimon33 Sep 9, 2026
637aa38
CMAKE: repair the test suite after the master merge
ACSimon33 Sep 9, 2026
1941cb3
Fix error test disabling for LAPACKE tests
ACSimon33 Sep 9, 2026
be46f39
CMAKE: disable nagfor constant propagation for ?errcxx_TEST
ACSimon33 Sep 9, 2026
9b33040
TESTING: exit with status 1 from every fatal error path
ACSimon33 Sep 10, 2026
49b6826
lapack_testing.py: fail when an output file accounts for no tests
ACSimon33 Sep 10, 2026
3c87871
Merge branch 'master' into fatal_test_failures
ACSimon33 Sep 12, 2026
2568dcc
lapack_testing.py: fix the LAPACKE driver names
ACSimon33 Sep 13, 2026
f9cf593
lapack_testing.py: separate the empty-output check
ACSimon33 Sep 13, 2026
5e9d370
lapack_testing.py: keep the job id one segment of the class name
ACSimon33 Sep 13, 2026
678f315
TESTING: exit with status 1 from the DMD failure paths
ACSimon33 Sep 13, 2026
a0a3a81
CMAKE: stop the generated test inputs going stale
ACSimon33 Sep 13, 2026
c469bd8
CMAKE: let LAPACK_SKIP_ERROR_EXIT_TESTS be set, and cover macOS
ACSimon33 Sep 13, 2026
8b78399
LAPACKE: quote the test input and output paths
ACSimon33 Sep 13, 2026
8927e81
CMAKE: keep the NAG constant-propagation flag in one place
ACSimon33 Sep 13, 2026
c24b615
TESTING: write the ?gd.in error-exit flag as T
ACSimon33 Sep 13, 2026
df8b100
fixup! CMAKE: keep the NAG constant-propagation flag in one place
ACSimon33 Sep 13, 2026
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
7 changes: 5 additions & 2 deletions .github/workflows/compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ jobs:
CC: ${{ matrix.toolchain.CC }}
FFLAGS: ${{ matrix.toolchain.FFLAGS }}
CFLAGS: ${{ matrix.toolchain.CFLAGS }}
JOB_ID: ${{ matrix.toolchain.os }}-${{ matrix.toolchain.FC }}-${{ matrix.lib_type }}

strategy:
fail-fast: false
Expand Down Expand Up @@ -387,6 +388,7 @@ jobs:
-D BUILD_TESTING:BOOL=ON \
-D LAPACKE_WITH_TMG:BOOL=ON \
-D BUILD_SHARED_LIBS:BOOL=${{ matrix.lib_type == 'shared' && 'ON' || 'OFF' }} \
-D LAPACK_TESTING_JUNIT_JOB_ID="${JOB_ID}" \
"${extra[@]}"

- name: Build
Expand Down Expand Up @@ -416,7 +418,8 @@ jobs:
-D LAPACKE:BOOL=ON ^
-D BUILD_TESTING:BOOL=ON ^
-D LAPACKE_WITH_TMG:BOOL=ON ^
-D BUILD_SHARED_LIBS:BOOL=${{ matrix.lib_type == 'shared' && 'ON' || 'OFF' }}
-D BUILD_SHARED_LIBS:BOOL=${{ matrix.lib_type == 'shared' && 'ON' || 'OFF' }} ^
-D LAPACK_TESTING_JUNIT_JOB_ID=%JOB_ID%

- name: Build (Windows)
if: ${{ runner.os == 'Windows' }}
Expand Down Expand Up @@ -461,7 +464,7 @@ jobs:
files: build/lapack_testing_junit.xml
# The report is named above, so there is nothing to search the tree for.
disable_search: true
flags: tests-${{ matrix.toolchain.os }}-${{ matrix.toolchain.FC }}-${{ matrix.lib_type }}
flags: tests-${{ env.JOB_ID }}
name: ${{ matrix.toolchain.os }}-${{ matrix.toolchain.FC }} (${{ matrix.lib_type }})
fail_ci_if_error: true
verbose: true
Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/special.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ jobs:
FFLAGS: "-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all -fopenmp"
FC: ${{ matrix.toolchain.FC }}
CC: ${{ matrix.toolchain.CC }}
JOB_ID: openmp-${{ matrix.toolchain.os }}-${{ matrix.lib_type }}

strategy:
fail-fast: false
Expand Down Expand Up @@ -109,6 +110,8 @@ jobs:
-D BUILD_TESTING:BOOL=ON
-D LAPACKE_WITH_TMG:BOOL=ON
-D BUILD_SHARED_LIBS:BOOL=${{ matrix.lib_type == 'shared' && 'ON' || 'OFF' }}
-D LAPACK_TESTING_JUNIT_JOB_ID="${JOB_ID}"
${{ startsWith(matrix.toolchain.os, 'macos') && matrix.lib_type == 'shared' && '-D USE_FLAT_NAMESPACE:BOOL=ON' || '' }}

- name: Build
run: cmake --build build --parallel
Expand Down Expand Up @@ -145,7 +148,7 @@ jobs:
files: build/lapack_testing_junit.xml
# The report is named above, so there is nothing to search the tree for.
disable_search: true
flags: tests-openmp-${{ matrix.toolchain.os }}-${{ matrix.lib_type }}
flags: tests-${{ env.JOB_ID }}
name: openmp-${{ matrix.toolchain.os }}-${{ matrix.toolchain.FC }} (${{ matrix.lib_type }})
fail_ci_if_error: true
verbose: true
Expand Down Expand Up @@ -177,6 +180,9 @@ jobs:
name: codecov
deployment: false

env:
JOB_ID: extended-api-${{ matrix.lib_type }}

strategy:
fail-fast: false
matrix:
Expand All @@ -198,6 +204,7 @@ jobs:
-D BUILD_SHARED_LIBS:BOOL=${{ matrix.lib_type == 'shared' && 'ON' || 'OFF' }}
-D BUILD_DEFAULT_API:BOOL=OFF
-D BUILD_INDEX64_EXT_API:BOOL=ON
-D LAPACK_TESTING_JUNIT_JOB_ID="${JOB_ID}"

- name: Build
run: cmake --build build --parallel
Expand Down Expand Up @@ -232,7 +239,7 @@ jobs:
files: build/lapack_testing_junit.xml
# The report is named above, so there is nothing to search the tree for.
disable_search: true
flags: tests-extended-api-${{ matrix.lib_type }}
flags: tests-${{ env.JOB_ID }}
name: extended-api-only (${{ matrix.lib_type }})
fail_ci_if_error: true
verbose: true
Expand Down
20 changes: 12 additions & 8 deletions BLAS/TESTING/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,28 @@ function(_add_blas_test name src test_input test_output)
add_executable(${name} ${src})
target_link_libraries(${name} PRIVATE ${BLASLIB})
lapack_add_coverage(${name})

# A driver that reads an input file takes the name of its summary file from
# it and opens that itself on unit 6, so redirecting stdout there as well
# would open the one file twice; xBLAT2 fails outright with "Cannot change
# STATUS parameter in OPEN statement". Only xBLAT1, which has no input and
# writes to stdout, needs the redirect.
if(EXISTS "${test_input}")
lapack_runtest_command(test_command ${name} INPUT "${test_input}")
add_test(NAME BLAS-${name} COMMAND ${test_command})
else()
lapack_runtest_command(test_command ${name} OUTPUT "${test_output}")
add_test(NAME BLAS-${name} COMMAND ${test_command})
endif()
add_test(NAME BLAS-${name} COMMAND ${test_command})

# Disable constant propagation for NAG compiler to avoid issues with
# special values (Inf, NaN) returned by SXVALS and DXVALS.
if(CMAKE_Fortran_COMPILER_ID STREQUAL "NAG")
target_compile_options(${name} PRIVATE "-Onopropagate")
endif()
# The special values (Inf, NaN) that SXVALS and DXVALS return do not
# survive nagfor folding the expressions that make them.
lapack_nag_disable_constant_propagation_target(${name})
endfunction()

function(add_blas_test name source)
get_filename_component(baseNAME ${source} NAME_WE)
set(test_input "${CMAKE_CURRENT_SOURCE_DIR}/${baseNAME}.in")
lapack_test_input(test_input
"${CMAKE_CURRENT_SOURCE_DIR}/${baseNAME}.in")

if(BUILD_DEFAULT_API)
_add_blas_test(${name} ${source} "${test_input}"
Expand Down
4 changes: 2 additions & 2 deletions BLAS/TESTING/cblat1.f
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ SUBROUTINE CHECK1(SFAC)
CALL ITEST1(ICAMAX(N,CX,INCX),ITRUEC(NP1))
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
STOP
STOP 1
END IF
*
40 CONTINUE
Expand Down Expand Up @@ -675,7 +675,7 @@ SUBROUTINE CHECK2(SFAC)
CALL CTEST(LENY,CY,CT11(1,KN,KI),CSIZE2(1,KSIZE),SFAC)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK2'
STOP
STOP 1
END IF
*
40 CONTINUE
Expand Down
6 changes: 3 additions & 3 deletions BLAS/TESTING/cblat2.f
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ PROGRAM CBLAT2
$ GO TO 70
60 CONTINUE
WRITE( NOUT, FMT = 9986 )SNAMET
STOP
STOP 1
70 LTEST( I ) = LTESTT
GO TO 50
*
Expand Down Expand Up @@ -311,15 +311,15 @@ PROGRAM CBLAT2
SAME = LCE( YY, YT, N )
IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
WRITE( NOUT, FMT = 9985 )TRANS, SAME, ERR
STOP
STOP 1
END IF
TRANS = 'T'
CALL CMVCH( TRANS, N, N, ONE, A, NMAX, X, -1, ZERO, Y, -1, YT, G,
$ YY, EPS, ERR, FATAL, NOUT, .TRUE. )
SAME = LCE( YY, YT, N )
IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
WRITE( NOUT, FMT = 9985 )TRANS, SAME, ERR
STOP
STOP 1
END IF
*
* Test each subroutine in turn.
Expand Down
10 changes: 5 additions & 5 deletions BLAS/TESTING/cblat3.f
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ PROGRAM CBLAT3
$ GO TO 50
40 CONTINUE
WRITE( NOUT, FMT = 9990 )SNAMET
STOP
STOP 1
50 LTEST( I ) = LTESTT
GO TO 30
*
Expand Down Expand Up @@ -265,7 +265,7 @@ PROGRAM CBLAT3
SAME = LCE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
TRANSB = 'C'
CALL CMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
Expand All @@ -274,7 +274,7 @@ PROGRAM CBLAT3
SAME = LCE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
DO 120 J = 1, N
AB( J, NMAX + 1 ) = REAL( N - J + 1 )
Expand All @@ -292,7 +292,7 @@ PROGRAM CBLAT3
SAME = LCE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
TRANSB = 'C'
CALL CMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
Expand All @@ -301,7 +301,7 @@ PROGRAM CBLAT3
SAME = LCE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
*
* Test each subroutine in turn.
Expand Down
8 changes: 4 additions & 4 deletions BLAS/TESTING/dblat1.f
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ SUBROUTINE CHECK0(SFAC)
CALL STEST(9,DTEMP,DTRUE(1,K),DTRUE(1,K),SFAC)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK0'
STOP
STOP 1
END IF
20 CONTINUE
40 RETURN
Expand Down Expand Up @@ -376,7 +376,7 @@ SUBROUTINE CHECK1(SFAC)
CALL ITEST1(IDAMAX(N,SX,INCX),ITRUEC(NP1))
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
STOP
STOP 1
END IF
60 CONTINUE
IF (ICASE.EQ.10) THEN
Expand Down Expand Up @@ -782,7 +782,7 @@ SUBROUTINE CHECK2(SFAC)
$ REAL(DT7(KN,KI)),REAL(SSIZE1(KN)), .3125E-1)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK2'
STOP
STOP 1
END IF
100 CONTINUE
120 CONTINUE
Expand Down Expand Up @@ -898,7 +898,7 @@ SUBROUTINE CHECK3(SFAC)
CALL STEST(LENY,SY,STY,SSIZE2(1,KSIZE),SFAC)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK3'
STOP
STOP 1
END IF
40 CONTINUE
60 CONTINUE
Expand Down
6 changes: 3 additions & 3 deletions BLAS/TESTING/dblat2.f
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ PROGRAM DBLAT2
$ GO TO 70
60 CONTINUE
WRITE( NOUT, FMT = 9986 )SNAMET
STOP
STOP 1
70 LTEST( I ) = LTESTT
GO TO 50
*
Expand Down Expand Up @@ -312,15 +312,15 @@ PROGRAM DBLAT2
SAME = LDE( YY, YT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9985 )TRANS, SAME, ERR
STOP
STOP 1
END IF
TRANS = 'T'
CALL DMVCH( TRANS, N, N, ONE, A, NMAX, X, -1, ZERO, Y, -1, YT, G,
$ YY, EPS, ERR, FATAL, NOUT, .TRUE. )
SAME = LDE( YY, YT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9985 )TRANS, SAME, ERR
STOP
STOP 1
END IF
*
* Test each subroutine in turn.
Expand Down
10 changes: 5 additions & 5 deletions BLAS/TESTING/dblat3.f
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ PROGRAM DBLAT3
$ GO TO 50
40 CONTINUE
WRITE( NOUT, FMT = 9990 )SNAMET
STOP
STOP 1
50 LTEST( I ) = LTESTT
GO TO 30
*
Expand Down Expand Up @@ -262,7 +262,7 @@ PROGRAM DBLAT3
SAME = LDE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
TRANSB = 'T'
CALL DMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
Expand All @@ -271,7 +271,7 @@ PROGRAM DBLAT3
SAME = LDE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
DO 120 J = 1, N
AB( J, NMAX + 1 ) = N - J + 1
Expand All @@ -289,7 +289,7 @@ PROGRAM DBLAT3
SAME = LDE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
TRANSB = 'T'
CALL DMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
Expand All @@ -298,7 +298,7 @@ PROGRAM DBLAT3
SAME = LDE( CC, CT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
STOP
STOP 1
END IF
*
* Test each subroutine in turn.
Expand Down
8 changes: 4 additions & 4 deletions BLAS/TESTING/sblat1.f
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ SUBROUTINE CHECK0(SFAC)
CALL STEST(9,DTEMP,DTRUE(1,K),DTRUE(1,K),SFAC)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK0'
STOP
STOP 1
END IF
20 CONTINUE
40 RETURN
Expand Down Expand Up @@ -374,7 +374,7 @@ SUBROUTINE CHECK1(SFAC)
CALL ITEST1(ISAMAX(N,SX,INCX),ITRUEC(NP1))
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
STOP
STOP 1
END IF
60 CONTINUE
IF (ICASE.EQ.10) THEN
Expand Down Expand Up @@ -781,7 +781,7 @@ SUBROUTINE CHECK2(SFAC)
$ ST7B(KN,KI),SSIZE3(KN),SFAC)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK2'
STOP
STOP 1
END IF
100 CONTINUE
120 CONTINUE
Expand Down Expand Up @@ -896,7 +896,7 @@ SUBROUTINE CHECK3(SFAC)
CALL STEST(LENY,SY,STY,SSIZE2(1,KSIZE),SFAC)
ELSE
WRITE (NOUT,*) ' Shouldn''t be here in CHECK3'
STOP
STOP 1
END IF
40 CONTINUE
60 CONTINUE
Expand Down
6 changes: 3 additions & 3 deletions BLAS/TESTING/sblat2.f
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ PROGRAM SBLAT2
$ GO TO 70
60 CONTINUE
WRITE( NOUT, FMT = 9986 )SNAMET
STOP
STOP 1
70 LTEST( I ) = LTESTT
GO TO 50
*
Expand Down Expand Up @@ -313,15 +313,15 @@ PROGRAM SBLAT2
SAME = LSE( YY, YT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9985 )TRANS, SAME, ERR
STOP
STOP 1
END IF
TRANS = 'T'
CALL SMVCH( TRANS, N, N, ONE, A, NMAX, X, -1, ZERO, Y, -1, YT, G,
$ YY, EPS, ERR, FATAL, NOUT, .TRUE. )
SAME = LSE( YY, YT, N )
IF( .NOT.SAME.OR.ERR.NE.ZERO )THEN
WRITE( NOUT, FMT = 9985 )TRANS, SAME, ERR
STOP
STOP 1
END IF
*
* Test each subroutine in turn.
Expand Down
Loading