[1/2] xtensa: gas: convert tests to run_dump_tests

Message ID 20190410203820.18358-2-jcmvbkbc@gmail.com
State New
Headers show
Series
  • xtensa: gas: clean up test suite and add tests
Related show

Commit Message

Max Filippov April 10, 2019, 8:38 p.m.
gas/
2019-04-10  Max Filippov  <jcmvbkbc@gmail.com>

	* testsuite/gas/xtensa/all.exp: Remove all expect-based
	tests and all explicit run_dump_test / run_list_test
	invocations. Add run_dump_tests for all .d files in the
	test subdirectory.
	* testsuite/gas/xtensa/entry_align.d: New test definition.
	* testsuite/gas/xtensa/entry_align.l: New test output.
	* testsuite/gas/xtensa/entry_misalign.d: New test definition.
	* testsuite/gas/xtensa/entry_misalign2.d: New test definition.
	* testsuite/gas/xtensa/j_too_far.d: New test definition.
	* testsuite/gas/xtensa/j_too_far.l: New test output.
	* testsuite/gas/xtensa/loop_align.d: New test definition.
	* testsuite/gas/xtensa/loop_misalign.d: New test definition.
	* testsuite/gas/xtensa/trampoline-2.d: New test definition.
	* testsuite/gas/xtensa/trampoline-2.l: Remove empty output.
	* testsuite/gas/xtensa/xtensa-err.exp: Use positive logic.
---
 gas/testsuite/gas/xtensa/all.exp           | 99 +-----------------------------
 gas/testsuite/gas/xtensa/entry_align.d     |  3 +
 gas/testsuite/gas/xtensa/entry_align.l     |  2 +
 gas/testsuite/gas/xtensa/entry_misalign.d  |  7 +++
 gas/testsuite/gas/xtensa/entry_misalign2.d |  7 +++
 gas/testsuite/gas/xtensa/j_too_far.d       |  3 +
 gas/testsuite/gas/xtensa/j_too_far.l       |  2 +
 gas/testsuite/gas/xtensa/loop_align.d      |  7 +++
 gas/testsuite/gas/xtensa/loop_misalign.d   |  7 +++
 gas/testsuite/gas/xtensa/trampoline-2.d    |  4 ++
 gas/testsuite/gas/xtensa/trampoline-2.l    |  1 -
 gas/testsuite/gas/xtensa/xtensa-err.exp    |  8 +--
 12 files changed, 45 insertions(+), 105 deletions(-)
 create mode 100644 gas/testsuite/gas/xtensa/entry_align.d
 create mode 100644 gas/testsuite/gas/xtensa/entry_align.l
 create mode 100644 gas/testsuite/gas/xtensa/entry_misalign.d
 create mode 100644 gas/testsuite/gas/xtensa/entry_misalign2.d
 create mode 100644 gas/testsuite/gas/xtensa/j_too_far.d
 create mode 100644 gas/testsuite/gas/xtensa/j_too_far.l
 create mode 100644 gas/testsuite/gas/xtensa/loop_align.d
 create mode 100644 gas/testsuite/gas/xtensa/loop_misalign.d
 create mode 100644 gas/testsuite/gas/xtensa/trampoline-2.d
 delete mode 100644 gas/testsuite/gas/xtensa/trampoline-2.l

-- 
2.11.0

Comments

Max Filippov April 11, 2019, 6:46 p.m. | #1
On Wed, Apr 10, 2019 at 5:08 PM augustine.sterling@gmail.com
<augustine.sterling@gmail.com> wrote:
>

> On Wed, Apr 10, 2019 at 1:38 PM Max Filippov <jcmvbkbc@gmail.com> wrote:

> >

> > gas/

> > 2019-04-10  Max Filippov  <jcmvbkbc@gmail.com>

> >

> >         * testsuite/gas/xtensa/all.exp: Remove all expect-based

> >         tests and all explicit run_dump_test / run_list_test

> >         invocations. Add run_dump_tests for all .d files in the

> >         test subdirectory.

> >         * testsuite/gas/xtensa/entry_align.d: New test definition.

> >         * testsuite/gas/xtensa/entry_align.l: New test output.

> >         * testsuite/gas/xtensa/entry_misalign.d: New test definition.

> >         * testsuite/gas/xtensa/entry_misalign2.d: New test definition.

> >         * testsuite/gas/xtensa/j_too_far.d: New test definition.

> >         * testsuite/gas/xtensa/j_too_far.l: New test output.

> >         * testsuite/gas/xtensa/loop_align.d: New test definition.

