testsuite/lib/multline.exp: show test name and line numbers
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 10 Dec 2015 17:12:38 +0000 (17:12 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Thu, 10 Dec 2015 17:12:38 +0000 (17:12 +0000)
gcc/testsuite/ChangeLog:
* lib/multiline.exp (_multiline_expected_outputs): Update comment.
(dg-end-multiline-output): Capture line numbers within
_multiline_expected_outputs.
(handle-multiline-outputs): Access global $testname_with_flags
and add it as a prefix to pass/fail results.  Extract line numbers
from $_multiline_expected_outputs and print them within pass/fail
results, replacing the printing of $index.  Consolidate the
string prefix shared between pass/fail into a new local ($title).

From-SVN: r231530

gcc/testsuite/ChangeLog
gcc/testsuite/lib/multiline.exp

index 6bcacab..bc79f6f 100644 (file)
@@ -1,3 +1,14 @@
+2015-12-10  David Malcolm  <dmalcolm@redhat.com>
+
+       * lib/multiline.exp (_multiline_expected_outputs): Update comment.
+       (dg-end-multiline-output): Capture line numbers within
+       _multiline_expected_outputs.
+       (handle-multiline-outputs): Access global $testname_with_flags
+       and add it as a prefix to pass/fail results.  Extract line numbers
+       from $_multiline_expected_outputs and print them within pass/fail
+       results, replacing the printing of $index.  Consolidate the
+       string prefix shared between pass/fail into a new local ($title).
+
 2015-12-10  Jeff Law  <law@redhat.com>
 
        PR tree-optimization/68619
index c3d0506..5367437 100644 (file)
@@ -54,7 +54,9 @@
 # The line number of the last dg-begin-multiline-output directive.
 set _multiline_last_beginning_line -1
 
-# A list of lists of strings.
+# A list of
+#   first-line-number, last-line-number, lines
+# where each "lines" is a list of strings.
 set _multiline_expected_outputs []
 
 ############################################################################
@@ -88,12 +90,15 @@ proc dg-end-multiline-output { args } {
     # Load it and split it into lines
 
     set lines [_get_lines $prog $_multiline_last_beginning_line $line]
-    set _multiline_last_beginning_line -1
 
     verbose "lines: $lines" 3
+    # Create an entry of the form:  first-line, last-line, lines
+    set entry [list $_multiline_last_beginning_line $line $lines]
     global _multiline_expected_outputs
-    lappend _multiline_expected_outputs $lines
+    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
@@ -107,9 +112,14 @@ proc dg-end-multiline-output { args } {
 
 proc handle-multiline-outputs { text } {
     global _multiline_expected_outputs
+    global testname_with_flags
     set index 0
-    foreach multiline $_multiline_expected_outputs {
-       verbose "  multiline: $multiline" 4
+    foreach entry $_multiline_expected_outputs {
+       verbose "  entry: $entry" 3
+       set start_line [lindex $entry 0]
+       set end_line   [lindex $entry 1]
+       set multiline  [lindex $entry 2]
+       verbose "  multiline: $multiline" 3
        set rexp [_build_multiline_regex $multiline $index]
        verbose "rexp: ${rexp}" 4
        # Escape newlines in $rexp so that we can print them in
@@ -117,12 +127,14 @@ proc handle-multiline-outputs { text } {
        set escaped_regex [string map {"\n" "\\n"} $rexp]
        verbose "escaped_regex: ${escaped_regex}" 4
 
+       set title "$testname_with_flags expected multiline pattern lines $start_line-$end_line"
+
        # Use "regsub" to attempt to prune the pattern from $text
        if {[regsub -line $rexp $text "" text]} {
            # Success; the multiline pattern was pruned.
-           pass "expected multiline pattern $index was found: \"$escaped_regex\""
+           pass "$title was found: \"$escaped_regex\""
        } else {
-           fail "expected multiline pattern $index not found: \"$escaped_regex\""
+           fail "$title not found: \"$escaped_regex\""
        }
 
        set index [expr $index + 1]