1# Copyright 1998-2014 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 assign.exp 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] then { 44 perror "couldn't run to breakpoint" 45 continue 46} 47 48gdb_test "next" "return 0;" "continuing after dummy()" 49 50gdb_test_multiple "print v_int=57" "v_int=57" { 51 -re " = 57.*$gdb_prompt $" { 52 gdb_test "print v_int" " = 57" "v_int=57" 53 } 54} 55 56gdb_test_no_output "set variable v_int = 6" "set v_int to 6" 57 58gdb_test_multiple "print v_int+=57" "v_int+=57" { 59 -re " = 63.*$gdb_prompt $" { 60 gdb_test "print v_int" " = 63" "v_int+=57" 61 } 62} 63 64gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (2)" 65 66gdb_test_multiple "print v_int-=57" "v_int-=57" { 67 -re " = -51.*$gdb_prompt $" { 68 gdb_test "print v_int" " = -51" "v_int-=57" 69 } 70} 71 72gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (3)" 73 74gdb_test_multiple "print v_int*=5" "v_int*=5" { 75 -re " = 30.*$gdb_prompt $" { 76 gdb_test "print v_int" " = 30" "v_int*=5" 77 } 78} 79 80gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (4)" 81 82gdb_test_multiple "print v_int/=4" "v_int/=4" { 83 -re " = 1.*$gdb_prompt $" { 84 gdb_test "print v_int" " = 1" "v_int/=4" 85 } 86} 87 88gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (5)" 89 90gdb_test_multiple "print v_int%=4" "v_int%=4" { 91 -re " = 2.*$gdb_prompt $" { 92 gdb_test "print v_int" " = 2" "v_int%=4" 93 } 94} 95 96gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (6)" 97 98gdb_test_multiple "print v_int+=v_char" "v_int+=char" { 99 -re " = 71.*$gdb_prompt $" { 100 gdb_test "print v_int" " = 71" "v_int+=char" 101 } 102} 103 104gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (7)" 105 106gdb_test_multiple "print v_int+=v_signed_char" "v_int+=signed_char" { 107 -re " = 72.*$gdb_prompt $" { 108 gdb_test "print v_int" " = 72" "v_int+=signed_char" 109 } 110} 111 112gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (8)" 113 114gdb_test_multiple "print v_int+=v_unsigned_char" "v_int+=unsigned_char" { 115 -re " = 73.*$gdb_prompt $" { 116 gdb_test "print v_int" " = 73" "v_int+=unsigned_char" 117 } 118} 119 120gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (9)" 121 122gdb_test_multiple "print v_int+=v_short" "v_int+=short" { 123 -re " = 9.*$gdb_prompt $" { 124 gdb_test "print v_int" " = 9" "v_int+=short" 125 } 126} 127 128gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (10)" 129 130gdb_test_multiple "print v_int+=v_signed_short" "v_int+=signed_short" { 131 -re " = 10.*$gdb_prompt $" { 132 gdb_test "print v_int" " = 10" "v_int+=signed_short" 133 } 134} 135 136gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (11)" 137 138gdb_test_multiple "print v_int+=v_unsigned_short" "v_int=+unsigned_short" { 139 -re " = 11.*$gdb_prompt $" { 140 gdb_test "print v_int" " = 11" "v_int=+unsigned_short" 141 } 142} 143 144gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (12)" 145 146gdb_test_multiple "print v_int+=v_signed_int" "v_int+=signed_int" { 147 -re " = 13.*$gdb_prompt $" { 148 gdb_test "print v_int" " = 13" "v_int+=signed_int" 149 } 150} 151 152gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (13)" 153 154gdb_test_multiple "print v_int+=v_unsigned_int" "v_int+=unsigned_int" { 155 -re " = 14.*$gdb_prompt $" { 156 gdb_test "print v_int" " = 14" "v_int+=unsigned_int" 157 } 158} 159 160gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (14)" 161 162gdb_test_multiple "print v_int+=v_long" "v_int+=long" { 163 -re " = 15.*$gdb_prompt $" { 164 gdb_test "print v_int" " = 15" "v_int+=long" 165 } 166} 167 168gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (15)" 169 170gdb_test_multiple "print v_int+=v_signed_long" "v_int+=signed_long" { 171 -re " = 16.*$gdb_prompt $" { 172 gdb_test "print v_int" " = 16" "v_int+=signed_long" 173 } 174} 175 176gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (16)" 177 178gdb_test_multiple "print v_int+=v_unsigned_long" "v_int+=unsigned_long" { 179 -re " = 17.*$gdb_prompt $" { 180 gdb_test "print v_int" " = 17" "v_int+=unsigned_long" 181 } 182} 183 184gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (17)" 185 186gdb_test_multiple "print v_int+=v_float" "v_int+=v_float" { 187 -re " = 106.*$gdb_prompt $" { 188 gdb_test "print v_int" " = 106" "v_int+=v_float" 189 } 190} 191 192gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (18)" 193 194gdb_test_multiple "print v_int+=v_double" "v_int+=double" { 195 -re " = 206.*$gdb_prompt $" { 196 gdb_test "print v_int" " = 206" "v_int+=double" 197 } 198} 199