binutils-gdb/gdb/testsuite/gdb.base/return.exp
Joel Brobecker 61baf725ec update copyright year range in GDB files
This applies the second part of GDB's End of Year Procedure, which
updates the copyright year range in all of GDB's files.

gdb/ChangeLog:

        Update copyright year range in all GDB files.
2017-01-01 10:52:34 +04:00

102 lines
3.1 KiB
Text

# Copyright (C) 1992-2017 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 this program. If not, see <http://www.gnu.org/licenses/>.
# This file was written by Jeff Law. (law@cs.utah.edu)
if { [prepare_for_testing "failed to prepare" "return"] } {
return -1
}
set skip_float_test [gdb_skip_float_test]
proc return_tests { } {
global gdb_prompt skip_float_test
if { ! [ runto func1 ] } then { return 0 }
gdb_test_multiple "return" "simple return" {
-re "Make .* return now.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-re "func1 ..;.*$gdb_prompt $" {
send_gdb "step\n"
exp_continue
}
-re ".*in main after func1.*$gdb_prompt $" {
pass "simple return"
}
}
# Set breakpoints in other interesting functions.
gdb_test "break func2" ".*" "break func2"
gdb_test "break func3" ".*" "break func3"
gdb_test "continue" "return -5;" "continue to return of -5"
gdb_test_multiple "return 5" "return value 5" {
-re "Make .* return now.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-re ".*tmp2 = func2.*$gdb_prompt $" {
# pass without comment
}
}
gdb_test "next" "tmp3 = func3.*" "next over call to func2"
gdb_test "p tmp2" ".* = 5" "correct value returned (integer test)"
gdb_test "continue" "return -5.0;" "continue to return of -5.0"
# Return of a double does not work for 68hc11 (need struct return
# in memory).
setup_xfail "m6811-*-*"
gdb_test_multiple "return 5.0" "return value 5.0" {
-re "Make .* return now.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-re ".*tmp3 = func3.*$gdb_prompt $" {
# pass without comment
}
}
setup_xfail "m6811-*-*"
gdb_test "next" "printf.*" "next over call to func3"
# This test also fails for sparc Solaris 2.3 & 2.4, but passes under 2.5
# At the time the `next' is issued, the floating point unit for the
# process is not yet initialized, and the storing of the floating
# point value to the floating point return register is ignored.
# Xfail it for current versions that are known to fail. Presumably
# if some future version does initialize the floating point unit at
# process start, making this test pass, it will be for a version that
# is not xfailed.
setup_xfail "sparc-*-solaris2.3*" "sparc-*-solaris2.4*" "m6811-*-*"
if {!$skip_float_test} {
gdb_test "p tmp3" ".* = 5.*" \
"correct value returned double test (known problem with sparc solaris)"
}
}
set prev_timeout $timeout
set timeout 30
return_tests
set timeout $prev_timeout