Skip to content

Commit 914c2c3

Browse files
authored
Merge pull request #33 from sourceryinstitute/improve-robustness
Print test subject before printing results
2 parents 551dca9 + 1f120bb commit 914c2c3

File tree

4 files changed

+46
-4
lines changed

4 files changed

+46
-4
lines changed

src/test_result_m.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module test_result_m
1717

1818
interface test_result_t
1919

20-
pure module function construct(description, passed) result(test_result)
20+
elemental module function construct(description, passed) result(test_result)
2121
!! The result is a test_result_t object with the components defined by the dummy arguments
2222
implicit none
2323
character(len=*), intent(in) :: description

src/test_s.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
module procedure report
77
integer i
88

9+
print *
10+
print *, test%subject()
911
associate(test_results => test%results())
10-
print *
11-
print *, test%subject()
1212
associate(num_tests => size(test_results))
1313
tests = tests + num_tests
1414
do i=1,num_tests

test/main.f90

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ program main
33
use data_partition_test, only : data_partition_test_t
44
use object_m_test, only : object_test_t
55
use formats_test, only : formats_test_t
6+
use test_result_test, only : test_result_test_t
67
implicit none
78

89
type(collectives_test_t) collectives_test
910
type(data_partition_test_t) data_partition_test
1011
type(formats_test_t) formats_test
1112
type(object_test_t) object_test
13+
type(test_result_test_t) test_result_test
1214

1315
integer :: passes=0, tests=0
1416

1517
call data_partition_test%report(passes, tests)
1618
call collectives_test%report(passes, tests)
1719
call object_test%report(passes, tests)
1820
call formats_test%report(passes, tests)
21+
call test_result_test%report(passes, tests)
1922

2023
print *
2124
print *,"_________ In total, ",passes," of ",tests, " tests pass. _________"
22-
2325
end program

test/test_result_test.f90

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
module test_result_test
2+
!! Verify object pattern asbtract parent
3+
use test_m, only : test_t, test_result_t
4+
use test_result_m, only : test_result_t
5+
implicit none
6+
7+
private
8+
public :: test_result_test_t
9+
10+
type, extends(test_t) :: test_result_test_t
11+
contains
12+
procedure, nopass :: subject
13+
procedure, nopass :: results
14+
end type
15+
16+
contains
17+
18+
pure function subject() result(specimen)
19+
character(len=:), allocatable :: specimen
20+
specimen = "The test_result_t type"
21+
end function
22+
23+
function results() result(test_results)
24+
type(test_result_t), allocatable :: test_results(:)
25+
26+
test_results = [ &
27+
test_result_t("constructs and array of test_result_t objects elmentally", check_array_result_construction()) &
28+
]
29+
end function
30+
31+
pure function check_array_result_construction() result(passed)
32+
type(test_result_t), allocatable :: test_results(:)
33+
logical passed
34+
35+
test_results = test_result_t(["foo","bar"], [.true.,.false.])
36+
37+
passed = size(test_results)==2
38+
end function
39+
40+
end module test_result_test

0 commit comments

Comments
 (0)