summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/guality/guality.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/guality/guality.exp')
-rw-r--r--gcc/testsuite/gcc.dg/guality/guality.exp82
1 files changed, 6 insertions, 76 deletions
diff --git a/gcc/testsuite/gcc.dg/guality/guality.exp b/gcc/testsuite/gcc.dg/guality/guality.exp
index b3f3319b102..d4ee6864ba4 100644
--- a/gcc/testsuite/gcc.dg/guality/guality.exp
+++ b/gcc/testsuite/gcc.dg/guality/guality.exp
@@ -1,6 +1,12 @@
# This harness is for tests that should be run at all optimisation levels.
load_lib gcc-dg.exp
+load_lib gcc-gdb-test.exp
+
+# Disable on darwin until radr://7264615 is resolved.
+if { [istarget *-*-darwin*] } {
+ return
+}
proc check_guality {args} {
set result [eval check_compile guality_check executable $args "-g -O0"]
@@ -15,82 +21,6 @@ proc check_guality {args} {
return $ret
}
-# Utility for testing variable values using gdb, invoked via dg-final.
-# Call pass if variable has the desired value, otherwise fail.
-#
-# Argument 0 is the line number on which to put a breakpoint
-# Argument 1 is the name of the variable to be checked
-# Argument 2 is the expected value of the variable
-# Argument 3 handles expected failures and the like
-proc gdb-test { args } {
- if { ![isnative] || [is_remote target] } { return }
-
- if { [llength $args] >= 4 } {
- switch [dg-process-target [lindex $args 3]] {
- "S" { }
- "N" { return }
- "F" { setup_xfail "*-*-*" }
- "P" { }
- }
- }
-
- # This assumes that we are three frames down from dg-test, and that
- # it still stores the filename of the testcase in a local variable "name".
- # A cleaner solution would require a new DejaGnu release.
- upvar 2 name testcase
- upvar 2 prog prog
-
- set gdb_name $::env(GUALITY_GDB_NAME)
- set testname "$testcase line [lindex $args 0] [lindex $args 1] == [lindex $args 2]"
- set output_file "[file rootname [file tail $prog]].exe"
- set cmd_file "[file rootname [file tail $prog]].gdb"
-
- set fd [open $cmd_file "w"]
- puts $fd "break [lindex $args 0]"
- puts $fd "run"
- puts $fd "print [lindex $args 1]"
- puts $fd "print [lindex $args 2]"
- puts $fd "quit"
- close $fd
-
- send_log "Spawning: $gdb_name -nx -nw -quiet -x $cmd_file ./$output_file\n"
- set res [remote_spawn target "$gdb_name -nx -nw -quiet -x $cmd_file ./$output_file"]
- if { $res < 0 || $res == "" } {
- unsupported "$testname"
- return
- }
-
- remote_expect target [timeout_value] {
- -re {[\n\r]\$1 = ([^\n\r]*)[\n\r]+\$2 = ([^\n\r]*)[\n\r]} {
- set first $expect_out(1,string)
- set second $expect_out(2,string)
- if { $first == $second } {
- pass "$testname"
- } else {
- send_log "$first != $second\n"
- fail "$testname"
- }
- remote_close target
- return
- }
- # Too old GDB
- -re "Unhandled dwarf expression|Error in sourced command file" {
- unsupported "$testname"
- remote_close target
- return
- }
- timeout {
- unsupported "$testname"
- remote_close target
- return
- }
- }
-
- remote_close target
- unsupported "$testname"
- return
-}
-
dg-init
global GDB