diff options
author | David Malcolm <dmalcolm@redhat.com> | 2018-10-11 17:05:23 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2018-10-11 17:05:23 +0000 |
commit | cbd8652b67eee2f10ce276968983b494829fa42d (patch) | |
tree | daa81cdcb11522a45eef873181d9af1e565942d2 | |
parent | cfef4c324ac300c0ad120f0fcee376159de84a0c (diff) | |
download | gcc-cbd8652b67eee2f10ce276968983b494829fa42d.zip gcc-cbd8652b67eee2f10ce276968983b494829fa42d.tar.gz gcc-cbd8652b67eee2f10ce276968983b494829fa42d.tar.bz2 |
multiline.exp: complain about mismatched dg-{begin|end}-multiline-output
Mismatched dg-{begin|end}-multiline-output directives are currently
silently ignored, leading to difficult-to-diagnose test failures
involving excess output.
This patch makes multiline.exp complain about them.
gcc/testsuite/ChangeLog:
* lib/multiline.exp (dg-begin-multiline-output): Issue an error if
there hasn't been a dg-end-multiline-output since the last
dg-begin-multiline-output.
(dg-end-multiline-output): Issue an error if there hasn't been a
dg-begin-multiline-output. Reset _multiline_last_beginning_line
as soon possible. Rename "line" to "last_line".
From-SVN: r265046
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/lib/multiline.exp | 27 |
2 files changed, 30 insertions, 6 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c5bbaf8..acac188 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2018-10-11 David Malcolm <dmalcolm@redhat.com> + + * lib/multiline.exp (dg-begin-multiline-output): Issue an error if + there hasn't been a dg-end-multiline-output since the last + dg-begin-multiline-output. + (dg-end-multiline-output): Issue an error if there hasn't been a + dg-begin-multiline-output. Reset _multiline_last_beginning_line + as soon possible. Rename "line" to "last_line". + 2018-10-11 Andrew Stubbs <ams@codesourcery.com> * selftests/repeat.rtl: New file. diff --git a/gcc/testsuite/lib/multiline.exp b/gcc/testsuite/lib/multiline.exp index 6c7ecdf..6e431d9 100644 --- a/gcc/testsuite/lib/multiline.exp +++ b/gcc/testsuite/lib/multiline.exp @@ -72,6 +72,14 @@ proc dg-begin-multiline-output { args } { global _multiline_last_beginning_line verbose "dg-begin-multiline-output: args: $args" 3 set line [expr [lindex $args 0] + 1] + + # Complain if there hasn't been a dg-end-multiline-output + # since the last dg-begin-multiline-output + if { $_multiline_last_beginning_line != -1 } { + set last_directive_line [expr $_multiline_last_beginning_line - 1] + error "$last_directive_line: unterminated dg-begin-multiline-output" + } + set _multiline_last_beginning_line $line } @@ -84,8 +92,17 @@ proc dg-begin-multiline-output { args } { proc dg-end-multiline-output { args } { global _multiline_last_beginning_line verbose "dg-end-multiline-output: args: $args" 3 - set line [expr [lindex $args 0] - 1] - verbose "multiline output lines: $_multiline_last_beginning_line-$line" 3 + set first_line $_multiline_last_beginning_line + + # Complain if there hasn't been a dg-begin-multiline-output + if { $first_line == -1 } { + error "[lindex $args 0]: dg-end-multiline-output without dg-begin-multiline-output" + return + } + set _multiline_last_beginning_line -1 + + set last_line [expr [lindex $args 0] - 1] + verbose "multiline output lines: $first_line-$last_line" 3 if { [llength $args] > 3 } { error "[lindex $args 0]: too many arguments" @@ -109,16 +126,14 @@ proc dg-end-multiline-output { args } { # "prog" now contains the filename # Load it and split it into lines - set lines [_get_lines $prog $_multiline_last_beginning_line $line] + set lines [_get_lines $prog $first_line $last_line] verbose "lines: $lines" 3 # Create an entry of the form: first-line, last-line, lines, maybe_x - set entry [list $_multiline_last_beginning_line $line $lines $maybe_x] + set entry [list $first_line $last_line $lines $maybe_x] global multiline_expected_outputs lappend multiline_expected_outputs $entry verbose "within dg-end-multiline-output: multiline_expected_outputs: $multiline_expected_outputs" 3 - - set _multiline_last_beginning_line -1 } # Hook to be called by prune.exp's prune_gcc_output to |