[v2,4/5] GDB/testsuite: Add `-nonl' option to `gdb_test'

Message ID alpine.DEB.2.20.2301112352200.7841@tpp.orcam.me.uk
State Superseded
Headers
Series gdb: introduce limited array lengths while printing values |

Commit Message

Maciej W. Rozycki Jan. 12, 2023, 9:02 a.m. UTC
  Add a `-nonl' option to `gdb_test' making it possible to match output 
from commands such as `output' that do not produce a new line sequence 
at the end, e.g.:

  (gdb) output 0
  0(gdb)
---
 gdb/testsuite/lib/gdb.exp |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

gdb-test-nonl.diff
  

Patch

Index: src/gdb/testsuite/lib/gdb.exp
===================================================================
--- src.orig/gdb/testsuite/lib/gdb.exp
+++ src/gdb/testsuite/lib/gdb.exp
@@ -1395,6 +1395,8 @@  proc gdb_test_multiline { name args } {
 #   have any effect if -prompt is specified.
 # -lbl specifies that line-by-line matching will be used.
 # -nopass specifies that a PASS should not be issued.
+# -nonl specifies that no \r\n sequence is expected between PATTERN
+#   and the gdb prompt.
 #
 # Returns:
 #    1 if the test failed,
@@ -1410,6 +1412,7 @@  proc gdb_test { args } {
 	{no-prompt-anchor}
 	{lbl}
 	{nopass}
+	{nonl}
     }
 
     lassign $args command pattern message question response
@@ -1424,12 +1427,13 @@  proc gdb_test { args } {
     }
 
     set prompt [fill_in_default_prompt $prompt [expr !${no-prompt-anchor}]]
+    set nl [expr ${nonl} ? {""} : {"\[\r\n\]+"}]
 
     set saw_question 0
 
     set user_code {}
     lappend user_code {
-	-re "\[\r\n\]*(?:$pattern)\[\r\n\]+$prompt" {
+	-re "\[\r\n\]*(?:$pattern)$nl$prompt" {
 	    if { $question != "" & !$saw_question} {
 		fail $message
 	    } elseif {!$nopass} {