1# Copyright 1998, 1999, 2007, 2008, 2009, 2010, 2011 2# Free Software Foundation, Inc. 3 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 3 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17# This file was written by Elena Zannoni (ezannoni@cygnus.com) 18 19# This file is part of the gdb testsuite 20# 21# tests for all the assignemnt operators 22# with mixed types and with int type variables 23# 24 25if $tracelevel then { 26 strace $tracelevel 27 } 28 29# 30# test running programs 31# 32 33set testfile "all-types" 34set srcfile ${testfile}.c 35set binfile ${objdir}/${subdir}/${testfile} 36 37if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } { 38 untested assign.exp 39 return -1 40 } 41 42 43 44gdb_exit 45gdb_start 46gdb_reinitialize_dir $srcdir/$subdir 47gdb_load ${binfile} 48 49 50# 51# set it up at a breakpoint so we can play with the variable values 52# 53 54if ![runto_main] then { 55 perror "couldn't run to breakpoint" 56 continue 57} 58 59gdb_test "next" "return 0;" "continuing after dummy()" 60 61gdb_test_multiple "print v_int=57" "v_int=57" { 62 -re " = 57.*$gdb_prompt $" { 63 gdb_test "print v_int" " = 57" "v_int=57" 64 } 65} 66 67gdb_test_no_output "set variable v_int = 6" "set v_int to 6" 68 69gdb_test_multiple "print v_int+=57" "v_int+=57" { 70 -re " = 63.*$gdb_prompt $" { 71 gdb_test "print v_int" " = 63" "v_int+=57" 72 } 73} 74 75gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (2)" 76 77gdb_test_multiple "print v_int-=57" "v_int-=57" { 78 -re " = -51.*$gdb_prompt $" { 79 gdb_test "print v_int" " = -51" "v_int-=57" 80 } 81} 82 83gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (3)" 84 85gdb_test_multiple "print v_int*=5" "v_int*=5" { 86 -re " = 30.*$gdb_prompt $" { 87 gdb_test "print v_int" " = 30" "v_int*=5" 88 } 89} 90 91gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (4)" 92 93gdb_test_multiple "print v_int/=4" "v_int/=4" { 94 -re " = 1.*$gdb_prompt $" { 95 gdb_test "print v_int" " = 1" "v_int/=4" 96 } 97} 98 99gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (5)" 100 101gdb_test_multiple "print v_int%=4" "v_int%=4" { 102 -re " = 2.*$gdb_prompt $" { 103 gdb_test "print v_int" " = 2" "v_int%=4" 104 } 105} 106 107gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (6)" 108 109gdb_test_multiple "print v_int+=v_char" "v_int+=char" { 110 -re " = 71.*$gdb_prompt $" { 111 gdb_test "print v_int" " = 71" "v_int+=char" 112 } 113} 114 115gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (7)" 116 117gdb_test_multiple "print v_int+=v_signed_char" "v_int+=signed_char" { 118 -re " = 72.*$gdb_prompt $" { 119 gdb_test "print v_int" " = 72" "v_int+=signed_char" 120 } 121} 122 123gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (8)" 124 125gdb_test_multiple "print v_int+=v_unsigned_char" "v_int+=unsigned_char" { 126 -re " = 73.*$gdb_prompt $" { 127 gdb_test "print v_int" " = 73" "v_int+=unsigned_char" 128 } 129} 130 131gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (9)" 132 133gdb_test_multiple "print v_int+=v_short" "v_int+=short" { 134 -re " = 9.*$gdb_prompt $" { 135 gdb_test "print v_int" " = 9" "v_int+=short" 136 } 137} 138 139gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (10)" 140 141gdb_test_multiple "print v_int+=v_signed_short" "v_int+=signed_short" { 142 -re " = 10.*$gdb_prompt $" { 143 gdb_test "print v_int" " = 10" "v_int+=signed_short" 144 } 145} 146 147gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (11)" 148 149gdb_test_multiple "print v_int+=v_unsigned_short" "v_int=+unsigned_short" { 150 -re " = 11.*$gdb_prompt $" { 151 gdb_test "print v_int" " = 11" "v_int=+unsigned_short" 152 } 153} 154 155gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (12)" 156 157gdb_test_multiple "print v_int+=v_signed_int" "v_int+=signed_int" { 158 -re " = 13.*$gdb_prompt $" { 159 gdb_test "print v_int" " = 13" "v_int+=signed_int" 160 } 161} 162 163gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (13)" 164 165gdb_test_multiple "print v_int+=v_unsigned_int" "v_int+=unsigned_int" { 166 -re " = 14.*$gdb_prompt $" { 167 gdb_test "print v_int" " = 14" "v_int+=unsigned_int" 168 } 169} 170 171gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (14)" 172 173gdb_test_multiple "print v_int+=v_long" "v_int+=long" { 174 -re " = 15.*$gdb_prompt $" { 175 gdb_test "print v_int" " = 15" "v_int+=long" 176 } 177} 178 179gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (15)" 180 181gdb_test_multiple "print v_int+=v_signed_long" "v_int+=signed_long" { 182 -re " = 16.*$gdb_prompt $" { 183 gdb_test "print v_int" " = 16" "v_int+=signed_long" 184 } 185} 186 187gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (16)" 188 189gdb_test_multiple "print v_int+=v_unsigned_long" "v_int+=unsigned_long" { 190 -re " = 17.*$gdb_prompt $" { 191 gdb_test "print v_int" " = 17" "v_int+=unsigned_long" 192 } 193} 194 195gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (17)" 196 197gdb_test_multiple "print v_int+=v_float" "v_int+=v_float" { 198 -re " = 106.*$gdb_prompt $" { 199 gdb_test "print v_int" " = 106" "v_int+=v_float" 200 } 201} 202 203gdb_test_no_output "set variable v_int = 6" "set v_int to 6 (18)" 204 205gdb_test_multiple "print v_int+=v_double" "v_int+=double" { 206 -re " = 206.*$gdb_prompt $" { 207 gdb_test "print v_int" " = 206" "v_int+=double" 208 } 209} 210