xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.base/assign.exp (revision 8b657b0747480f8989760d71343d6dd33f8d4cf9)
1# Copyright 1998-2023 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 all the assignemnt operators
21# with mixed types and with int type variables
22#
23
24#
25# test running programs
26#
27
28standard_testfile all-types.c
29
30if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
31     untested "failed to compile"
32     return -1
33    }
34
35
36clean_restart ${binfile}
37
38
39#
40# set it up at a breakpoint so we can play with the variable values
41#
42
43if {![runto_main]} {
44    return
45}
46
47gdb_test "next" "return 0;" "continuing after dummy()"
48
49gdb_test_multiple "print v_int=57" "v_int=57" {
50    -re " = 57.*$gdb_prompt $" {
51	gdb_test "print v_int" " = 57" "v_int=57"
52    }
53}
54
55gdb_test_no_output "set variable v_int = 6" "set v_int to 6"
56
57gdb_test_multiple "print v_int+=57" "v_int+=57" {
58    -re " = 63.*$gdb_prompt $" {
59	gdb_test "print v_int" " = 63" "v_int+=57"
60    }
61}
62
63gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (2)"
64
65gdb_test_multiple "print v_int-=57" "v_int-=57" {
66    -re " = -51.*$gdb_prompt $" {
67	gdb_test "print v_int" " = -51" "v_int-=57"
68    }
69}
70
71gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (3)"
72
73gdb_test_multiple "print v_int*=5" "v_int*=5" {
74    -re " = 30.*$gdb_prompt $" {
75	gdb_test "print v_int" " = 30" "v_int*=5"
76    }
77}
78
79gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (4)"
80
81gdb_test_multiple "print v_int/=4" "v_int/=4" {
82    -re " = 1.*$gdb_prompt $" {
83	gdb_test "print v_int" " = 1" "v_int/=4"
84    }
85}
86
87gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (5)"
88
89gdb_test_multiple "print v_int%=4" "v_int%=4" {
90    -re " = 2.*$gdb_prompt $" {
91	gdb_test "print v_int" " = 2" "v_int%=4"
92    }
93}
94
95gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (6)"
96
97gdb_test_multiple "print v_int+=v_char" "v_int+=char" {
98    -re " = 71.*$gdb_prompt $" {
99	gdb_test "print v_int" " = 71" "v_int+=char"
100    }
101}
102
103gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (7)"
104
105gdb_test_multiple "print v_int+=v_signed_char" "v_int+=signed_char" {
106    -re " = 72.*$gdb_prompt $" {
107	gdb_test "print v_int" " = 72" "v_int+=signed_char"
108    }
109}
110
111gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (8)"
112
113gdb_test_multiple "print v_int+=v_unsigned_char" "v_int+=unsigned_char" {
114    -re " = 73.*$gdb_prompt $" {
115	gdb_test "print v_int" " = 73" "v_int+=unsigned_char"
116    }
117}
118
119gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (9)"
120
121gdb_test_multiple "print v_int+=v_short" "v_int+=short" {
122    -re " = 9.*$gdb_prompt $" {
123	gdb_test "print v_int" " = 9" "v_int+=short"
124    }
125}
126
127gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (10)"
128
129gdb_test_multiple "print v_int+=v_signed_short" "v_int+=signed_short" {
130    -re " = 10.*$gdb_prompt $" {
131	gdb_test "print v_int" " = 10" "v_int+=signed_short"
132    }
133}
134
135gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (11)"
136
137gdb_test_multiple "print v_int+=v_unsigned_short" "v_int=+unsigned_short" {
138    -re " = 11.*$gdb_prompt $" {
139	gdb_test "print v_int" " = 11" "v_int=+unsigned_short"
140    }
141}
142
143gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (12)"
144
145gdb_test_multiple "print v_int+=v_signed_int" "v_int+=signed_int" {
146    -re " = 13.*$gdb_prompt $" {
147	gdb_test "print v_int" " = 13" "v_int+=signed_int"
148    }
149}
150
151gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (13)"
152
153gdb_test_multiple "print v_int+=v_unsigned_int" "v_int+=unsigned_int" {
154    -re " = 14.*$gdb_prompt $" {
155	gdb_test "print v_int" " = 14" "v_int+=unsigned_int"
156    }
157}
158
159gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (14)"
160
161gdb_test_multiple "print v_int+=v_long" "v_int+=long" {
162    -re " = 15.*$gdb_prompt $" {
163	gdb_test "print v_int" " = 15" "v_int+=long"
164    }
165}
166
167gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (15)"
168
169gdb_test_multiple "print v_int+=v_signed_long" "v_int+=signed_long" {
170    -re " = 16.*$gdb_prompt $" {
171	gdb_test "print v_int" " = 16" "v_int+=signed_long"
172    }
173}
174
175gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (16)"
176
177gdb_test_multiple "print v_int+=v_unsigned_long" "v_int+=unsigned_long" {
178    -re " = 17.*$gdb_prompt $" {
179	gdb_test "print v_int" " = 17" "v_int+=unsigned_long"
180    }
181}
182
183gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (17)"
184
185gdb_test_multiple "print v_int+=v_float" "v_int+=v_float" {
186    -re " = 106.*$gdb_prompt $" {
187	gdb_test "print v_int" " = 106" "v_int+=v_float"
188    }
189}
190
191gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (18)"
192
193gdb_test_multiple "print v_int+=v_double" "v_int+=double" {
194    -re " = 206.*$gdb_prompt $" {
195	gdb_test "print v_int" " = 206" "v_int+=double"
196    }
197}
198