Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(472)

Side by Side Diff: gdb/testsuite/gdb.base/bitfields2.exp

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/testsuite/gdb.base/bitfields.exp ('k') | gdb/testsuite/gdb.base/bitops.exp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 1992, 1994-1995, 1997, 2004, 2007-2012 Free Software 1 # Copyright 1992-2013 Free Software Foundation, Inc.
2 # Foundation, Inc.
3 2
4 # This program is free software; you can redistribute it and/or modify 3 # 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 4 # 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 5 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version. 6 # (at your option) any later version.
8 # 7 #
9 # This program is distributed in the hope that it will be useful, 8 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details. 11 # GNU General Public License for more details.
13 # 12 #
14 # You should have received a copy of the GNU General Public License 13 # 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/>. 14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 15
17 # This file was adapted from bitfields.exp by Paul Hilfinger 16 # This file was adapted from bitfields.exp by Paul Hilfinger
18 # (Hilfinger@gnat.com) 17 # (Hilfinger@gnat.com)
19 18
20 # 19 #
21 # Tests for bit-fields that do not fit in type (unsigned) int, but do fit 20 # Tests for bit-fields that do not fit in type (unsigned) int, but do fit
22 # in type (unsigned) long long. We perform essentially the same tests as 21 # in type (unsigned) long long. We perform essentially the same tests as
23 # in bitfields.c, which considers only bit-fields that are <= 9 bits long. 22 # in bitfields.c, which considers only bit-fields that are <= 9 bits long.
24 # 23 #
25 24
26 25
27 set testfile "bitfields2" 26 standard_testfile .c
28 set srcfile ${testfile}.c 27
29 set binfile ${objdir}/${subdir}/${testfile}
30 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb ug}] != "" } { 28 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb ug}] != "" } {
31 untested bitfields2.exp 29 untested bitfields2.exp
32 return -1 30 return -1
33 } 31 }
34 32
35 set has_signed_bitfields 1 33 set has_signed_bitfields 1
36 34
37 # 35 #
38 # Continue to expected breakpoint at FUNCTION. Append TAG to make pass/fail 36 # Continue to expected breakpoint at FUNCTION. Append TAG to make pass/fail
39 # messages (to make them unique). Suppress tests on failure. 37 # messages (to make them unique). Suppress tests on failure.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 70
73 proc bitfield_uniqueness {} { 71 proc bitfield_uniqueness {} {
74 global decimal 72 global decimal
75 global hex 73 global hex
76 global gdb_prompt 74 global gdb_prompt
77 global srcfile 75 global srcfile
78 76
79 start_test break1 77 start_test break1
80 78
81 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 0, s1 = 1, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.s1 = 1"] { 79 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 0, s1 = 1, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.s1 = 1"] {
82 » gdb_suppress_tests; 80 » gdb_suppress_tests
83 } 81 }
84 continue_test break1 "#1" 82 continue_test break1 "#1"
85 if [gdb_test "print flags" ".*u1 = 1, u2 = 0, u3 = 0, s1 = 0, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.u1 = 1"] { 83 if [gdb_test "print flags" ".*u1 = 1, u2 = 0, u3 = 0, s1 = 0, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.u1 = 1"] {
86 » gdb_suppress_tests; 84 » gdb_suppress_tests
87 } 85 }
88 continue_test break1 "#2" 86 continue_test break1 "#2"
89 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 0, s1 = 0, s2 = 1, s3 = 0 .*" "bitfield uniqueness; flags.s2 = 1"] { 87 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 0, s1 = 0, s2 = 1, s3 = 0 .*" "bitfield uniqueness; flags.s2 = 1"] {
90 » gdb_suppress_tests; 88 » gdb_suppress_tests
91 } 89 }
92 continue_test break1 "#3" 90 continue_test break1 "#3"
93 if [gdb_test "print flags" ".*u1 = 0, u2 = 1, u3 = 0, s1 = 0, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.u2 = 1"] { 91 if [gdb_test "print flags" ".*u1 = 0, u2 = 1, u3 = 0, s1 = 0, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.u2 = 1"] {
94 » gdb_suppress_tests; 92 » gdb_suppress_tests
95 } 93 }
96 continue_test break1 "#4" 94 continue_test break1 "#4"
97 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 0, s1 = 0, s2 = 0, s3 = 1 .*" "bitfield uniqueness; flags.s3 = 1"] { 95 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 0, s1 = 0, s2 = 0, s3 = 1 .*" "bitfield uniqueness; flags.s3 = 1"] {
98 » gdb_suppress_tests; 96 » gdb_suppress_tests
99 } 97 }
100 continue_test break1 "#5" 98 continue_test break1 "#5"
101 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 1, s1 = 0, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.u3 = 1"] { 99 if [gdb_test "print flags" ".*u1 = 0, u2 = 0, u3 = 1, s1 = 0, s2 = 0, s3 = 0 .*" "bitfield uniqueness; flags.u3 = 1"] {
102 gdb_suppress_tests 100 gdb_suppress_tests
103 } 101 }
104 gdb_stop_suppressing_tests; 102 gdb_stop_suppressing_tests
105 } 103 }
106 104
107 105
108 # 106 #
109 # Test bitfield containment. 107 # Test bitfield containment.
110 # Fill alternating fields with all 1's and verify that none of the bits 108 # Fill alternating fields with all 1's and verify that none of the bits
111 # "bleed over" to the other fields. 109 # "bleed over" to the other fields.
112 # 110 #
113 111
114 proc bitfield_containment {} { 112 proc bitfield_containment {} {
115 global decimal 113 global decimal
116 global hex 114 global hex
117 global gdb_prompt 115 global gdb_prompt
118 global srcfile 116 global srcfile
119 117
120 start_test break2 118 start_test break2
121 119
122 # If program is compiled with Sun CC, signed fields print out as their 120 # If program is compiled with Sun CC, signed fields print out as their
123 # actual sizes; if compiled with gcc, they print out as 0xffffffff. 121 # actual sizes; if compiled with gcc, they print out as 0xffffffff.
124 if [gdb_test "print/x flags" "= {u1 = 0x7fff, u2 = 0x0, u3 = 0xffff, s1 = 0x 0, s2 = 0x(1ffffffff|f*), s3 = 0x0}" "bitfield containment; flags.u1, flags.u3, and flags.s3 to all 1s"] { 122 if [gdb_test "print/x flags" "= {u1 = 0x7fff, u2 = 0x0, u3 = 0xffff, s1 = 0x 0, s2 = 0x(1ffffffff|f*), s3 = 0x0}" "bitfield containment; flags.u1, flags.u3, and flags.s3 to all 1s"] {
125 gdb_suppress_tests 123 gdb_suppress_tests
126 } 124 }
127 125
128 continue_test break2 "#1" 126 continue_test break2 "#1"
129 127
130 if [gdb_test "print/x flags" "= {u1 = 0x0, u2 = 0x1ffffffff, u3 = 0x0, s1 = 0x(7fff|f*), s2 = 0x0, s3 = 0xf*}" "bitfield containment; flags.u2, flags.s1, fl ags.s2 to all 1s"] { 128 if [gdb_test "print/x flags" "= {u1 = 0x0, u2 = 0x1ffffffff, u3 = 0x0, s1 = 0x(7fff|f*), s2 = 0x0, s3 = 0xf*}" "bitfield containment; flags.u2, flags.s1, fl ags.s2 to all 1s"] {
131 gdb_suppress_tests 129 gdb_suppress_tests
132 } 130 }
133 gdb_stop_suppressing_tests; 131 gdb_stop_suppressing_tests
134 } 132 }
135 133
136 # Test unsigned bitfields for unsignedness and range. 134 # Test unsigned bitfields for unsignedness and range.
137 # Fill the unsigned fields with the maximum positive value and verify that 135 # Fill the unsigned fields with the maximum positive value and verify that
138 # the values are printed correctly. 136 # the values are printed correctly.
139 137
140 proc bitfield_unsignedness {} { 138 proc bitfield_unsignedness {} {
141 global decimal 139 global decimal
142 global hex 140 global hex
143 global gdb_prompt 141 global gdb_prompt
144 global srcfile 142 global srcfile
145 143
146 start_test break3 144 start_test break3
147 145
148 if [gdb_test "print flags" ".*u1 = 32767, u2 = 8589934591, u3 = 65535, s1 = 0, s2 = 0, s3 = 0.*" "maximum unsigned bitfield values"] { 146 if [gdb_test "print flags" ".*u1 = 32767, u2 = 8589934591, u3 = 65535, s1 = 0, s2 = 0, s3 = 0.*" "maximum unsigned bitfield values"] {
149 gdb_suppress_tests 147 gdb_suppress_tests
150 } 148 }
151 gdb_stop_suppressing_tests; 149 gdb_stop_suppressing_tests
152 } 150 }
153 151
154 # 152 #
155 # Test signed bitfields for signedness and range. 153 # Test signed bitfields for signedness and range.
156 # Fill the signed fields with the maximum positive value, then the maximally 154 # Fill the signed fields with the maximum positive value, then the maximally
157 # negative value, then -1, and verify in each case that the values are 155 # negative value, then -1, and verify in each case that the values are
158 # printed correctly. 156 # printed correctly.
159 # 157 #
160 158
161 proc bitfield_signedness {} { 159 proc bitfield_signedness {} {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 202
205 set test "signed bitfields containing -1" 203 set test "signed bitfields containing -1"
206 if $has_signed_bitfields then { 204 if $has_signed_bitfields then {
207 if [gdb_test "print flags" "u1 = 0, u2 = 0, u3 = 0, s1 = -1, s2 = -1, s3 = -1.*" $test ] { 205 if [gdb_test "print flags" "u1 = 0, u2 = 0, u3 = 0, s1 = -1, s2 = -1, s3 = -1.*" $test ] {
208 gdb_suppress_tests 206 gdb_suppress_tests
209 } 207 }
210 } else { 208 } else {
211 unsupported $test 209 unsupported $test
212 } 210 }
213 211
214 gdb_stop_suppressing_tests; 212 gdb_stop_suppressing_tests
215 } 213 }
216 214
217 215
218 # Test setting of long long bit fields from within GDB. 216 # Test setting of long long bit fields from within GDB.
219 217
220 proc bitfield_set {} { 218 proc bitfield_set {} {
221 global decimal 219 global decimal
222 global hex 220 global hex
223 global gdb_prompt 221 global gdb_prompt
224 global srcfile 222 global srcfile
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 268
271 set test "long long bitfield values after set negative" 269 set test "long long bitfield values after set negative"
272 if $has_signed_bitfields then { 270 if $has_signed_bitfields then {
273 if [gdb_test "print flags" "u1 = 0, u2 = 4294967296, u3 = 0, s1 = 0, s2 = -1, s3 = 0.*" $test] { 271 if [gdb_test "print flags" "u1 = 0, u2 = 4294967296, u3 = 0, s1 = 0, s2 = -1, s3 = 0.*" $test] {
274 gdb_suppress_tests 272 gdb_suppress_tests
275 } 273 }
276 } else { 274 } else {
277 unsupported $test 275 unsupported $test
278 } 276 }
279 277
280 gdb_stop_suppressing_tests; 278 gdb_stop_suppressing_tests
281 } 279 }
282 280
283 gdb_start 281 clean_restart ${binfile}
284 gdb_reinitialize_dir $srcdir/$subdir
285 gdb_load ${binfile}
286 282
287 gdb_test_no_output "set print sevenbit-strings" 283 gdb_test_no_output "set print sevenbit-strings"
288 runto_main 284 runto_main
289 285
290 bitfield_uniqueness 286 bitfield_uniqueness
291 bitfield_containment 287 bitfield_containment
292 bitfield_unsignedness 288 bitfield_unsignedness
293 bitfield_signedness 289 bitfield_signedness
294 bitfield_set 290 bitfield_set
295 291
OLDNEW
« no previous file with comments | « gdb/testsuite/gdb.base/bitfields.exp ('k') | gdb/testsuite/gdb.base/bitops.exp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698