Skip to content

Commit ebcdc33

Browse files
author
Damian Rouson
authored
Merge pull request #291 from sourceryinstitute/add-regression-suite
Add regression test from Edmondo
2 parents 7e56c59 + e1c82a8 commit ebcdc33

File tree

6 files changed

+66
-0
lines changed

6 files changed

+66
-0
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,9 @@ if(opencoarrays_aware_compiler)
406406
set_property(TEST coarray_navier_stokes PROPERTY PASS_REGULAR_EXPRESSION "Test passed.")
407407
endif()
408408
endif()
409+
410+
# Regression tests based on reported issues
411+
add_mpi_test(convert-before-put 3 ${tests_root}/regression/reported/convert-before-put)
409412
else()
410413
add_test(co_sum_extension ${tests_root}/unit/extensions/test-co_sum-extension.sh)
411414
set_property(TEST co_sum_extension PROPERTY PASS_REGULAR_EXPRESSION "Test passed.")

src/tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ endif()
1818
add_subdirectory(integration)
1919
add_subdirectory(unit)
2020
add_subdirectory(installation)
21+
add_subdirectory(regression)

src/tests/regression/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(reported)

src/tests/regression/open/issue-290

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../reported/issue-290-convert-type-before-put.f90
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
add_executable(convert-before-put issue-290-convert-type-before-put.f90)
2+
target_link_libraries(convert-before-put OpenCoarrays)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
! BSD 3-Clause License
2+
!
3+
! Copyright (c) 2016, Sourcery Institute
4+
! All rights reserved.
5+
!
6+
! Redistribution and use in source and binary forms, with or without
7+
! modification, are permitted provided that the following conditions are met:
8+
!
9+
! * Redistributions of source code must retain the above copyright notice, this
10+
! list of conditions and the following disclaimer.
11+
!
12+
! * Redistributions in binary form must reproduce the above copyright notice,
13+
! this list of conditions and the following disclaimer in the documentation
14+
! and/or other materials provided with the distribution.
15+
!
16+
! * Neither the name of the copyright holder nor the names of its
17+
! contributors may be used to endorse or promote products derived from
18+
! this software without specific prior written permission.
19+
!
20+
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21+
! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22+
! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23+
! DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24+
! FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25+
! DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26+
! SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27+
! CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28+
! OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29+
! OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30+
31+
! Comments preceded by "!!" are formatted for the FORD docoumentation generator
32+
program main
33+
!! author: Damian Rouson
34+
!! date: 2016-12-21
35+
!! category: regression
36+
!! Test whether implicit type conversion occurs before coarray put
37+
!! OpenCoarrays issue #280
38+
use iso_fortran_env, only : error_unit
39+
implicit none
40+
real :: a[*]
41+
integer :: receiver
42+
associate(me=>this_image(),ni=>num_images())
43+
if (me == 1) then
44+
put_realme_on_remote_image: do receiver= 2, ni
45+
a[receiver] = receiver ! implicit real(receiver) needed here
46+
sync images (receiver) ! notify remote image that data has been put
47+
end do put_realme_on_remote_image
48+
else
49+
sync images (1) ! await notification of data put by image 1
50+
if (a/=real(me)) then
51+
write(error_unit,*) "Test failed on image ",me,": received ",a,", expected ",real(me)
52+
error stop
53+
end if
54+
end if
55+
sync all ! wait for every image to pass the test
56+
if (me==1) print *,"Test passed."
57+
end associate
58+
end program

0 commit comments

Comments
 (0)