File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11program main
2- use compiler_test_m, only : compiler_test_t
2+ use compiler_test_m, only : compiler_test_t
33 use sp_smart_pointer_test_m, only : sp_smart_pointer_test_t
44 implicit none
55
66 type (compiler_test_t) compiler_test
77 type (sp_smart_pointer_test_t) sp_smart_pointer_test
8+ integer :: failures
89
9- call compiler_test% report()
10- call sp_smart_pointer_test% report()
10+ failures = compiler_test% report()
11+ failures = failures + sp_smart_pointer_test% report()
12+ if (failures > 0 ) error stop
1113end program
Original file line number Diff line number Diff line change @@ -28,10 +28,11 @@ function results_interface() result(test_results)
2828
2929 interface
3030
31- module subroutine report (test )
31+ module function report (test ) result(failures )
3232 implicit none
3333 class(test_t), intent (in ) :: test
34- end subroutine
34+ integer :: failures
35+ end function
3536
3637 end interface
3738
@@ -49,12 +50,14 @@ end module test_m
4950 integer i
5051 type (test_result_t), allocatable :: test_results(:)
5152
53+ failures = 0
5254 print *
5355 print * , test% subject()
5456
5557 test_results = test% results()
5658 do i= 1 ,size (test_results)
5759 print * ," " ,test_results(i)% characterize()
60+ if (.not. test_results(i)% outcome()) failures = failures + 1
5861 end do
5962 end procedure
6063
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ module test_result_m
1111 logical outcome_
1212 contains
1313 procedure :: characterize
14+ procedure :: outcome
1415 end type
1516
1617 interface test_result_t
@@ -32,6 +33,12 @@ pure module function characterize(self) result(characterization)
3233 character (len= :), allocatable :: characterization
3334 end function
3435
36+ pure module function outcome(self) result(passes)
37+ implicit none
38+ class(test_result_t), intent (in ) :: self
39+ logical :: passes
40+ end function
41+
3542 end interface
3643
3744end module test_result_m
@@ -50,4 +57,8 @@ end module test_result_m
5057 characterization = merge (" Pass: " , " Fail: " , self% outcome_) // self% description_
5158 end procedure
5259
60+ module procedure outcome
61+ passes = self% outcome_
62+ end procedure
63+
5364end submodule test_result_s
You can’t perform that action at this time.
0 commit comments