1 # Copyright (C) 1998 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 2 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, write to the Free Software
15 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 # Please email any bugs, comments, and/or additions to this file to:
18 # bug-gdb@prep.ai.mit.edu
20 # written by Elena Zannoni (ezannoni@cygnus.com)
22 # testing overloaded operators resolution.
24 # source file "userdef.cc"
32 # Check to see if we have an executable to test. If not, then either we
33 # haven't tried to compile one, or the compilation failed for some reason.
34 # In either case, just notify the user and skip the tests in this file.
36 set testfile "userdef"
37 set srcfile ${testfile}.cc
38 set binfile ${objdir}/${subdir}/${testfile}
40 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
41 gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
47 gdb_reinitialize_dir $srcdir/$subdir
51 if ![runto_main] then {
52 perror "couldn't run to breakpoint"
56 send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
59 -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
62 -re ".*$gdb_prompt $" { pass "up from marker1" }
63 timeout { fail "up from marker1" }
66 -re "$gdb_prompt $" { fail "continue to marker1" }
67 timeout { fail "(timeout) continue to marker1" }
72 send_gdb "print one+two\n"
74 -re "FIXME.*$gdb_prompt $" {
75 pass "print value of one + two"
77 -re ".*$gdb_prompt $" { xfail "print value of one two" }
78 timeout { fail "(timeout) print value of one two" }
81 send_gdb "print one-two\n"
83 -re ".*FIXME.*$gdb_prompt $" {
84 pass "print value of one - two"
86 -re ".*$gdb_prompt $" { xfail "print value of one - two" }
87 timeout { fail "(timeout) print value of one - two" }
90 send_gdb "print one*two\n"
92 -re ".*FIXME.*$gdb_prompt $" {
93 pass "print value of one * two"
95 -re ".*$gdb_prompt $" { xfail "print value of one * two" }
96 timeout { fail "(timeout) print value of one * two" }
99 send_gdb "print one/two\n"
101 -re ".*FIXME.*$gdb_prompt $" {
102 pass "print value of one / two"
104 -re ".*$gdb_prompt $" { xfail "print value of one / two" }
105 timeout { fail "(timeout) print value of one / two" }
108 send_gdb "print one%two\n"
110 -re ".*FIXME.*$gdb_prompt $" {
111 pass "print value of one % two"
113 -re ".*$gdb_prompt $" { xfail "print value of one % two" }
114 timeout { fail "(timeout) print value of one % two" }
117 send_gdb "print one&&two\n"
119 -re ".*FIXME.*$gdb_prompt $" {
120 pass "print value of one && two"
122 -re ".*$gdb_prompt $" { xfail "print value of one && two" }
123 timeout { fail "(timeout) print value of one && two" }
126 send_gdb "print one||two\n"
128 -re ".*FIXME.*$gdb_prompt $" {
129 pass "print value of one|| two"
131 -re ".*$gdb_prompt $" { xfail "print value of one|| two" }
132 timeout { fail "(timeout) print value of one|| two" }
135 send_gdb "print one&two\n"
137 -re ".*FIXME.*$gdb_prompt $" {
138 pass "print value of one & two"
140 -re ".*$gdb_prompt $" { xfail "print value of one & two" }
141 timeout { fail "(timeout) print value of one & two" }
144 send_gdb "print one|two\n"
146 -re ".*FIXME.*$gdb_prompt $" {
147 pass "print value of one | two"
149 -re ".*$gdb_prompt $" { xfail "print value of one | two" }
150 timeout { fail "(timeout) print value of one | two" }
153 send_gdb "print one ^ two\n"
155 -re ".*FIXME.*$gdb_prompt $" {
156 pass "print value of one ^ two"
158 -re ".*$gdb_prompt $" { xfail "print value of one ^ two" }
159 timeout { fail "(timeout) print value of one ^ two" }
162 send_gdb "print one < two\n"
164 -re ".*FIXME.*$gdb_prompt $" {
165 pass "print value of one < two"
167 -re ".*$gdb_prompt $" { xfail "print value of one < two" }
168 timeout { fail "(timeout) print value of one < two" }
171 send_gdb "print one <= two\n"
173 -re ".*FIXME.*$gdb_prompt $" {
174 pass "print value of one <= two"
176 -re ".*$gdb_prompt $" { xfail "print value of one <= two" }
177 timeout { fail "(timeout) print value of one <= two" }
180 send_gdb "print one > two\n"
182 -re ".*FIXME.*$gdb_prompt $" {
183 pass "print value of one > two"
185 -re ".*$gdb_prompt $" { xfail "print value of one > two" }
186 timeout { fail "(timeout) print value of one > two" }
189 send_gdb "print one >= two\n"
191 -re ".*FIXME.*$gdb_prompt $" {
192 pass "print value of one >= two"
194 -re ".*$gdb_prompt $" { xfail "print value of one >= two" }
195 timeout { fail "(timeout) print value of one >= two" }
199 send_gdb "print one==two\n"
201 -re ".*FIXME.*$gdb_prompt $" {
202 pass "print value of one == two"
204 -re ".*$gdb_prompt $" { xfail "print value of one == two" }
205 timeout { fail "(timeout) print value of one == two" }
208 send_gdb "print one!=two\n"
210 -re ".*FIXME.*$gdb_prompt $" {
211 pass "print value of one != two"
213 -re ".*$gdb_prompt $" { xfail "print value of one != two" }
214 timeout { fail "(timeout) print value of one != two" }
217 send_gdb "print one<<31\n"
219 -re ".*FIXME.*$gdb_prompt $" {
220 pass "print value of one<<31"
222 -re ".*$gdb_prompt $" { xfail "print value of one<<31" }
223 timeout { fail "(timeout) print value of one<<31" }
226 send_gdb "print one>>31\n"
228 -re ".*FIXME.*$gdb_prompt $" {
229 pass "print value of one>>31"
231 -re ".*$gdb_prompt $" { xfail "print value of one>>31" }
232 timeout { fail "(timeout) print value of one>>31" }
235 send_gdb "print !one\n"
237 -re ".*FIXME.*$gdb_prompt $" {
238 pass "print value of !one"
240 -re ".*$gdb_prompt $" { xfail "print value of !one" }
241 timeout { fail "(timeout) print value of !one" }
244 send_gdb "print ~one\n"
246 -re ".*FIXME.*$gdb_prompt $" {
247 pass "print value of ~one"
249 -re ".*$gdb_prompt $" { xfail "print value of ~one" }
250 timeout { fail "(timeout) print value of ~one" }
253 send_gdb "print -one\n"
255 -re ".*FIXME.*$gdb_prompt $" {
256 pass "print value of -one"
258 -re ".*$gdb_prompt $" { xfail "print value of -one" }
259 timeout { fail "(timeout) print value of -one" }
262 send_gdb "print one++\n"
264 -re ".*FIXME.*$gdb_prompt $" {
265 pass "print value of one++"
267 -re ".*$gdb_prompt $" { xfail "print value of one++" }
268 timeout { fail "(timeout) print value of one++" }
271 send_gdb "print ++one\n"
273 -re ".*FIXME.*$gdb_prompt $" {
274 pass "print value of ++one>>31"
276 -re ".*$gdb_prompt $" { xfail "print value of ++one" }
277 timeout { fail "(timeout) print value of ++one" }
280 send_gdb "print one--\n"
282 -re ".*.FIXME*$gdb_prompt $" {
283 pass "print value of one-->>31"
285 -re ".*$gdb_prompt $" { xfail "print value of one-->>31" }
286 timeout { fail "(timeout) print value of one-->>31" }
289 send_gdb "print --one\n"
291 -re ".*FIXME.*$gdb_prompt $" {
292 pass "print value of --one"
294 -re ".*$gdb_prompt $" { xfail "print value of --one" }
295 timeout { fail "(timeout) print value of --one" }
298 send_gdb "print one+=7\n"
300 -re ".*FIXME.*$gdb_prompt $" {
301 pass "print value of one+=7"
303 -re ".*$gdb_prompt $" { xfail "print value of one+=7" }
304 timeout { fail "(timeout) print value of one+=7" }
307 send_gdb "print two=one\n"
309 -re ".*FIXME.*$gdb_prompt $" {
310 pass "print value of two=one"
312 -re ".*$gdb_prompt $" { xfail "print value of two=one" }
313 timeout { fail "(timeout) print value of two=one" }