> >         * testsuite/gas/xtensa/loop_misalign.d: New test definition.

> >         * testsuite/gas/xtensa/trampoline-2.d: New test definition.

> >         * testsuite/gas/xtensa/trampoline-2.l: Remove empty output.

> >         * testsuite/gas/xtensa/xtensa-err.exp: Use positive logic.

>

> Looks good.


Thanks. Applied to master.

-- Max

Patch

diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp
index 30784becbe0a..db1a623c0ad2 100644
--- a/gas/testsuite/gas/xtensa/all.exp
+++ b/gas/testsuite/gas/xtensa/all.exp
@@ -17,101 +17,6 @@ 
 #
 # Some generic xtensa tests
 #
-if [istarget xtensa*-*-*] then {
-    gas_test_error "j_too_far.s" "" "Check for jump out of range error"
-
-    set testname "j_too_far.s: error line number reporting"
-    gas_start "j_too_far.s" ""
-    set x1 0
-    while 1 {
-        expect {
-            -re ":4: Error:.*out of range"      { set x1 1 }
-            timeout                             { perror "timeout\n"; break }
-            eof                                 { break }
-        }
-    }
-    gas_finish
-    if [all_ones $x1] then { pass $testname } else { fail $testname }
-
-
-    gas_test "entry_misalign.s" "" "" "Xtensa Entry misalignment"
-    set testname "entry_misalign.s: Force entry misalignment"
-    objdump_start_no_subdir "a.out" "-d -j .text"
-    set x1 0
-    while 1 {
-	expect {
-	    -re "^.*2:.*entry" { set x1 1 }
-	    timeout            { perror "timeout\n"; break }
-	    eof                { break }
-	}
-    }
-    objdump_finish
-    if [all_ones $x1] then { pass $testname } else { fail $testname }
-
-
-    gas_test "entry_misalign2.s" "" "" "Xtensa Entry misalignment(2)"
-    set testname "entry_misalign2.s: Force entry misalignment(2)"
-    objdump_start_no_subdir "a.out" "-d -j .text"
-    set x1 0
-    while 1 {
-	expect {
-	    -re "^.*2:.*entry" { set x1 1 }
-	    timeout            { perror "timeout\n"; break }
-	    eof                { break }
-	}
-    }
-    objdump_finish
-    if [all_ones $x1] then { pass $testname } else { fail $testname }
-
-    gas_test_error "entry_align.s" "" "Xtensa entry alignment error"
-
-    gas_test "loop_misalign.s" "" "" "Xtensa Loop misalignment"
-    set testname "loop_misalign.s: Force loop misalignment"
-    objdump_start_no_subdir "a.out" "-d -j .text"
-    set x1 0
-    while 1 {
-	expect {
-	    -re "^.*0:.*loop" { set x1 1 }
-	    timeout            { perror "timeout\n"; break }
-	    eof                { break }
-	}
-    }
-    objdump_finish
-    if [all_ones $x1] then { pass $testname } else { fail $testname }
-
-
-    gas_test "loop_align.s" "" "" "Xtensa autoalign loop"
-    set testname "loop_align.s: autoalign loop"
-    objdump_start_no_subdir "a.out" "-d -j .text"
-    set x1 0
-    while 1 {
-	expect {
-	    -re "^.*2:.*loop" { set x1 1 }
-	    timeout            { perror "timeout\n"; break }
-	    eof                { break }
-	}
-    }
-    objdump_finish
-    if [all_ones $x1] then { pass $testname } else { fail $testname }
-
-    run_dump_test "short_branch_offset"
-    run_dump_test "pcrel"
-    run_dump_test "weak-call"
-    run_dump_test "jlong"
-    run_dump_test "trampoline"
-    run_list_test "trampoline-2"
-    run_dump_test "first_frag_align"
-    run_dump_test "auto-litpools"
-    run_dump_test "auto-litpools-2"
-    run_dump_test "auto-litpools-3"
-    run_dump_test "auto-litpools-4"
-    run_dump_test "auto-litpools-first1"
-    run_dump_test "auto-litpools-first2"
-    run_dump_test "loc"
-    run_dump_test "init-fini-literals"
-    run_dump_test "text-section-literals-1"
-}
-
-if [info exists errorInfo] then {
-    unset errorInfo
+if [istarget xtensa*-*-*] {
+	run_dump_tests [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
 }
diff --git a/gas/testsuite/gas/xtensa/entry_align.d b/gas/testsuite/gas/xtensa/entry_align.d
new file mode 100644
index 000000000000..684e654100dd
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/entry_align.d
@@ -0,0 +1,3 @@ 
+#as:
+#name: unaligned entry instruction
+#error_output: entry_align.l
diff --git a/gas/testsuite/gas/xtensa/entry_align.l b/gas/testsuite/gas/xtensa/entry_align.l
new file mode 100644
index 000000000000..9bca67c23dad
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/entry_align.l
@@ -0,0 +1,2 @@ 
+[^:]*: Assembler messages:
+[^:]*:3: Error: unaligned entry instruction
diff --git a/gas/testsuite/gas/xtensa/entry_misalign.d b/gas/testsuite/gas/xtensa/entry_misalign.d
new file mode 100644
index 000000000000..aa79bd4e56b6
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/entry_misalign.d
@@ -0,0 +1,7 @@ 
+#as:
+#objdump: -d -j .text
+#name: force entry instruction misalignment
+
+#...
+^.*2:.*entry.*
+#...
diff --git a/gas/testsuite/gas/xtensa/entry_misalign2.d b/gas/testsuite/gas/xtensa/entry_misalign2.d
new file mode 100644
index 000000000000..74664ef54ecf
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/entry_misalign2.d
@@ -0,0 +1,7 @@ 
+#as:
+#objdump: -d -j .text
+#name: entry instruction misalignment inside no-transform block
+
+#...
+^.*2:.*entry.*
+#...
diff --git a/gas/testsuite/gas/xtensa/j_too_far.d b/gas/testsuite/gas/xtensa/j_too_far.d
new file mode 100644
index 000000000000..85007aff067e
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/j_too_far.d
@@ -0,0 +1,3 @@ 
+#as:
+#name: jump to a target that is too far
+#error_output: j_too_far.l
diff --git a/gas/testsuite/gas/xtensa/j_too_far.l b/gas/testsuite/gas/xtensa/j_too_far.l
new file mode 100644
index 000000000000..38d3c79cdb08
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/j_too_far.l
@@ -0,0 +1,2 @@ 
+[^:]*: Assembler messages:
+[^:]*:4: Error:.*operand 1 of 'j' has out of range value.*
diff --git a/gas/testsuite/gas/xtensa/loop_align.d b/gas/testsuite/gas/xtensa/loop_align.d
new file mode 100644
index 000000000000..a4da096cf37c
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/loop_align.d
@@ -0,0 +1,7 @@ 
+#as:
+#objdump: -d -j .text
+#name: automatic loop alignment
+
+#...
+^.*2:.*loop.*
+#...
diff --git a/gas/testsuite/gas/xtensa/loop_misalign.d b/gas/testsuite/gas/xtensa/loop_misalign.d
new file mode 100644
index 000000000000..88bddc2a25d7
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/loop_misalign.d
@@ -0,0 +1,7 @@ 
+#as:
+#objdump: -d -j .text
+#name: force loop misalignment
+
+#...
+^.*2:.*loop.*
+#...
diff --git a/gas/testsuite/gas/xtensa/trampoline-2.d b/gas/testsuite/gas/xtensa/trampoline-2.d
new file mode 100644
index 000000000000..535dde7b5ce0
--- /dev/null
+++ b/gas/testsuite/gas/xtensa/trampoline-2.d
@@ -0,0 +1,4 @@ 
+#as:
+#readelf: -a
+
+#...
diff --git a/gas/testsuite/gas/xtensa/trampoline-2.l b/gas/testsuite/gas/xtensa/trampoline-2.l
deleted file mode 100644
index 36a0971c9b2e..000000000000
--- a/gas/testsuite/gas/xtensa/trampoline-2.l
+++ /dev/null
@@ -1 +0,0 @@ 
-# No warnings or errors expected!
diff --git a/gas/testsuite/gas/xtensa/xtensa-err.exp b/gas/testsuite/gas/xtensa/xtensa-err.exp
index 5a2ed680cd89..f2937b847fe4 100644
--- a/gas/testsuite/gas/xtensa/xtensa-err.exp
+++ b/gas/testsuite/gas/xtensa/xtensa-err.exp
@@ -14,11 +14,7 @@ 
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 
-if { ! [istarget "xtensa*-*-*"] } {
-    return
-}
-
-proc run_xtensa_err_tests { } {
+if [istarget xtensa*-*-*] {
     global srcdir subdir runtests
 
     load_lib gas-dg.exp
@@ -26,5 +22,3 @@  proc run_xtensa_err_tests { } {
     dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/err-*.s]] "" ""
     dg-finish
 }
-
-run_xtensa_err_tests