URL
                    https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
                
            Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [lib/] [gcc-gdb-test.exp] - Rev 478
Go to most recent revision | Compare with Previous | Blame | View Log
# Copyright (C) 2009 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 3 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with GCC; see the file COPYING3. If not see# <http://www.gnu.org/licenses/>.# 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 likeproc 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 testcaseupvar 2 prog progset 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 $fdsend_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 targetreturn}# Too old GDB-re "Unhandled dwarf expression|Error in sourced command file" {unsupported "$testname"remote_close targetreturn}timeout {unsupported "$testname"remote_close targetreturn}}remote_close targetunsupported "$testname"return}
Go to most recent revision | Compare with Previous | Blame | View Log

