* lib/gdb.exp (standard_testfile): Unset output variables from
authorTom Tromey <tromey@redhat.com>
Tue, 10 Jul 2012 14:41:16 +0000 (14:41 +0000)
committerTom Tromey <tromey@redhat.com>
Tue, 10 Jul 2012 14:41:16 +0000 (14:41 +0000)
earlier invocations.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index f4ad297e9f06c4968f0708620b45df6810e87ee1..5d840db4e6e9e5bc8b2d8a12ed85539080228774 100644 (file)
@@ -1,3 +1,8 @@
+2012-07-10  Tom Tromey  <tromey@redhat.com>
+
+       * lib/gdb.exp (standard_testfile): Unset output variables from
+       earlier invocations.
+
 2012-07-10  Yao Qi  <yao@codesourcery.com>
 
        * gdb.mi/gdb2549.exp: Remove -DFAKEARGV from compilation flags.
index 289d4d82123551028a740e82faf8d4d470a20822..6ae31293f298b8ed55e40a508ab991a171dbf3ea 100644 (file)
@@ -3098,6 +3098,7 @@ proc standard_output_file {basename} {
 proc standard_testfile {args} {
     global gdb_test_file_name
     global objdir subdir
+    global gdb_test_file_last_vars
 
     # Outputs.
     global testfile binfile
@@ -3109,6 +3110,17 @@ proc standard_testfile {args} {
        set args .c
     }
 
+    # Unset our previous output variables.
+    # This can help catch hidden bugs.
+    if {[info exists gdb_test_file_last_vars]} {
+       foreach varname $gdb_test_file_last_vars {
+           global $varname
+           catch {unset $varname}
+       }
+    }
+    # 'executable' is often set by tests.
+    set gdb_test_file_last_vars {executable}
+
     set suffix ""
     foreach arg $args {
        set varname srcfile$suffix
@@ -3122,6 +3134,7 @@ proc standard_testfile {args} {
        }
 
        set $varname $arg
+       lappend gdb_test_file_last_vars $varname
 
        if {$suffix == ""} {
            set suffix 2