Skip to content

Commit e969f5e

Browse files
committed
Don't exit after failing in a test suite
1 parent 4a5ecae commit e969f5e

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

fpm/test/main.f90

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ program fpm_testing
1212
type(testsuite_t), allocatable :: testsuite(:)
1313
character(len=*), parameter :: fmt = '("#", *(1x, a))'
1414

15+
stat = 0
16+
1517
testsuite = [ &
1618
& new_testsuite("fpm_toml", collect_toml), &
1719
& new_testsuite("fpm_manifest", collect_manifest), &
@@ -27,18 +29,13 @@ program fpm_testing
2729
if (allocated(test_name)) then
2830
write(error_unit, fmt) "Suite:", testsuite(is)%name
2931
call run_selected(testsuite(is)%collect, test_name, error_unit, stat)
30-
if (stat == -1) then
32+
if (stat < 0) then
3133
error stop 1
3234
end if
3335
else
3436
write(error_unit, fmt) "Testing:", testsuite(is)%name
3537
call run_testsuite(testsuite(is)%collect, error_unit, stat)
3638
end if
37-
38-
if (stat > 0) then
39-
write(error_unit, '(i0, 1x, a)') stat, "test(s) failed!"
40-
error stop 1
41-
end if
4239
else
4340
write(error_unit, fmt) "Available testsuites"
4441
do is = 1, size(testsuite)
@@ -50,14 +47,14 @@ program fpm_testing
5047
do is = 1, size(testsuite)
5148
write(error_unit, fmt) "Testing:", testsuite(is)%name
5249
call run_testsuite(testsuite(is)%collect, error_unit, stat)
53-
54-
if (stat > 0) then
55-
write(error_unit, '(i0, 1x, a)') stat, "test(s) failed!"
56-
error stop 1
57-
end if
5850
end do
5951
end if
6052

53+
if (stat > 0) then
54+
write(error_unit, '(i0, 1x, a)') stat, "test(s) failed!"
55+
error stop 1
56+
end if
57+
6158

6259
contains
6360

fpm/test/testsuite.f90

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,11 @@ subroutine run_testsuite(collect, unit, stat)
7878
integer, intent(in) :: unit
7979

8080
!> Number of failed tests
81-
integer, intent(out) :: stat
81+
integer, intent(inout) :: stat
8282

8383
type(unittest_t), allocatable :: testsuite(:)
8484
integer :: ii
8585

86-
stat = 0
87-
8886
call collect(testsuite)
8987

9088
do ii = 1, size(testsuite)
@@ -109,13 +107,11 @@ subroutine run_selected(collect, name, unit, stat)
109107
integer, intent(in) :: unit
110108

111109
!> Number of failed tests
112-
integer, intent(out) :: stat
110+
integer, intent(inout) :: stat
113111

114112
type(unittest_t), allocatable :: testsuite(:)
115113
integer :: ii
116114

117-
stat = 0
118-
119115
call collect(testsuite)
120116

121117
ii = select_test(testsuite, name)
@@ -127,7 +123,7 @@ subroutine run_selected(collect, name, unit, stat)
127123
do ii = 1, size(testsuite)
128124
write(unit, fmt) "-", testsuite(ii)%name
129125
end do
130-
stat = -1
126+
stat = -huge(ii)
131127
end if
132128

133129
end subroutine run_selected

0 commit comments

Comments
 (0)