1 # Copyright
2005-2015 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this
program.
If not
, see
<http
://www.gnu.org
/licenses
/>.
18 if { [skip_ada_tests
] } { return -1 }
20 standard_ada_testfile p
22 if {[gdb_compile_ada
"${srcfile}" "${binfile}" executable {debug}] != ""} {
26 clean_restart $
{testfile
}
30 if ![runto_main
] then {
31 fail
"Cannot run to main, testcase aborted"
35 # Create a breakpoint in each function from which we want to test
36 # the
"finish" command.
38 gdb_test
"break create_small" \
39 "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
40 "insert breakpoint in create_small"
42 gdb_test
"break create_large" \
43 "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
44 "insert breakpoint in create_large"
46 gdb_test
"break create_small_float_vector" \
47 "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
48 "insert breakpoint in create_small_float_vector"
50 #
Then continue until reaching the first breakpoint inside Create_Small
,
51 # and
then do a
"finish".
54 "Breakpoint \[0-9\]+, pck.create_small \\(\\).*" \
55 "Continuing to Create_Small"
58 "Value returned is \\\$\[0-9\]+ = \\(1, 1\\)" \
59 "value printed by finish of Create_Small"
61 # Now
continue until reaching the second breakpoint inside Create_Large
,
62 # and
then do another
"finish".
65 "Breakpoint \[0-9\]+, pck.create_large \\(\\).*" \
66 "Continuing to Create_Large"
68 #
On hppa32
, the value returned is too large to be returned via a register.
69 # Instead
, it is returned using the struct convention
, and the debugger
70 # unfortunately cannot find the address of the result. The following
71 # test is therefore expected to fail
for all hppa targets except hppa64.
72 if { ! [istarget
"hppa*64*-*-*"] } then {
73 setup_xfail
"hppa*-*-*"
77 "Value returned is \\\$\[0-9\]+ = \\(2, 2, 2, 2\\)" \
78 "value printed by finish of Create_Large"
80 # Now
continue until reaching the third breakpoint
, and
then do another
84 "Breakpoint \[0-9\]+, pck.create_small_float_vector \\(\\).*" \
85 "Continuing to Create_Small_Float_Vector"
88 "Value returned is \\\$\[0-9\]+ = \\(4.25, 4.25\\)" \
89 "value printed by finish of Create_Small_Float_Vector"