5
5
6
6
module prif_rma_test_m
7
7
! ! 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
9
9
use iso_c_binding, only: &
10
10
c_ptr, c_intmax_t, c_intptr_t, c_size_t, c_null_funptr, c_f_pointer, c_loc, c_sizeof
11
11
use prif_test_m, only : prif_test_t, test_description_substring
@@ -23,7 +23,7 @@ module prif_rma_test_m
23
23
prif_sync_all, &
24
24
prif_this_image_no_coarray
25
25
#if ! HAVE_PROCEDURE_ACTUAL_FOR_POINTER_DUMMY
26
- use julienne_m, only : test_function_i
26
+ use julienne_m, only : diagnosis_function_i
27
27
#endif
28
28
implicit none
29
29
@@ -55,7 +55,7 @@ function results() result(test_results)
55
55
,test_description_t(" getting a value with indirect interface" , check_get_indirect) &
56
56
]
57
57
#else
58
- procedure (test_function_i ), pointer :: &
58
+ procedure (diagnosis_function_i ), pointer :: &
59
59
check_put_ptr = > check_put &
60
60
,check_put_indirect_ptr = > check_put_indirect &
61
61
,check_get_ptr = > check_get &
@@ -76,10 +76,10 @@ function results() result(test_results)
76
76
test_results = test_descriptions% run()
77
77
end function
78
78
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
81
81
82
- integer :: dummy_element, num_imgs, expected, neighbor
82
+ integer dummy_element, num_imgs, expected, neighbor
83
83
integer , target :: me
84
84
type (prif_coarray_handle) :: coarray_handle
85
85
type (c_ptr) :: allocated_memory
@@ -110,15 +110,17 @@ function check_put() result(test_passes)
110
110
size_in_bytes = c_sizeof(me))
111
111
call prif_sync_all
112
112
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
+ )
115
117
call prif_deallocate_coarray([coarray_handle])
116
118
end function
117
119
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
120
122
121
- type :: my_type
123
+ type my_type
122
124
type (c_ptr) :: my_component
123
125
end type
124
126
@@ -167,14 +169,17 @@ function check_put_indirect() result(test_passes)
167
169
call prif_sync_all
168
170
169
171
call c_f_pointer(local_slice% my_component, component_access)
170
- test_passes = expected == component_access
171
172
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
+ )
172
177
call prif_deallocate(local_slice% my_component)
173
178
call prif_deallocate_coarray([coarray_handle])
174
179
end function
175
180
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
178
183
179
184
integer :: dummy_element, num_imgs, me, neighbor, expected
180
185
integer , target :: retrieved
@@ -208,15 +213,17 @@ function check_get() result(test_passes)
208
213
current_image_buffer = c_loc(retrieved), &
209
214
size_in_bytes = c_sizeof(retrieved))
210
215
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
+ )
213
220
call prif_deallocate_coarray([coarray_handle])
214
221
end function
215
222
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
218
225
219
- type :: my_type
226
+ type my_type
220
227
type (c_ptr) :: my_component
221
228
end type
222
229
@@ -265,8 +272,10 @@ function check_get_indirect() result(test_passes)
265
272
current_image_buffer = c_loc(retrieved), &
266
273
size_in_bytes = int (storage_size(retrieved)/ 8 , c_size_t))
267
274
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
+ )
270
279
call prif_deallocate(local_slice% my_component)
271
280
call prif_deallocate_coarray([coarray_handle])
272
281
end function
0 commit comments