gdb.threads/thread-specific.exp: Fix uninitialized variable references
authorMaciej W. Rozycki <macro@codesourcery.com>
Fri, 21 Mar 2014 23:51:16 +0000 (23:51 +0000)
committerMaciej W. Rozycki <macro@codesourcery.com>
Fri, 21 Mar 2014 23:51:16 +0000 (23:51 +0000)
This fixes:

FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout)
ERROR: tcl error sourcing .../gdb/testsuite/gdb.threads/thread-specific.exp.
ERROR: can't read "this_breakpoint": no such variable
    while executing
"gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" {
    -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" {
        set this_thread $expe..."
    (file ".../gdb/testsuite/gdb.threads/thread-specific.exp" line 108)
    invoked from within
"source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    invoked from within
"catch "uplevel #0 source $test_file_name""

and then:

FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout)
UNTESTED: gdb.threads/thread-specific.exp: info on bp
ERROR: tcl error sourcing .../gdb/testsuite/gdb.threads/thread-specific.exp.
ERROR: can't read "this_thread": no such variable
    while executing
"gdb_test {print $_thread} ".* = $this_thread" "thread var at break""
    (file ".../gdb/testsuite/gdb.threads/thread-specific.exp" line 119)
    invoked from within
"source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source .../gdb/testsuite/gdb.threads/thread-specific.exp"
    invoked from within
"catch "uplevel #0 source $test_file_name""

Final results:

FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout)
UNTESTED: gdb.threads/thread-specific.exp: info on bp
UNTESTED: gdb.threads/thread-specific.exp: thread var at break

Of course the first failure best wasn't there, but failing that the script
shouldn't crash.

* gdb.threads/thread-specific.exp: Handle the lack of usable
$this_breakpoint and $this_thread.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.threads/thread-specific.exp

index a78fb17..aad07fd 100644 (file)
@@ -1,3 +1,8 @@
+2014-03-21  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * gdb.threads/thread-specific.exp: Handle the lack of usable
+       $this_breakpoint and $this_thread.
+
 2014-03-21  Hui Zhu  <hui@codesourcery.com>
 
        * gdb.base/attach.exp (do_command_attach_tests): New.
index 90968e9..e271484 100644 (file)
@@ -95,6 +95,7 @@ foreach thread [lrange $threads 1 end] {
   gdb_breakpoint "$line thread $thread"
 }
 
+set this_breakpoint -1
 gdb_test_multiple "continue" "continue to thread-specific breakpoint" {
        -re "Breakpoint $main_breakpoint, .* at .*\r\n$gdb_prompt $" {
            fail "continue to thread-specific breakpoint (wrong breakpoint)"
@@ -105,13 +106,22 @@ gdb_test_multiple "continue" "continue to thread-specific breakpoint" {
        }
 }
 
-gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" {
-    -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" {
-       set this_thread $expect_out(1,string)
-       pass "found breakpoint for thread number"
+set this_thread -1
+if { $this_breakpoint != -1 } {
+    gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" {
+       -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" {
+           set this_thread $expect_out(1,string)
+           pass "found breakpoint for thread number"
+       }
     }
+} else {
+    untested "info on bp"
 }
 
-gdb_test {print $_thread} ".* = $this_thread" "thread var at break"
+if { $this_thread != -1 } {
+    gdb_test {print $_thread} ".* = $this_thread" "thread var at break"
+} else {
+    untested "thread var at break"
+}
 
 return 0