[gdb/testsuite] Fix -wrap in presence of -prompt in gdb_test_multiple
authorTom de Vries <tdevries@suse.de>
Mon, 24 Apr 2023 20:08:53 +0000 (22:08 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 24 Apr 2023 20:08:53 +0000 (22:08 +0200)
While writing a gdb_test_multiple call in a test-case I tried to use -wrap in
combination with -prompt and found out that it doesn't work, because -wrap uses
"$gdb_prompt $" instead of $prompt_regexp.

Fix this by making -wrap use $prompt_regexp.

Tested on x86_64-linux.

gdb/testsuite/gdb.testsuite/gdb-test.exp
gdb/testsuite/lib/gdb.exp

index a582b1b125fa67b31830c9581d89e4a23540984a..e19f2a8de4a26aa440247a60f2e7657b2299c365 100644 (file)
@@ -48,3 +48,14 @@ with_test_prefix "cmd with trailing control code" {
        gdb_assert { [string equal $output $expected_error_msg] }
     }
 }
+
+# Change the prompt.
+set prompt "(GDB) "
+set prompt_re "\\(GDB\\) $"
+gdb_test -prompt $prompt_re "set prompt $prompt"
+
+gdb_test_multiple "print 1" "" -prompt $prompt_re {
+    -re -wrap " = 1" {
+       pass $gdb_test_name
+    }
+}
index 45588d85aea320bba24a278d043748cbd629f53d..d30e2a5e6c7cf95a0c25de99bdb088f2277a3fa8 100644 (file)
@@ -1126,7 +1126,7 @@ proc gdb_test_multiple { command message args } {
        if { $wrap_pattern } {
            # Wrap subst_item as is done for the gdb_test PATTERN argument.
            lappend $current_list \
-               "\[\r\n\]*(?:$subst_item)\[\r\n\]+$gdb_prompt $"
+               "\[\r\n\]*(?:$subst_item)\[\r\n\]+$prompt_regexp"
            set wrap_pattern 0
        } else {
            lappend $current_list $subst_item