diff mbox

[gomp4] libgomp: Only test with configured (supported) offloading devices.

Message ID 878ui5ubw7.fsf@schwinge.name
State New
Headers show

Commit Message

Thomas Schwinge Dec. 17, 2014, 10:52 p.m. UTC
Hi!

Committed to gomp-4_0-branch in r218846:

commit cf4f8a78be8da33b991590a1ac24cd001b58bdb7
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Wed Dec 17 22:52:20 2014 +0000

    libgomp: Only test with configured (supported) offloading devices.
    
    	libgomp/
    	* testsuite/lib/libgomp.exp: Set offload_targets_s, and
    	offload_targets_s_openacc.
    	(check_effective_target_openacc_nvidia_accel_selected): Look for
    	global offload_target_openacc instead of ACC_DEVICE_TYPE
    	environment variable.
    	* testsuite/libgomp.oacc-c++/c++.exp: Loop through
    	offload_targets_s_openacc.
    	* testsuite/libgomp.oacc-c/c.exp: Likewise.
    	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@218846 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libgomp/ChangeLog.gomp                             | 13 +++++++++++++
 libgomp/testsuite/lib/libgomp.exp                  | 21 +++++++++++++++++----
 libgomp/testsuite/libgomp.oacc-c++/c++.exp         | 14 ++++----------
 libgomp/testsuite/libgomp.oacc-c/c.exp             | 14 ++++----------
 libgomp/testsuite/libgomp.oacc-fortran/fortran.exp | 14 ++++----------
 5 files changed, 42 insertions(+), 34 deletions(-)



Grüße,
 Thomas
diff mbox

Patch

diff --git libgomp/ChangeLog.gomp libgomp/ChangeLog.gomp
index 9c23c80..6181f1a 100644
--- libgomp/ChangeLog.gomp
+++ libgomp/ChangeLog.gomp
@@ -1,4 +1,17 @@ 
 2014-12-17  Thomas Schwinge  <thomas@codesourcery.com>
+	    Tom de Vries  <tom@codesourcery.com>
+
+	* testsuite/lib/libgomp.exp: Set offload_targets_s, and
+	offload_targets_s_openacc.
+	(check_effective_target_openacc_nvidia_accel_selected): Look for
+	global offload_target_openacc instead of ACC_DEVICE_TYPE
+	environment variable.
+	* testsuite/libgomp.oacc-c++/c++.exp: Loop through
+	offload_targets_s_openacc.
+	* testsuite/libgomp.oacc-c/c.exp: Likewise.
+	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
+
+2014-12-17  Thomas Schwinge  <thomas@codesourcery.com>
 
 	* testsuite/Makefile.am: Don't export OFFLOAD_TARGETS,
 	OFFLOAD_ADDITIONAL_OPTIONS, and OFFLOAD_ADDITIONAL_LIB_PATHS...
diff --git libgomp/testsuite/lib/libgomp.exp libgomp/testsuite/lib/libgomp.exp
index 6600c25..1e69098 100644
--- libgomp/testsuite/lib/libgomp.exp
+++ libgomp/testsuite/lib/libgomp.exp
@@ -35,6 +35,21 @@  load_gcc_lib fortran-modules.exp
 # Try to load a test support file, built during libgomp configuration.
 load_file libgomp-test-support.exp
 
+# Populate offload_targets_s (offloading targets separated by a space), and
+# offload_targets_s_openacc (the same, but with OpenACC names).
+set offload_targets_s [split $offload_targets ","]
+# OpenACC spells some of them a little differently.
+set offload_targets_s_openacc {}
+foreach offload_target_openacc $offload_targets_s {
+    switch $offload_target_openacc {
+	nvptx {
+	    set offload_target_openacc "nvidia"
+	}
+    }
+    lappend offload_targets_s_openacc "$offload_target_openacc"
+}
+lappend offload_targets_s_openacc "host"
+
 set dg-do-what-default run
 
 #
