aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois Dumont <francois.cppdevs@free.fr>2010-11-26 21:29:01 +0100
committerFrançois Dumont <fdumont@gcc.gnu.org>2010-11-26 20:29:01 +0000
commitbcd93c00abf72a5e820a32db5d9dd97603b407ea (patch)
treec2c18e2d66792407c4ffaf4014b81dc35d76f798
parent556618c1b3931eeee3f9da0c1c4217b4f67d470a (diff)
downloadgcc-bcd93c00abf72a5e820a32db5d9dd97603b407ea.zip
gcc-bcd93c00abf72a5e820a32db5d9dd97603b407ea.tar.gz
gcc-bcd93c00abf72a5e820a32db5d9dd97603b407ea.tar.bz2
libstdc++.exp [...]: Use remote_file delete for generated exe.
2010-11-26 François Dumont <francois.cppdevs@free.fr> * testsuite/lib/libstdc++.exp [check_v3_target_debug_mode]: Use remote_file delete for generated exe. [check_v3_target_profile_mode] Add. * testsuite/lib/dg-options.exp [dg-require-profile-mode]: Add * testsuite/ext/profile/mh.cc, profiler_algos.cc, all.cc: Use dg-require-profile-mode, remove explicit _GLIBCXX_PROFILE definition. From-SVN: r167188
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/testsuite/ext/profile/all.cc5
-rw-r--r--libstdc++-v3/testsuite/ext/profile/mh.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/profile/profiler_algos.cc2
-rw-r--r--libstdc++-v3/testsuite/lib/dg-options.exp9
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp52
6 files changed, 74 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index dc22b52..e61b788 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2010-11-26 François Dumont <francois.cppdevs@free.fr>
+
+ * testsuite/lib/libstdc++.exp [check_v3_target_debug_mode]: Use
+ remote_file delete for generated exe. [check_v3_target_profile_mode]
+ Add.
+ * testsuite/lib/dg-options.exp [dg-require-profile-mode]: Add
+ * testsuite/ext/profile/mh.cc, profiler_algos.cc, all.cc: Use
+ dg-require-profile-mode, remove explicit _GLIBCXX_PROFILE definition.
+
2010-11-25 François Dumont <francois.cppdevs@free.fr>
* src/debug.cc: Introduce a mutex pool in get_safe_base_mutex.
diff --git a/libstdc++-v3/testsuite/ext/profile/all.cc b/libstdc++-v3/testsuite/ext/profile/all.cc
index 57a55cc..152901e 100644
--- a/libstdc++-v3/testsuite/ext/profile/all.cc
+++ b/libstdc++-v3/testsuite/ext/profile/all.cc
@@ -1,5 +1,6 @@
-// { dg-options "-std=gnu++0x -O0 -D_GLIBCXX_PROFILE" }
-// { dg-options "-std=gnu++0x -O0 -D_GLIBCXX_PROFILE -D_GLIBCXX_PROFILE_NO_THREADS" { target { ! tls_native } } }
+// { dg-require-profile-mode "" }
+// { dg-options "-std=gnu++0x -O0" }
+// { dg-options "-std=gnu++0x -O0 -D_GLIBCXX_PROFILE_NO_THREADS" { target { ! tls_native } } }
// { dg-do compile }
// -*- C++ -*-
diff --git a/libstdc++-v3/testsuite/ext/profile/mh.cc b/libstdc++-v3/testsuite/ext/profile/mh.cc
index 1688ad5..0de83ed 100644
--- a/libstdc++-v3/testsuite/ext/profile/mh.cc
+++ b/libstdc++-v3/testsuite/ext/profile/mh.cc
@@ -1,4 +1,4 @@
-// { dg-options "-D_GLIBCXX_PROFILE" }
+// { dg-require-profile-mode "" }
// { dg-do compile { target *-*-linux* } }
// { dg-xfail-if "" { uclibc } { "*" } { "" } }
diff --git a/libstdc++-v3/testsuite/ext/profile/profiler_algos.cc b/libstdc++-v3/testsuite/ext/profile/profiler_algos.cc
index 5963cee..37dfbfe 100644
--- a/libstdc++-v3/testsuite/ext/profile/profiler_algos.cc
+++ b/libstdc++-v3/testsuite/ext/profile/profiler_algos.cc
@@ -1,4 +1,4 @@
-// { dg-options "-D_GLIBCXX_PROFILE" }
+// { dg-require-profile-mode "" }
// -*- C++ -*-
diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index e8d7f34..b75f516 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -35,6 +35,15 @@ proc dg-require-debug-mode { args } {
return
}
+proc dg-require-profile-mode { args } {
+ if { ![ check_v3_target_profile_mode ] } {
+ upvar dg-do-what dg-do-what
+ set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+ return
+ }
+ return
+}
+
proc dg-require-normal-mode { args } {
if { ![ check_v3_target_normal_mode ] } {
upvar dg-do-what dg-do-what
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 36b6e86..d94abfd 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -935,7 +935,7 @@ proc check_v3_target_debug_mode { } {
if [string match "" $lines] {
# No error message, compilation succeeded.
- file delete $exe
+ remote_file build delete $exe
set et_debug_mode 1
}
}
@@ -943,6 +943,56 @@ proc check_v3_target_debug_mode { } {
return $et_debug_mode
}
+proc check_v3_target_profile_mode { } {
+ global et_profile_mode
+ global tool
+
+ if { ![info exists et_profile_mode_target_name] } {
+ set et_profile_mode_target_name ""
+ }
+
+ # If the target has changed since we set the cached value, clear it.
+ set current_target [current_target_name]
+ if { $current_target != $et_profile_mode_target_name } {
+ verbose "check_v3_target_profile_mode: `$et_profile_mode_target_name'" 2
+ set et_profile_mode_target_name $current_target
+ if [info exists et_profile_mode] {
+ verbose "check_v3_target_profile_mode: removing cached result" 2
+ unset et_profile_mode
+ }
+ }
+
+ if [info exists et_profile_mode] {
+ verbose "check_v3_target_profile_mode: using cached result" 2
+ } else {
+ set et_profile_mode 0
+
+ # Set up and compile a C++ test program that depends
+ # on profile mode activated.
+ set src profile_mode[pid].cc
+ set exe profile_mode[pid].exe
+
+ set f [open $src "w"]
+ puts $f "#ifndef _GLIBCXX_PROFILE"
+ puts $f "# error No profile mode"
+ puts $f "#endif"
+ puts $f "int main()"
+ puts $f "{ return 0; }"
+ close $f
+
+ set lines [v3_target_compile $src $exe executable ""]
+ file delete $src
+
+ if [string match "" $lines] {
+ # No error message, compilation succeeded.
+ remote_file build delete $exe
+ set et_profile_mode 1
+ }
+ }
+ verbose "check_v3_target_profile_mode: $et_profile_mode" 2
+ return $et_profile_mode
+}
+
proc check_v3_target_normal_mode { } {
global et_normal_mode
global tool