OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gdb-6.8/] [pre-binutils-2.20.1-sync/] [gdb/] [testsuite/] [gdb.ada/] [array_return.exp] - Blame information for rev 223

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
# Copyright 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
2
#
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.
7
#
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.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program.  If not, see .
15
 
16
if $tracelevel then {
17
    strace $tracelevel
18
}
19
 
20
load_lib "ada.exp"
21
 
22
set testdir "array_return"
23
set testfile "${testdir}/p"
24
set srcfile ${srcdir}/${subdir}/${testfile}.adb
25
set binfile ${objdir}/${subdir}/${testfile}
26
 
27
file mkdir ${objdir}/${subdir}/${testdir}
28
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
29
  return -1
30
}
31
 
32
gdb_exit
33
gdb_start
34
gdb_reinitialize_dir $srcdir/$subdir
35
gdb_load ${binfile}
36
 
37
# Start the inferior
38
 
39
if ![runto_main] then {
40
   fail "Cannot run to main, testcase aborted"
41
   return 0
42
}
43
 
44
# Create a breakpoint in each function from which we want to test
45
# the "finish" command.
46
 
47
gdb_test "break create_small" \
48
         "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
49
         "insert breakpoint in create_small"
50
 
51
gdb_test "break create_large" \
52
         "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
53
         "insert breakpoint in create_large"
54
 
55
gdb_test "break create_small_float_vector" \
56
         "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
57
         "insert breakpoint in create_small_float_vector"
58
 
59
# Then continue until reaching the first breakpoint inside Create_Small,
60
# and then do a "finish".
61
 
62
gdb_test "cont" \
63
         "Breakpoint \[0-9\]+, pck.create_small \\(\\).*" \
64
         "Continuing to Create_Small"
65
 
66
gdb_test "finish" \
67
         "Value returned is \\\$\[0-9\]+ = \\(1, 1\\)" \
68
         "value printed by finish of Create_Small"
69
 
70
# Now continue until reaching the second breakpoint inside Create_Large,
71
# and then do another "finish".
72
 
73
gdb_test "cont" \
74
         "Breakpoint \[0-9\]+, pck.create_large \\(\\).*" \
75
         "Continuing to Create_Large"
76
 
77
# On hppa32, the value returned is too large to be returned via a register.
78
# Instead, it is returned using the struct convention, and the debugger
79
# unfortunately cannot find the address of the result.  The following
80
# test is therefore expected to fail for all hppa targets except hppa64.
81
if { ! [istarget "hppa*64*-*-*"] } then {
82
  setup_xfail "hppa*-*-*"
83
}
84
 
85
gdb_test "finish" \
86
         "Value returned is \\\$\[0-9\]+ = \\(2, 2, 2, 2\\)" \
87
         "value printed by finish of Create_Large"
88
 
89
# Now continue until reaching the third breakpoint, and then do another
90
# "finish" again.
91
 
92
gdb_test "cont" \
93
         "Breakpoint \[0-9\]+, pck.create_small_float_vector \\(\\).*" \
94
         "Continuing to Create_Small_Float_Vector"
95
 
96
gdb_test "finish" \
97
         "Value returned is \\\$\[0-9\]+ = \\(4.25, 4.25\\)" \
98
         "value printed by finish of Create_Small_Float_Vector"
99
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.