Fix for PR gdb/1543.
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / whatis-exp.exp
1 # Copyright 1998, 1999, 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 <http://www.gnu.org/licenses/>.
15
16 # This file was written by Elena Zannoni (ezannoni@cygnus.com)
17
18 # This file is part of the gdb testsuite
19 #
20 # tests for whatis command on expressions.
21 # used in file eval.c. This flavor of whatis
22 # command performs evaluation of expressions w/o actually
23 # computing the value, but just the type
24 # of the result. It goes through the evaluate_subexp_standard
25 # with the EVAL_AVOID_SIDE_EFFECTS flag rather than EVAL_NORMAL
26 #
27
28 if $tracelevel then {
29 strace $tracelevel
30 }
31
32 #
33 # test running programs
34 #
35 set prms_id 0
36 set bug_id 0
37
38 set testfile "int-type"
39 set srcfile ${testfile}.c
40 set binfile ${objdir}/${subdir}/${testfile}
41 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
42 untested whatis-exp.exp
43 return -1
44 }
45
46
47 gdb_exit
48 gdb_start
49 gdb_reinitialize_dir $srcdir/$subdir
50 gdb_load ${binfile}
51
52
53 #
54 # set it up at a breakpoint so we can play with the variable values
55 #
56
57 if ![runto_main] then {
58 perror "couldn't run to breakpoint"
59 continue
60 }
61
62 #
63 # test expressions with "int" types
64 #
65
66 gdb_test "set variable x=14" "" "set variable x=14"
67 gdb_test "set variable y=2" "" "set variable y=2"
68 gdb_test "set variable z=2" "" "set variable z=2"
69 gdb_test "set variable w=3" "" "set variable w=3"
70
71 send_gdb "print x\n"
72 gdb_expect {
73 -re ".*14.*$gdb_prompt $" {
74 pass "print value of x"
75 }
76 -re ".*$gdb_prompt $" { fail "print value of x" }
77 timeout { fail "(timeout) print value of x" }
78 }
79
80
81 send_gdb "print y\n"
82 gdb_expect {
83 -re ".*2.*$gdb_prompt $" {
84 pass "print value of y"
85 }
86 -re ".*$gdb_prompt $" { fail "print value of y" }
87 timeout { fail "(timeout) print value of y" }
88 }
89
90 send_gdb "print z\n"
91 gdb_expect {
92 -re ".*2.*$gdb_prompt $" {
93 pass "print value of z"
94 }
95 -re ".*$gdb_prompt $" { fail "print value of z" }
96 timeout { fail "(timeout) print value of z" }
97 }
98
99 send_gdb "print w\n"
100 gdb_expect {
101 -re ".*3.*$gdb_prompt $" {
102 pass "print value of w"
103 }
104 -re ".*$gdb_prompt $" { fail "print value of w" }
105 timeout { fail "(timeout) print value of w" }
106 }
107
108
109
110 send_gdb "whatis x+y\n"
111 gdb_expect {
112 -re ".*type = int.*$gdb_prompt $" {
113 pass "whatis value of x+y"
114 }
115 -re ".*$gdb_prompt $" { fail "whatis value of x+y" }
116 timeout { fail "(timeout) whatis value of x+y" }
117 }
118
119 send_gdb "whatis x-y\n"
120 gdb_expect {
121 -re ".*type = int.*$gdb_prompt $" {
122 pass "whatis value of x-y"
123 }
124 -re ".*$gdb_prompt $" { fail "whatis value of x-y" }
125 timeout { fail "(timeout) whatis value of x-y" }
126 }
127
128 send_gdb "whatis x*y\n"
129 gdb_expect {
130 -re ".*type = int.*$gdb_prompt $" {
131 pass "whatis value of x*y"
132 }
133 -re ".*$gdb_prompt $" { fail "whatis value of x*y" }
134 timeout { fail "(timeout) whatis value of x*y" }
135 }
136
137 send_gdb "whatis x/y\n"
138 gdb_expect {
139 -re ".*type = int.*$gdb_prompt $" {
140 pass "whatis value of x/y"
141 }
142 -re ".*$gdb_prompt $" { fail "whatis value of x/y" }
143 timeout { fail "(timeout) whatis value of x/y" }
144 }
145
146 send_gdb "whatis x%y\n"
147 gdb_expect {
148 -re ".*type = int.*$gdb_prompt $" {
149 pass "whatis value of x%y"
150 }
151 -re ".*$gdb_prompt $" { fail "whatis value of x%y" }
152 timeout { fail "(timeout) whatis value of x%y" }
153 }
154
155
156
157 send_gdb "whatis x=y\n"
158 gdb_expect {
159 -re ".*type = int.*$gdb_prompt $" {
160 pass "whatis value of x=y"
161 }
162 -re ".*$gdb_prompt $" { fail "whatis value of x=y" }
163 timeout { fail "(timeout) whatis value of x=y" }
164 }
165
166
167 send_gdb "whatis x+=2\n"
168 gdb_expect {
169 -re ".*type = int.*$gdb_prompt $" {
170 pass "whatis value of x+=2"
171 }
172 -re ".*$gdb_prompt $" { fail "whatis value of x+=2" }
173 timeout { fail "(timeout) whatis value of x+=2" }
174 }
175
176
177 send_gdb "whatis ++x\n"
178 gdb_expect {
179 -re ".*type = int.*$gdb_prompt $" {
180 pass "whatis value of ++x"
181 }
182 -re ".*$gdb_prompt $" { fail "whatis value of ++x" }
183 timeout { fail "(timeout) whatis value of ++x" }
184 }
185
186 send_gdb "whatis --x\n"
187 gdb_expect {
188 -re ".*type = int.*$gdb_prompt $" {
189 pass "whatis value of --x"
190 }
191 -re ".*$gdb_prompt $" { fail "whatis value of --x" }
192 timeout { fail "(timeout) whatis value of --x" }
193 }
194
195 send_gdb "whatis x++\n"
196 gdb_expect {
197 -re ".*type = int.*$gdb_prompt $" {
198 pass "whatis value of x++"
199 }
200 -re ".*$gdb_prompt $" { fail "whatis value of x++" }
201 timeout { fail "(timeout) whatis value of x++" }
202 }
203
204 send_gdb "whatis x--\n"
205 gdb_expect {
206 -re ".*type = int.*$gdb_prompt $" {
207 pass "whatis value of x--"
208 }
209 -re ".*$gdb_prompt $" { fail "whatis value of x--" }
210 timeout { fail "(timeout) whatis value of x--" }
211 }
212
213 gdb_exit
214 return 0
This page took 0.090737 seconds and 4 git commands to generate.