Switch to GPLv3
[deliverable/binutils-gdb.git] / gas / testsuite / gas / hppa / unsorted / unsorted.exp
CommitLineData
ec2655a6 1# Copyright (C) 1993, 1997, 1999, 2000, 2002, 2004, 2007
aef6203b 2# Free Software Foundation, Inc.
252b5132
RH
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
ec2655a6 6# the Free Software Foundation; either version 3 of the License, or
252b5132
RH
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, write to the Free Software
4b4da160 16# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
252b5132
RH
17
18# Please email any bugs, comments, and/or additions to this file to:
fc697c14 19# dejagnu@gnu.org
252b5132
RH
20
21# Written by the Center for Software Science at the University of Utah
22# and by Cygnus Support.
23
24proc do_subspace_align_test {} {
25 set testname "ss_align.s: Test subspace alignment (part 2)"
26 set x 0
27
170cdc4f
AM
28 if {[istarget hppa*64*-*-*]
29 || [istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
cb63de9b
JL
30 return
31 }
32
252b5132
RH
33 if [gas_test_old "ss_align.s" "" "subspace alignment (part 1)"] then {
34 objdump_start_no_subdir "a.out" "-h"
35
36 # Check the headers for the correct alignment value for the
cb63de9b
JL
37 # the $DATA$ subspace (som).
38 while 1 {
39 expect {
40 -re "DATA\[^\n\]* 2..6\[^\n\]*\n" { set x 1 }
41 -re "\[^\n\]*\n" { }
42 timeout { perror "timeout\n"; break }
43 eof { break }
252b5132
RH
44 }
45 }
46
47 # This was intended to do any cleanup necessary. It kinda looks like it
48 # isn't needed, but just in case, please keep it in for now.
49 objdump_finish
50
51 # Did we find what we were looking for? If not, flunk it.
52 if [expr $x==1] then { pass $testname } else { fail $testname }
53 }
54}
55
56proc do_local_label_test {} {
57 set testname "locallabel.s: Elimination of local labels (part 2)"
58 set x 0
59
60 if [gas_test_old "locallabel.s" "" "Elimination of local labels (part1)"] {
61 objdump_start_no_subdir "a.out" "-t"
62
63 while 1 {
64 expect {
65 -re "^00000000\[^\n\]*Label\[^\n\]*\n" { set x 1 }
66 -re "^00000000\[^\n\]*L\$01234\[^\n\]*\n" { set x 0 }
67 -re "\[^\n\]*\n" { }
68 timeout { perror "timeout\n"; break }
69 eof { break }
70 }
71 }
72
73 # This was intended to do any cleanup necessary. It kinda looks like it
74 # isn't needed, but just in case, please keep it in for now.
75 objdump_finish
76
77 # Did we find what we were looking for? If not, flunk it.
78 if [expr $x==1] then { pass $testname } else { fail $testname }
79 }
80}
81
82proc do_frchain_test {} {
83 set testname "fragbug.s: Test bug in frag chaining (part 2)"
84 set x 0
85
86 if [gas_test_old "fragbug.s" "" "Test bug in frag chaining (part1)"] {
87 objdump_start_no_subdir "a.out" "--prefix-addresses -d"
88
89 while 1 {
90 expect {
91 -re "^0x00000000\[^\n\]*nop\[^\n\]*\n" { set x 1 }
92 -re "^0x00000004\[^\n\]*nop\[^\n\]*\n" { set x 0 }
93 -re "\[^\n\]*\n" { }
94 timeout { perror "timeout\n"; break }
95 eof { break }
96 }
97 }
98
99 # This was intended to do any cleanup necessary. It kinda looks like it
100 # isn't needed, but just in case, please keep it in for now.
101 objdump_finish
102
103 # Did we find what we were looking for? If not, flunk it.
104 if [expr $x==1] then { pass $testname } else { fail $testname }
105 }
106}
107
108proc do_align3_test {} {
109 set testname "align3.s: Test for alignment bug when switching subspaces (part2)"
110 set x 0
111
170cdc4f
AM
112 if {[istarget hppa*64*-*-*]
113 || [istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
cb63de9b
JL
114 return
115 }
116
252b5132
RH
117 if [gas_test_old "align3.s" "" "Test for alignment bug when switching subspaces (part1)"] {
118 objdump_start_no_subdir "a.out" "--prefix-addresses -d"
119
120 while 1 {
121 expect {
122 -re "\[^\n\]* <main> nop\[^\n\]*\n" { set x 1 }
123 -re "\[^\n\]* <.*end_main> nop\[^\n\]*\n" { set x 1 }
124 -re "\[^\n\]* <main+.*> nop\[^\n\]*\n" { set x 0 }
125 -re "\[^\n\]*\n" { }
126 timeout { perror "timeout\n"; break }
127 eof { break }
128 }
129 }
130
131 # This was intended to do any cleanup necessary. It kinda looks like it
132 # isn't needed, but just in case, please keep it in for now.
133 objdump_finish
134
135 # Did we find what we were looking for? If not, flunk it.
136 if [expr $x==1] then { pass $testname } else { fail $testname }
137 }
138}
139
140proc do_align4_test {} {
141 set testname "align4.s: More subspace alignment tests (part2)"
142 set x 0
143
170cdc4f
AM
144 if {[istarget hppa*64*-*-*]
145 || [istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
146 return
252b5132
RH
147 }
148
149 if [gas_test_old "align4.s" "" "More subspace alignment tests (part1)"] {
150 objdump_start_no_subdir "a.out" "-h"
151
152 while 1 {
153 expect {
154 -re "\[^\n\]*MILLICODE\[^\n\]*2..6\[^\n\]*\n"
155 { set x [expr $x+1] }
156 -re "\[^\n\]*YABBA\[^\n\]*2..3\[^\n\]*\n"
157 { set x [expr $x+1] }
158 timeout { perror "timeout\n"; break }
159 eof { break }
160 }
161 }
162
163 # This was intended to do any cleanup necessary. It kinda looks like it
164 # isn't needed, but just in case, please keep it in for now.
165 objdump_finish
166
167 # Did we find what we were looking for? If not, flunk it.
168 if [expr $x==2] then { pass $testname } else { fail $testname }
169 }
170}
171
172proc do_import_test {} {
173 set testname "importbug.s: Test for bug in .import directive (part2)"
174 set x 0
175
176 if [gas_test_old "importbug.s" "" "Test for bug in .import directive (part1)"] {
177 objdump_start_no_subdir "a.out" "--syms"
178
179 while 1 {
180 expect {
181 -re "\[^\n\]*.DATA..foo\[^\n\]*\n" { set x 1 }
182 -re "\[^\n\]*.data.*foo\[^\n\]*\n" { set x 1 }
183 -re "\[^\n\]*\n" { }
184 timeout { perror "timeout\n"; break }
185 eof { break }
186 }
187 }
188
189 # This was intended to do any cleanup necessary. It kinda looks like it
190 # isn't needed, but just in case, please keep it in for now.
191 objdump_finish
192
193 # Did we find what we were looking for? If not, flunk it.
194 if [expr $x==1] then { pass $testname } else { fail $testname }
195 }
196}
197
198proc do_common_test {} {
4b6341e9
AM
199 # linux has a different .comm syntax
200 if [istarget hppa*-*-linux*] then {
c0b22597 201 return
4b6341e9
AM
202 }
203
252b5132
RH
204 set testname "common.s: Test for bug in .comm handling (part2)"
205 set x 0
206
207 if [gas_test_old "common.s" "" "Test for bug in .comm handling (part1)"] {
208 objdump_start_no_subdir "a.out" "--syms"
209
210 while 1 {
211 expect {
212 -re "\[^\n\]*.COM.*common_symbol\[^\n\]*\n" { set x 1 }
213 -re "\[^\n\]*\n" { }
214 timeout { perror "timeout\n"; break }
215 eof { break }
216 }
217 }
218
219 # This was intended to do any cleanup necessary. It kinda looks like it
220 # isn't needed, but just in case, please keep it in for now.
221 objdump_finish
222
223 # Did we find what we were looking for? If not, flunk it.
224 if [expr $x==1] then { pass $testname } else { fail $testname }
225 }
226}
227
228if [istarget hppa*-*-*] then {
229 # Make sure subspace alignment requests from the subspace directives
230 # are honored
231 do_subspace_align_test
232
233 # Make sure the correct labels end up in the symbol table
234 do_local_label_test
235
236 # GAS-1.36 choked on this file.
237 gas_test "labeldiffs.s" "" "" "Difference of labels"
238
239 # Test a recent bug where frag chaining wasn't working correctly.
240 do_frchain_test
241
242 # Test bug where switching between subspaces creates bogus alignments
243 do_align3_test
244
245 # Test bug where switching between subspaces creates bogus alignments
246 do_align4_test
247
248 # Test a problem where $global$ is defined, then used within the
249 # same source file.
250 setup_xfail hppa*-*-*
251 gas_test "globalbug.s" "" "" "Use \$global\$ in file which defines it"
252
253 # Test that importing a defined symbol doesn't screw up the symbol's
254 # space/subspace.
255 do_import_test
256
257 # Test for a buglet in the handling of common symbols
258 do_common_test
259
260 # Test for an off-by-2 bug in range check for conditional branches
8b579b7a
JL
261 # The labels in brlenbug.s lack colons and are not linux compatible.
262 if {! [istarget *-*-linux*]} then {
263 gas_test_error "brlenbug.s" "" "Check for error(s) in branch length"
264 }
252b5132 265}
This page took 0.50932 seconds and 4 git commands to generate.