[libgomp, openacc, testsuite] Fix async/wait logic in lib-13.f90
authorTom de Vries <tdevries@suse.de>
Thu, 26 Jul 2018 07:52:35 +0000 (07:52 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 26 Jul 2018 07:52:35 +0000 (07:52 +0000)
The purpose of the lib-13.f90 test-case is to test acc_wait_all_async.  The
test indeed calls acc_wait_all_async, but then subsequentlys calls
acc_wait_all, so the acc_wait_all_async functionality is not tested.
Furthermore, all acc_async_test calls are placed in a location where they are
not guaranteed to succeed, which explains why there's an xfail for the lower
optimization levels.

This patch fixes the problems by replacing acc_wait_all with an acc_wait on
the async id used for the acc_wait_all_async call, and moving the
acc_async_test calls to the correct locations.

Reg-tested on x86_64 with nvptx accelerator.

2018-07-26  Tom de Vries  <tdevries@suse.de>

* testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
acc_wait.  Move acc_async_test calls to correct locations.  Remove
xfail.

From-SVN: r262989

libgomp/ChangeLog
libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90

index 098f469d61cf6b7e9601d47da6033fa27e0870a6..ac8c5b6409166d5919d30baa01e7c91ec19c784f 100644 (file)
@@ -1,3 +1,9 @@
+2018-07-26  Tom de Vries  <tdevries@suse.de>
+
+       * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
+       acc_wait.  Move acc_async_test calls to correct locations.  Remove
+       xfail.
+
 2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
        Thomas Koenig <tkoenig@gcc.gnu.org>
 
index 6d713b1cd95dcc8cfdf950115f5ae34a0801b488..da944c35de9445b45865d8a15d5387d594963a96 100644 (file)
@@ -1,5 +1,4 @@
 ! { dg-do run }
-! { dg-xfail-run-if "TODO" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } }
 
 program main
   use openacc
@@ -22,13 +21,12 @@ program main
     end do
   !$acc end data
 
-  if (acc_async_test (1) .neqv. .TRUE.) call abort
-  if (acc_async_test (2) .neqv. .TRUE.) call abort
-
   call acc_wait_all_async (nprocs + 1)
 
-  if (acc_async_test (nprocs + 1) .neqv. .TRUE.) call abort
+  call acc_wait (nprocs + 1)
 
-  call acc_wait_all ()
+  if (acc_async_test (1) .neqv. .TRUE.) call abort
+  if (acc_async_test (2) .neqv. .TRUE.) call abort
+  if (acc_async_test (nprocs + 1) .neqv. .TRUE.) call abort
 
 end program