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