Skip to content

Commit e892ce2

Browse files
committed
test(rma): report diagnostics for test failures
1 parent d70134e commit e892ce2

File tree

1 file changed

+30
-21
lines changed

1 file changed

+30
-21
lines changed

test/prif_rma_test_m.F90

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
module prif_rma_test_m
77
!! Unit test fort the prif_rma program inititation subroutine
8-
use julienne_m, only : test_t, test_result_t, test_description_t
8+
use julienne_m, only : test_t, test_result_t, test_description_t, test_diagnosis_t, string_t
99
use iso_c_binding, only: &
1010
c_ptr, c_intmax_t, c_intptr_t, c_size_t, c_null_funptr, c_f_pointer, c_loc, c_sizeof
1111
use prif_test_m, only : prif_test_t, test_description_substring
@@ -23,7 +23,7 @@ module prif_rma_test_m
2323
prif_sync_all, &
2424
prif_this_image_no_coarray
2525
#if ! HAVE_PROCEDURE_ACTUAL_FOR_POINTER_DUMMY
26-
use julienne_m, only : test_function_i
26+
use julienne_m, only : diagnosis_function_i
2727
#endif
2828
implicit none
2929

@@ -55,7 +55,7 @@ function results() result(test_results)
5555
,test_description_t("getting a value with indirect interface", check_get_indirect) &
5656
]
5757
#else
58-
procedure(test_function_i), pointer :: &
58+
procedure(diagnosis_function_i), pointer :: &
5959
check_put_ptr => check_put &
6060
,check_put_indirect_ptr => check_put_indirect &
6161
,check_get_ptr => check_get &
@@ -76,10 +76,10 @@ function results() result(test_results)
7676
test_results = test_descriptions%run()
7777
end function
7878

79-
function check_put() result(test_passes)
80-
logical test_passes
79+
function check_put() result(test_diagnosis)
80+
type(test_diagnosis_t) test_diagnosis
8181

82-
integer :: dummy_element, num_imgs, expected, neighbor
82+
integer dummy_element, num_imgs, expected, neighbor
8383
integer, target :: me
8484
type(prif_coarray_handle) :: coarray_handle
8585
type(c_ptr) :: allocated_memory
@@ -110,15 +110,17 @@ function check_put() result(test_passes)
110110
size_in_bytes = c_sizeof(me))
111111
call prif_sync_all
112112

113-
test_passes = expected == local_slice
114-
113+
test_diagnosis = test_diagnosis_t( &
114+
test_passed = expected == local_slice &
115+
,diagnostics_string = "expected " // string_t(expected) // "; actual " // string_t(local_slice) &
116+
)
115117
call prif_deallocate_coarray([coarray_handle])
116118
end function
117119

118-
function check_put_indirect() result(test_passes)
119-
logical test_passes
120+
function check_put_indirect() result(test_diagnosis)
121+
type(test_diagnosis_t) test_diagnosis
120122

121-
type :: my_type
123+
type my_type
122124
type(c_ptr) :: my_component
123125
end type
124126

@@ -167,14 +169,17 @@ function check_put_indirect() result(test_passes)
167169
call prif_sync_all
168170

169171
call c_f_pointer(local_slice%my_component, component_access)
170-
test_passes = expected == component_access
171172

173+
test_diagnosis = test_diagnosis_t( &
174+
test_passed = expected == component_access &
175+
,diagnostics_string = "expected " // string_t(expected) // "; actual " // string_t(component_access) &
176+
)
172177
call prif_deallocate(local_slice%my_component)
173178
call prif_deallocate_coarray([coarray_handle])
174179
end function
175180

176-
function check_get() result(test_passes)
177-
logical test_passes
181+
function check_get() result(test_diagnosis)
182+
type(test_diagnosis_t) test_diagnosis
178183

179184
integer :: dummy_element, num_imgs, me, neighbor, expected
180185
integer, target :: retrieved
@@ -208,15 +213,17 @@ function check_get() result(test_passes)
208213
current_image_buffer = c_loc(retrieved), &
209214
size_in_bytes = c_sizeof(retrieved))
210215

211-
test_passes = expected == retrieved
212-
216+
test_diagnosis = test_diagnosis_t( &
217+
test_passed = expected == retrieved &
218+
,diagnostics_string = "expected " // string_t(expected) // "; actual " // string_t(retrieved) &
219+
)
213220
call prif_deallocate_coarray([coarray_handle])
214221
end function
215222

216-
function check_get_indirect() result(test_passes)
217-
logical test_passes
223+
function check_get_indirect() result(test_diagnosis)
224+
type(test_diagnosis_t) test_diagnosis
218225

219-
type :: my_type
226+
type my_type
220227
type(c_ptr) :: my_component
221228
end type
222229

@@ -265,8 +272,10 @@ function check_get_indirect() result(test_passes)
265272
current_image_buffer = c_loc(retrieved), &
266273
size_in_bytes = int(storage_size(retrieved)/8, c_size_t))
267274

268-
test_passes = expected == retrieved
269-
275+
test_diagnosis = test_diagnosis_t( &
276+
test_passed = expected == retrieved &
277+
,diagnostics_string = "expected " // string_t(expected) // "; actual " // string_t(retrieved) &
278+
)
270279
call prif_deallocate(local_slice%my_component)
271280
call prif_deallocate_coarray([coarray_handle])
272281
end function

0 commit comments

Comments
 (0)