Skip to content

Commit 89d2bab

Browse files
fix: collective tests
1 parent bf7999f commit 89d2bab

File tree

3 files changed

+11
-18
lines changed

3 files changed

+11
-18
lines changed

test/caf_co_max_test.f90

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ function max_elements_in_2D_string_arrays() result(result_)
124124
function reverse_alphabetize_default_character_scalars() result(result_)
125125
type(result_t) result_
126126
integer, parameter :: length = len("loddy")
127-
character(len=length), parameter :: words(*) = [character(len=length):: "loddy","doddy","we","like","to","party"]
128-
character(len=:), allocatable :: my_word, expected_word
127+
character(len=*), parameter :: words(*) = [character(len=length):: "loddy","doddy","we","like","to","party"]
128+
character(len=len(words)) :: my_word, expected_word
129129
integer :: me, num_imgs
130130

131131
call prif_this_image_no_coarray(this_image=me)
@@ -135,8 +135,7 @@ function reverse_alphabetize_default_character_scalars() result(result_)
135135
end associate
136136

137137
call prif_num_images(num_imgs)
138-
!expected_word = maxval(words(1:min(num_imgs, size(words)))) ! this line crashes flang
139-
expected_word = "we"
138+
expected_word = maxval(words(1:min(num_imgs, size(words))), dim=1)
140139
result_ = assert_equals(expected_word, my_word)
141140
end function
142141

test/caf_co_min_test.f90

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ function alphabetically_1st_scalar_string() result(result_)
127127
type(result_t) result_
128128
integer, parameter :: length = len("to party!")
129129
character(len=length), parameter :: words(*) = [character(len=length):: "Loddy","doddy","we","like","to party!"]
130-
character(len=:), allocatable :: my_word, expected_word
130+
character(len=length) :: my_word, expected_word
131131
integer :: me, num_imgs
132132

133133
call prif_this_image_no_coarray(this_image=me)
@@ -137,8 +137,7 @@ function alphabetically_1st_scalar_string() result(result_)
137137
end associate
138138

139139
call prif_num_images(num_images=num_imgs)
140-
! expected_word = minval(words(1:min(num_imgs, size(words)))) ! this line exposes a flang bug
141-
expected_word = "Loddy"
140+
expected_word = minval(words(1:min(num_imgs, size(words))), dim=1)
142141
result_ = assert_equals(expected_word, my_word)
143142
end function
144143

test/caf_co_reduce_test.f90

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,31 +29,26 @@ function test_prif_co_reduce() result(tests)
2929
function alphabetically_1st_size1_string_array() result(result_)
3030
type(result_t) result_
3131
character(len=*, kind=c_char), parameter :: names(*) = ["larry","harry","carey","betty","tommy","billy"]
32-
character(len=:, kind=c_char), allocatable :: my_name(:)
33-
character(len=:), allocatable :: expected_name
32+
character(len=len(names), kind=c_char) :: my_name(1)
33+
character(len=len(names)) :: expected_name
3434
integer :: me, num_imgs
3535

3636
call prif_this_image_no_coarray(this_image=me)
3737
associate(periodic_index => 1 + mod(me-1,size(names)))
38-
my_name = [names(periodic_index)]
38+
my_name(1) = names(periodic_index)
3939
call prif_co_reduce(my_name, c_funloc(alphabetize))
4040
end associate
4141

4242
call prif_num_images(num_images=num_imgs)
43-
!expected_name = minval(names(1:min(num_imgs, size(names)))) ! this exposes a flang bug
44-
expected_name = "betty"
43+
expected_name = minval(names(1:min(num_imgs, size(names))), dim=1)
4544
result_ = assert_that(all(expected_name == my_name))
4645

4746
contains
4847

4948
function alphabetize(lhs, rhs) result(first_alphabetically)
50-
character(len=*), intent(in) :: lhs, rhs
51-
character(len=:), allocatable :: first_alphabetically
49+
character(len=len(names)), intent(in) :: lhs, rhs
50+
character(len=len(names)) :: first_alphabetically
5251

53-
if (len(lhs).ne.len(rhs)) then
54-
call prif_error_stop(quiet=.false._c_bool, &
55-
stop_code_char="co_reduce_s alphabetize: LHS(" // lhs // ")/RHS(" // rhs // ") length don't match")
56-
end if
5752
first_alphabetically = min(lhs,rhs)
5853
end function
5954

0 commit comments

Comments
 (0)