@@ -320,10 +335,8 @@  proc check_effective_target_openacc_nvidia_accel_selected { } {
     if { ![check_effective_target_openacc_nvidia_accel_present] } {
 	return 0;
     }
-    if { ![info exists ::env(ACC_DEVICE_TYPE)] } {
-	return 0;
-    }
-    if { $::env(ACC_DEVICE_TYPE) == "nvidia" } {
+    global offload_target_openacc
+    if { $offload_target_openacc == "nvidia" } {
         return 1;
     }
     return 0;
diff --git libgomp/testsuite/libgomp.oacc-c++/c++.exp libgomp/testsuite/libgomp.oacc-c++/c++.exp
index 2e2b618..81d445c 100644
--- libgomp/testsuite/libgomp.oacc-c++/c++.exp
+++ libgomp/testsuite/libgomp.oacc-c++/c++.exp
@@ -68,18 +68,12 @@  if { $lang_test_file_found } {
 	set libstdcxx_includes ""
     }
 
-    # Todo: get list of accelerators from configure options --enable-accelerator.
-    set accels { "nvidia" "host_nonshm" }
-
-    # Run on host (or fallback) accelerator.
-    lappend accels "host"
-
     # Test OpenACC with available accelerators.
-    foreach accel $accels {
-	set tagopt "-DACC_DEVICE_TYPE_$accel=1"
+    foreach offload_target_openacc $offload_targets_s_openacc {
+	set tagopt "-DACC_DEVICE_TYPE_$offload_target_openacc=1"
 
 	# Todo: Determine shared memory or not using run-time test.
-	switch $accel {
+	switch $offload_target_openacc {
 	    host {
 		set acc_mem_shared 1
 	    }
@@ -102,7 +96,7 @@  if { $lang_test_file_found } {
 	set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared"
 
 	# Todo: Verify that this works for both local and remote testing.
-	setenv ACC_DEVICE_TYPE $accel
+	setenv ACC_DEVICE_TYPE $offload_target_openacc
 
 	dg-runtest $tests "$tagopt" $libstdcxx_includes
     }
diff --git libgomp/testsuite/libgomp.oacc-c/c.exp libgomp/testsuite/libgomp.oacc-c/c.exp
index d7e5536..85943f0 100644
--- libgomp/testsuite/libgomp.oacc-c/c.exp
+++ libgomp/testsuite/libgomp.oacc-c/c.exp
@@ -34,20 +34,14 @@  set ld_library_path $always_ld_library_path
 append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST]
 set_ld_library_path_env_vars
 
-# Todo: get list of accelerators from configure options --enable-accelerator.
-set accels { "nvidia" "host_nonshm" }
-
-# Run on host (or fallback) accelerator.
-lappend accels "host"
-
 # Test OpenACC with available accelerators.
 set SAVE_ALWAYS_CFLAGS "$ALWAYS_CFLAGS"
-foreach accel $accels {
+foreach offload_target_openacc $offload_targets_s_openacc {
     set ALWAYS_CFLAGS "$SAVE_ALWAYS_CFLAGS"
-    set tagopt "-DACC_DEVICE_TYPE_$accel=1"
+    set tagopt "-DACC_DEVICE_TYPE_$offload_target_openacc=1"
 
     # Todo: Determine shared memory or not using run-time test.
-    switch $accel {
+    switch $offload_target_openacc {
 	host {
 	    set acc_mem_shared 1
 	}
@@ -70,7 +64,7 @@  foreach accel $accels {
     set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared"
 
     # Todo: Verify that this works for both local and remote testing.
-    setenv ACC_DEVICE_TYPE $accel
+    setenv ACC_DEVICE_TYPE $offload_target_openacc
 
     dg-runtest $tests "$tagopt" $DEFAULT_CFLAGS
 }
diff --git libgomp/testsuite/libgomp.oacc-fortran/fortran.exp libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
index ae11748..a68e039 100644
--- libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
+++ libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
@@ -65,18 +65,12 @@  if { $lang_test_file_found } {
     append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST]
     set_ld_library_path_env_vars
 
-    # Todo: get list of accelerators from configure options --enable-accelerator.
-    set accels { "nvidia" "host_nonshm" }
-
-    # Run on host (or fallback) accelerator.
-    lappend accels "host"
-
     # Test OpenACC with available accelerators.
-    foreach accel $accels {
-	set tagopt "-DACC_DEVICE_TYPE_$accel=1"
+    foreach offload_target_openacc $offload_targets_s_openacc {
+	set tagopt "-DACC_DEVICE_TYPE_$offload_target_openacc=1"
 
 	# Todo: Determine shared memory or not using run-time test.
-	switch $accel {
+	switch $offload_target_openacc {
 	    host {
 		set acc_mem_shared 1
 	    }
@@ -93,7 +87,7 @@  if { $lang_test_file_found } {
 	set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared"
 
 	# Todo: Verify that this works for both local and remote testing.
-	setenv ACC_DEVICE_TYPE $accel
+	setenv ACC_DEVICE_TYPE $offload_target_openacc
 
 	# For Fortran we're doing torture testing, as Fortran has far more tests
 	# with arrays etc. that testing just -O0 or -O2 is insufficient, that is