From cea104095654241bf3055ee31e910ceaffae4487 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 9 Mar 2010 02:00:58 +0000 Subject: [PATCH] Add tests for PR gas/9966 and PR gas/11356. 2010-03-08 H.J. Lu PR gas/9966 PR gas/11356 * gas/i386/list-1.l: New. * gas/i386/list-1.s: Likewise. * gas/i386/list-2.l: Likewise. * gas/i386/list-2.s: Likewise. * gas/i386/list-3.l: Likewise. * gas/i386/list-3.s: Likewise. * gas/i386/i386.exp: Run list-1, list-2 and list-3. * lib/gas-defs.exp (gas_run_stdin): New. (run_list_test_stdin): Likewise. --- gas/testsuite/ChangeLog | 16 ++++++++++++++ gas/testsuite/gas/i386/i386.exp | 3 +++ gas/testsuite/gas/i386/list-1.l | 14 +++++++++++++ gas/testsuite/gas/i386/list-1.s | 9 ++++++++ gas/testsuite/gas/i386/list-2.l | 18 ++++++++++++++++ gas/testsuite/gas/i386/list-2.s | 15 +++++++++++++ gas/testsuite/gas/i386/list-3.l | 18 ++++++++++++++++ gas/testsuite/gas/i386/list-3.s | 15 +++++++++++++ gas/testsuite/lib/gas-defs.exp | 37 +++++++++++++++++++++++++++++++++ 9 files changed, 145 insertions(+) create mode 100644 gas/testsuite/gas/i386/list-1.l create mode 100644 gas/testsuite/gas/i386/list-1.s create mode 100644 gas/testsuite/gas/i386/list-2.l create mode 100644 gas/testsuite/gas/i386/list-2.s create mode 100644 gas/testsuite/gas/i386/list-3.l create mode 100644 gas/testsuite/gas/i386/list-3.s diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index c07edc3070..d6d12f2560 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2010-03-08 H.J. Lu + + PR gas/9966 + PR gas/11356 + * gas/i386/list-1.l: New. + * gas/i386/list-1.s: Likewise. + * gas/i386/list-2.l: Likewise. + * gas/i386/list-2.s: Likewise. + * gas/i386/list-3.l: Likewise. + * gas/i386/list-3.s: Likewise. + + * gas/i386/i386.exp: Run list-1, list-2 and list-3. + + * lib/gas-defs.exp (gas_run_stdin): New. + (run_list_test_stdin): Likewise. + 2010-02-26 Doug Evans * gas/mep/allinsn.be.d: Renamed from allinsn.d. Pass -EB. diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index dc0be49959..5c3f620b59 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -223,6 +223,9 @@ if [expr [istarget "i*86-*-*"] || [istarget "x86_64-*-*"]] then { run_dump_test "string-ok" run_list_test "string-bad" "" run_list_test "space1" "-al" + run_list_test_stdin "list-1" "-al" + run_list_test_stdin "list-2" "-al" + run_list_test_stdin "list-3" "-al" } if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] then { diff --git a/gas/testsuite/gas/i386/list-1.l b/gas/testsuite/gas/i386/list-1.l new file mode 100644 index 0000000000..158678f9e2 --- /dev/null +++ b/gas/testsuite/gas/i386/list-1.l @@ -0,0 +1,14 @@ +GAS LISTING .* + + +[ ]*1[ ]+\.section \.rodata +[ ]*2[ ]+\.LC0: +[ ]*3[ ]+0000 68616861 \.string "haha %x\\n" +[ ]*3[ ]+2025780A +[ ]*3[ ]+00 +[ ]*4[ ]+\.text +[ ]*5[ ]+\.globl hex +[ ]*6[ ]+\.type hex,@function +[ ]*7[ ]+hex: +[ ]*8[ ]+0000 C9 leave +[ ]*9[ ]+0001 C3 ret diff --git a/gas/testsuite/gas/i386/list-1.s b/gas/testsuite/gas/i386/list-1.s new file mode 100644 index 0000000000..5fda484e9c --- /dev/null +++ b/gas/testsuite/gas/i386/list-1.s @@ -0,0 +1,9 @@ + .section .rodata +.LC0: + .string "haha %x\n" + .text +.globl hex + .type hex, @function +hex: + leave + ret diff --git a/gas/testsuite/gas/i386/list-2.l b/gas/testsuite/gas/i386/list-2.l new file mode 100644 index 0000000000..38b529d7db --- /dev/null +++ b/gas/testsuite/gas/i386/list-2.l @@ -0,0 +1,18 @@ +GAS LISTING .* + + +[ ]*1[ ]+ +[ ]*2[ ]+\.L1: +[ ]*3[ ]+0000 615C00 \.string "a\\\\" +[ ]*4[ ]+0: +[ ]*5[ ]+0003 6200 \.string "b" +[ ]*6[ ]+1: +[ ]*7[ ]+2: +[ ]*8[ ]+3: +[ ]*9[ ]+4: +[ ]*10[ ]+5: +[ ]*11[ ]+6: +[ ]*12[ ]+7: +[ ]*13[ ]+8: +[ ]*14[ ]+9: +[ ]*15[ ]+10: diff --git a/gas/testsuite/gas/i386/list-2.s b/gas/testsuite/gas/i386/list-2.s new file mode 100644 index 0000000000..6bc96a0bfb --- /dev/null +++ b/gas/testsuite/gas/i386/list-2.s @@ -0,0 +1,15 @@ + +.L1: + .string "a\\" +0: + .string "b" +1: +2: +3: +4: +5: +6: +7: +8: +9: +10: diff --git a/gas/testsuite/gas/i386/list-3.l b/gas/testsuite/gas/i386/list-3.l new file mode 100644 index 0000000000..9a7c27db11 --- /dev/null +++ b/gas/testsuite/gas/i386/list-3.l @@ -0,0 +1,18 @@ +GAS LISTING .* + + +[ ]*1[ ]+ +[ ]*2[ ]+\.L1: +[ ]*3[ ]+0000 612200 \.string "a\\"" +[ ]*4[ ]+0: +[ ]*5[ ]+0003 6200 \.string "b" +[ ]*6[ ]+1: +[ ]*7[ ]+2: +[ ]*8[ ]+3: +[ ]*9[ ]+4: +[ ]*10[ ]+5: +[ ]*11[ ]+6: +[ ]*12[ ]+7: +[ ]*13[ ]+8: +[ ]*14[ ]+9: +[ ]*15[ ]+10: diff --git a/gas/testsuite/gas/i386/list-3.s b/gas/testsuite/gas/i386/list-3.s new file mode 100644 index 0000000000..847a1898a9 --- /dev/null +++ b/gas/testsuite/gas/i386/list-3.s @@ -0,0 +1,15 @@ + +.L1: + .string "a\"" +0: + .string "b" +1: +2: +3: +4: +5: +6: +7: +8: +9: +10: diff --git a/gas/testsuite/lib/gas-defs.exp b/gas/testsuite/lib/gas-defs.exp index 06bf04ccac..0506b94439 100644 --- a/gas/testsuite/lib/gas-defs.exp +++ b/gas/testsuite/lib/gas-defs.exp @@ -116,6 +116,24 @@ proc gas_run { prog as_opts redir } { return [list $comp_output ""] } +proc gas_run_stdin { prog as_opts redir } { + global AS + global ASFLAGS + global comp_output + global srcdir + global subdir + global host_triplet + + set status [gas_host_run "$AS $ASFLAGS $as_opts < $srcdir/$subdir/$prog" "$redir"] + set comp_output [lindex $status 1] + if { [lindex $status 0] != 0 && [regexp "2>.*" $redir] } then { + append comp_output "child process exited abnormally" + } + set comp_output [prune_warnings $comp_output] + verbose "output was $comp_output" + return [list $comp_output ""] +} + proc all_ones { args } { foreach x $args { if [expr $x!=1] { return 0 } } return 1 @@ -990,3 +1008,22 @@ proc run_list_test { name {opts {}} {testname {}} } { } pass $testname } + +# run_list_test_stdin NAME (optional): OPTS TESTNAME +# +# Similar to run_list_test, but use stdin as input. + +proc run_list_test_stdin { name {opts {}} {testname {}} } { + global srcdir subdir + if { [string length $testname] == 0 } then { + set testname "[file tail $subdir] $name" + } + set file $srcdir/$subdir/$name + gas_run_stdin ${name}.s $opts ">&dump.out" + if { [regexp_diff "dump.out" "${file}.l"] } then { + fail $testname + verbose "output is [file_contents "dump.out"]" 2 + return + } + pass $testname +} -- 2.34.1