[PATCH] gdb.base/setshow.exp: fix racy tests (PR testsuite/12649)

Marek Polacek
2011-04-18T16:39:21Z

It took some time, but I've fixed all racy cases by using {,old_}gdb_prompt
variable. Also it was needed to escape "(gdb) " prompt properly. Ok to apply?

2011-04-18 Marek Polacek <mpolacek@redhat.com>

* gdb.base/setshow.exp: Fix racy tests.
($old_gdb_prompt): New variable.

Index: testsuite/gdb.base/setshow.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/setshow.exp,v
retrieving revision 1.20
diff -u -r1.20 setshow.exp
--- testsuite/gdb.base/setshow.exp 1 Jan 2011 15:33:42 -0000 1.20
+++ testsuite/gdb.base/setshow.exp 18 Apr 2011 16:28:28 -0000
@@ -55,25 +55,32 @@

#test set annotate 2

+# Here we need to fiddle with prompts.
+set old_gdb_prompt $gdb_prompt
+set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
+
gdb_test_multiple "set annotate 2" "set annotate 2" {
- -re ".*\032\032pre-prompt.*$gdb_prompt .*\032\032prompt.*$" {
- pass "set annotate 2"
+ -re "\r\n$gdb_prompt$" {
+ pass "set annotate 2"
}
}

gdb_test_multiple "show annotate" "show annotate 2" {
- -re ".*\032\032post-prompt.*Annotation_level is 2..*\032\032pre-prompt.*$gdb_prompt .*\032\032prompt.*$" {
+ -re ".*\032\032post-prompt.*Annotation_level is 2..*\032\032pre-prompt.*$old_gdb_prompt .*\032\032prompt.*$" {
pass "show annotate 2"
}
}

#test annotation_level 2
gdb_test_multiple "info line 1" "annotation_level 2" {
- -re ".*\032\032post-prompt.*Line 1 of .* is at address .* but contains no code.*:1:0:beg:0x.*\032\032pre-prompt.*$gdb_prompt .*\032\032prompt.*$" {
+ -re ".*\032\032post-prompt.*Line 1 of .* is at address .* but contains no code.*:1:0:beg:0x.*\032\032pre-prompt.*$old_gdb_prompt .*\032\032prompt.*$" {
pass "annotation_level 2"
}
}

+# Restore the original prompt for the rest of the testsuite.
+set gdb_prompt $old_gdb_prompt
+
#test set annotate 1
gdb_test "set annotate 1" ".*post-prompt.*" "set annotate 1"
gdb_test "show annotate" "Annotation_level is 1..*" "show annotate (1)"
@@ -212,7 +219,7 @@

#test set prompt (gdb)

- gdb_test_multiple "set prompt (gdb) " "set prompt gdb" {
+ gdb_test_multiple "set prompt \\(gdb\\) " "set prompt gdb" {
-re "$gdb_prompt $" {
pass "set prompt gdb"
}