2012-02-21 Pedro Alves <palves@redhat.com>
authorPedro Alves <palves@redhat.com>
Tue, 21 Feb 2012 21:55:39 +0000 (21:55 +0000)
committerPedro Alves <palves@redhat.com>
Tue, 21 Feb 2012 21:55:39 +0000 (21:55 +0000)
    Tom Tromey  <tromey@redhat.com>

* lib/gdb.exp: Add description of test prefixes.
(with_test_prefix): New procedure.
* gdb.arch/altivec-abi.exp: Use with_test_prefix.
* gdb.base/attach-pie-misread.exp: Use with_test_prefix.
* gdb.base/break-interp.exp: Use with_test_prefix.  Use append
instead of lappend to append to pf_prefix.
* gdb.base/catch-load.exp: Use with_test_prefix.
* gdb.base/disp-step-syscall.exp: Use with_test_prefix.
* gdb.base/jit-so.exp: Use with_test_prefix.
* gdb.base/jit.exp: Use with_test_prefix.
* gdb.base/return-nodebug.exp (do_test): Use append instead of
lappend to append to pf_prefix.
* gdb.base/sepdebug.exp: Use with_test_prefix.
* gdb.base/solib-display.exp: Use with_test_prefix.
* gdb.base/solib-overlap.exp: Use with_test_prefix.
* gdb.base/watch-cond-infcall.exp: Use with_test_prefix.
* gdb.base/watchpoint.exp: Use with_test_prefix.
* gdb.dwarf2/dw2-noloc.exp: Use with_test_prefix.
* gdb.mi/mi-watch.exp: Use with_test_prefix.
* gdb.mi/mi2-watch.exp: Use with_test_prefix.
* gdb.threads/non-ldr-exc-1.exp: Use with_test_prefix.
* gdb.threads/non-ldr-exc-2.exp: Use with_test_prefix.
* gdb.threads/non-ldr-exc-3.exp: Use with_test_prefix.
* gdb.threads/non-ldr-exc-4.exp: Use with_test_prefix.
* gdb.threads/watchpoint-fork.exp: Use with_test_prefix.  Use
append instead of lappend to append to pf_prefix.
* gdb.threads/watchthreads-reorder.exp: Use with_test_prefix.
* gdb.trace/change-loc.exp: Use with_test_prefix.
* gdb.trace/pending.exp: Use with_test_prefix.
* gdb.trace/status-stop.exp: Use with_test_prefix.
* gdb.trace/strace.exp: Use with_test_prefix.
* gdb.trace/trace-break.exp: Use with_test_prefix.
* gdb.trace/unavailable.exp: Use with_test_prefix.  Use append
instead of lappend to append to pf_prefix.

30 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/altivec-abi.exp
gdb/testsuite/gdb.base/attach-pie-misread.exp
gdb/testsuite/gdb.base/break-interp.exp
gdb/testsuite/gdb.base/catch-load.exp
gdb/testsuite/gdb.base/disp-step-syscall.exp
gdb/testsuite/gdb.base/jit-so.exp
gdb/testsuite/gdb.base/jit.exp
gdb/testsuite/gdb.base/return-nodebug.exp
gdb/testsuite/gdb.base/sepdebug.exp
gdb/testsuite/gdb.base/solib-display.exp
gdb/testsuite/gdb.base/solib-overlap.exp
gdb/testsuite/gdb.base/watch-cond-infcall.exp
gdb/testsuite/gdb.base/watchpoint.exp
gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
gdb/testsuite/gdb.mi/mi-watch.exp
gdb/testsuite/gdb.mi/mi2-watch.exp
gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
gdb/testsuite/gdb.threads/watchpoint-fork.exp
gdb/testsuite/gdb.threads/watchthreads-reorder.exp
gdb/testsuite/gdb.trace/change-loc.exp
gdb/testsuite/gdb.trace/pending.exp
gdb/testsuite/gdb.trace/status-stop.exp
gdb/testsuite/gdb.trace/strace.exp
gdb/testsuite/gdb.trace/trace-break.exp
gdb/testsuite/gdb.trace/unavailable.exp
gdb/testsuite/lib/gdb.exp

index 133bc26..c8b9857 100644 (file)
@@ -1,3 +1,41 @@
+2012-02-21  Pedro Alves  <palves@redhat.com>
+           Tom Tromey  <tromey@redhat.com>
+
+       * lib/gdb.exp: Add description of test prefixes.
+       (with_test_prefix): New procedure.
+       * gdb.arch/altivec-abi.exp: Use with_test_prefix.
+       * gdb.base/attach-pie-misread.exp: Use with_test_prefix.
+       * gdb.base/break-interp.exp: Use with_test_prefix.  Use append
+       instead of lappend to append to pf_prefix.
+       * gdb.base/catch-load.exp: Use with_test_prefix.
+       * gdb.base/disp-step-syscall.exp: Use with_test_prefix.
+       * gdb.base/jit-so.exp: Use with_test_prefix.
+       * gdb.base/jit.exp: Use with_test_prefix.
+       * gdb.base/return-nodebug.exp (do_test): Use append instead of
+       lappend to append to pf_prefix.
+       * gdb.base/sepdebug.exp: Use with_test_prefix.
+       * gdb.base/solib-display.exp: Use with_test_prefix.
+       * gdb.base/solib-overlap.exp: Use with_test_prefix.
+       * gdb.base/watch-cond-infcall.exp: Use with_test_prefix.
+       * gdb.base/watchpoint.exp: Use with_test_prefix.
+       * gdb.dwarf2/dw2-noloc.exp: Use with_test_prefix.
+       * gdb.mi/mi-watch.exp: Use with_test_prefix.
+       * gdb.mi/mi2-watch.exp: Use with_test_prefix.
+       * gdb.threads/non-ldr-exc-1.exp: Use with_test_prefix.
+       * gdb.threads/non-ldr-exc-2.exp: Use with_test_prefix.
+       * gdb.threads/non-ldr-exc-3.exp: Use with_test_prefix.
+       * gdb.threads/non-ldr-exc-4.exp: Use with_test_prefix.
+       * gdb.threads/watchpoint-fork.exp: Use with_test_prefix.  Use
+       append instead of lappend to append to pf_prefix.
+       * gdb.threads/watchthreads-reorder.exp: Use with_test_prefix.
+       * gdb.trace/change-loc.exp: Use with_test_prefix.
+       * gdb.trace/pending.exp: Use with_test_prefix.
+       * gdb.trace/status-stop.exp: Use with_test_prefix.
+       * gdb.trace/strace.exp: Use with_test_prefix.
+       * gdb.trace/trace-break.exp: Use with_test_prefix.
+       * gdb.trace/unavailable.exp: Use with_test_prefix.  Use append
+       instead of lappend to append to pf_prefix.
+
 2012-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        Fix racy FAILs.
index 9bbe33f..fd069b2 100644 (file)
@@ -36,7 +36,7 @@ if [get_compiler_info $binfile] {
     return -1
 }
 
-proc altivec_abi_tests { extra_flags force_abi } {
+proc altivec_abi_tests { prefix extra_flags force_abi } { with_test_prefix $prefix {
     global testfile binfile srcfile srcdir subdir
     global gdb_prompt
 
@@ -144,13 +144,10 @@ proc altivec_abi_tests { extra_flags force_abi } {
     gdb_test "p matrix\[1\]" ".*= .11, 12, 13, 14, 15, 16, 17, 18." "print second vector"
     gdb_test "p matrix\[2\]" ".*= .21, 22, 23, 24, 25, 26, 27, 28." "print third vector"
     gdb_test "p matrix\[3\]" ".*= .31, 32, 33, 34, 35, 36, 37, 38." "print fourth vector"
-}
+}}
 
 if [test_compiler_info gcc*] {
-    set saved_prefix $pf_prefix
-
-    set pf_prefix "${saved_prefix} default ABI, auto:"
-    altivec_abi_tests "additional_flags=-maltivec" "auto"
+    altivec_abi_tests " default ABI, auto:" "additional_flags=-maltivec" "auto"
 
     # On GNU/Linux, we can mix -mabi=no-altivec and -mabi=altivec.
     # So test some combinations.
@@ -159,24 +156,24 @@ if [test_compiler_info gcc*] {
        # was broken, so skip those tests there.
        if { ![is_lp64_target] || ![test_compiler_info "gcc-4-\[12\]-*"] } {
            set binfile ${objdir}/${subdir}/${testfile}-ge-ge
-           set pf_prefix "${saved_prefix} generic ABI, forced:"
-           altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=no-altivec" "generic"
+           altivec_abi_tests " generic ABI, forced:" \
+               "additional_flags=-maltivec additional_flags=-mabi=no-altivec" "generic"
 
            set binfile ${objdir}/${subdir}/${testfile}-ge-auto
-           set pf_prefix "${saved_prefix} generic ABI, auto:"
-           altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=no-altivec" "auto"
+           altivec_abi_tests " generic ABI, auto:" \
+               "additional_flags=-maltivec additional_flags=-mabi=no-altivec" "auto"
        }
 
        set binfile ${objdir}/${subdir}/${testfile}-av-av
-       set pf_prefix "${saved_prefix} AltiVec ABI, forced:"
-       altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=altivec" "altivec"
+       altivec_abi_tests " AltiVec ABI, forced:" \
+           "additional_flags=-maltivec additional_flags=-mabi=altivec" "altivec"
 
        set binfile ${objdir}/${subdir}/${testfile}-av-auto
-       set pf_prefix "${saved_prefix} AltiVec ABI, auto:"
-       altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=altivec" "auto"
+       altivec_abi_tests " AltiVec ABI, auto:" \
+           "additional_flags=-maltivec additional_flags=-mabi=altivec" "auto"
     }
 } elseif [test_compiler_info xlc*] {
-    altivec_abi_tests "additional_flags=-qaltivec" "auto"
+    altivec_abi_tests "" "additional_flags=-qaltivec" "auto"
 } else {
     warning "unknown compiler"
     return -1
index 65477a9..de1055e 100644 (file)
@@ -152,9 +152,7 @@ gdb_expect {
 }
 
 # Due to alignments it was reproducible with 1 on x86_64 but 2 on i686.
-foreach align_mult {1 2} {
-    set old_ldprefix $pf_prefix
-    lappend pf_prefix "shift-by-$align_mult:"
+foreach align_mult {1 2} { with_test_prefix " shift-by-$align_mult:" {
 
     # FIXME: We believe there is enough room under FIRST_OFFSET.
     set shifted_offset [format 0x%x [expr "$first_offset - $align_mult * $align_max"]]
@@ -198,8 +196,6 @@ foreach align_mult {1 2} {
     }
 
     gdb_test "detach" "Detaching from program: .*"
-
-    set pf_prefix $old_ldprefix
-}
+}}
 
 remote_exec host "kill -9 $pid"
index 575e8f0..d6267ac 100644 (file)
@@ -185,16 +185,12 @@ proc reach_1 {func command displacement} {
 # displacement of 0 bytes to be present, "NONZERO" for displacement of non-0
 # bytes to be present and "PRESENT" if both "ZERO" and "NONZERO" are valid.
 proc reach {func command displacement} {
-    global pf_prefix
-    set old_ldprefix $pf_prefix
-    lappend pf_prefix "reach-$func:"
-
-    reach_1 $func $command $displacement
-
-    set pf_prefix $old_ldprefix
+    with_test_prefix " reach-$func:" {
+       reach_1 $func $command $displacement
+    }
 }
 
-proc test_core {file displacement} {
+proc test_core {file displacement} { with_test_prefix " core:" {
     global srcdir subdir gdb_prompt expect_out
 
     set corefile [core_find $file {} "segv"]
@@ -202,10 +198,6 @@ proc test_core {file displacement} {
        return
     }
 
-    global pf_prefix
-    set old_ldprefix $pf_prefix
-    lappend pf_prefix "core:"
-
     gdb_exit
     gdb_start
     # Clear it to never find any separate debug infos in $debug_root.
@@ -245,17 +237,11 @@ proc test_core {file displacement} {
     }
 
     gdb_test "bt" "#\[0-9\]+ +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#\[0-9\]+ +\[^\r\n\]*\\mmain\\M.*" "core main bt"
+}}
 
-    set pf_prefix $old_ldprefix
-}
-
-proc test_attach_gdb {file pid displacement prefix} {
+proc test_attach_gdb {file pid displacement prefix} { with_test_prefix " $prefix:" {
     global gdb_prompt expect_out
 
-    global pf_prefix
-    set old_ldprefix $pf_prefix
-    lappend pf_prefix "$prefix:"
-
     gdb_exit
     gdb_start
 
@@ -300,9 +286,7 @@ proc test_attach_gdb {file pid displacement prefix} {
 
     gdb_test "bt" "#\[0-9\]+ +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#\[0-9\]+ +\[^\r\n\]*\\mmain\\M.*" "attach main bt"
     gdb_exit
-
-    set pf_prefix $old_ldprefix
-}
+}}
 
 proc test_attach {file displacement {relink_args ""}} {
     global board_info
@@ -429,7 +413,7 @@ proc test_ld {file ifmain trynosym displacement} {
 
     global pf_prefix
     set old_ldprefix $pf_prefix
-    lappend pf_prefix "symbol-less:"
+    append pf_prefix " symbol-less:"
 
     # Test also `exec-file'-command loaded $FILE - therefore without symbols.
     # SYMBOL_OBJFILE is not available and only EXEC_BFD must be used.
@@ -544,7 +528,7 @@ foreach ldprelink {NO YES} {
        set interp_saved ${interp}-saved
 
        set pf_prefix $old_ldprefix
-       lappend pf_prefix "$ldname:"
+       append pf_prefix " $ldname:"
 
        if {$ldsepdebug == "NO"} {
            file_copy $interp_system $interp
@@ -626,7 +610,7 @@ foreach ldprelink {NO YES} {
                    set exec $binprefix-$binname
 
                    set pf_prefix $old_binprefix
-                   lappend pf_prefix "$binname:"
+                   append pf_prefix " $binname:"
 
                    set opts "ldflags=-Wl,$binfile_lib,-rpath,[file dirname $binfile_lib]"
                    if {$binsepdebug != "NO"} {
index 2b3112f..e17a563 100644 (file)
@@ -46,20 +46,16 @@ if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcfile2}" ${binfile2} {debug}] !
 # names.
 # KIND is passed to the "catch" command.
 # MATCH is a boolean saying whether we expect the catchpoint to be hit.
-proc one_catch_load_test {scenario kind match sostop} {
+proc one_catch_load_test {scenario kind match sostop} { with_test_prefix "${scenario}:" {
     global verbose testfile testfile2 binfile2_dlopen
-    global pf_prefix srcfile
+    global srcfile
     global decimal gdb_prompt
 
-    set saved_prefix $pf_prefix
-    append pf_prefix "${scenario}:"
-
     clean_restart $testfile
     gdb_load_shlibs $binfile2_dlopen
 
     if {![runto_main]} {
        fail "can't run to main"
-       set pf_prefix $saved_prefix
        return
     }
 
@@ -97,9 +93,7 @@ proc one_catch_load_test {scenario kind match sostop} {
            fail "continue"
        }
     }
-
-    set pf_prefix $saved_prefix
-}
+}}
 
 one_catch_load_test "plain load" "load" 1 0
 one_catch_load_test "plain load with stop-on-solib-events" "load" 1 1
index 1f23399..61de211 100644 (file)
@@ -30,10 +30,9 @@ if { [istarget "i\[34567\]86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
     return -1
 }
 
-proc disp_step_cross_syscall { syscall } {
+proc disp_step_cross_syscall { syscall } { with_test_prefix " $syscall:" {
     global syscall_insn
     global gdb_prompt
-    global pf_prefix
 
     set testfile "disp-step-$syscall"
 
@@ -47,9 +46,6 @@ proc disp_step_cross_syscall { syscall } {
        return
     }
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$syscall:"
-
     # Delete the breakpoint on main.
     gdb_test_no_output "delete break 1"
 
@@ -94,7 +90,6 @@ proc disp_step_cross_syscall { syscall } {
 
     if {$see_syscall_insn == 0} then {
        fail "find syscall insn in $syscall"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -130,9 +125,7 @@ proc disp_step_cross_syscall { syscall } {
 
     gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker \\(\\) at.*" \
        "continue to marker ($syscall)"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 disp_step_cross_syscall "fork"
 disp_step_cross_syscall "vfork"
index b28f903..b595774 100644 (file)
@@ -63,11 +63,8 @@ if { [gdb_compile_shlib ${solib_srcfile} ${solib_binfile} {}] != "" } {
 
 set solib_binfile_target [gdb_download ${solib_binfile}]
 
-proc one_jit_test {count match_str} {
-    global verbose testfile srcfile2 binfile2 binfile2_dlopen solib_binfile_target solib_binfile_test_msg pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "one_jit_test-$count:"
+proc one_jit_test {count match_str} { with_test_prefix " one_jit_test-$count:" {
+    global verbose testfile srcfile2 binfile2 binfile2_dlopen solib_binfile_target solib_binfile_test_msg
 
     clean_restart $testfile
     gdb_load_shlibs $binfile2
@@ -114,8 +111,7 @@ proc one_jit_test {count match_str} {
     # All jit librares must have been unregistered
     gdb_test "info function jit_function" \
        "All functions matching regular expression \"jit_function\":"
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 one_jit_test 1 "${hex}  jit_function_0000"
 one_jit_test 2 "${hex}  jit_function_0000\[\r\n\]+${hex}  jit_function_0001"
index a1aa351..4b8059f 100644 (file)
@@ -51,11 +51,8 @@ if { [gdb_compile_shlib ${solib_srcfile} ${solib_binfile} {-fPIC}] != "" } {
 
 set solib_binfile_target [gdb_download ${solib_binfile}]
 
-proc one_jit_test {count match_str} {
-    global verbose testfile solib_binfile_target solib_binfile_test_msg pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "one_jit_test-$count:"
+proc one_jit_test {count match_str} { with_test_prefix " one_jit_test-$count:" {
+    global verbose testfile solib_binfile_target solib_binfile_test_msg
 
     clean_restart $testfile
 
@@ -93,9 +90,8 @@ proc one_jit_test {count match_str} {
     gdb_continue_to_breakpoint "break here 2"
     # All jit librares must have been unregistered
     gdb_test "info function jit_function" \
-       "All functions matching regular expression \"jit_function\":" 
-    set pf_prefix $old_pf_prefix
-}
+       "All functions matching regular expression \"jit_function\":"
+}}
 
 one_jit_test 1 "${hex}  jit_function_0000"
 one_jit_test 2 "${hex}  jit_function_0000\[\r\n\]+${hex}  jit_function_0001"
index 1058088..44b415b 100644 (file)
@@ -18,7 +18,7 @@ proc do_test {type} {
 
     global pf_prefix
     set old_prefix $pf_prefix
-    lappend pf_prefix "$typenospace:"
+    append pf_prefix " $typenospace:"
 
     if {[runto "func"]} {
        # Verify that we do not crash when using "return" from a function with
index 4010d33..cb1bd00 100644 (file)
@@ -650,14 +650,10 @@ test_next_with_recursion
 
 #********
 
-proc test_different_dir {type test_different_dir xfail} {
+proc test_different_dir {type test_different_dir xfail} { with_test_prefix " $type:" {
     global srcdir subdir objdir binfile srcfile timeout gdb_prompt
-    global pf_prefix
     global bp_location6 decimal hex
 
-    set old_pf_prefix $pf_prefix
-    append pf_prefix " $type:"
-
     gdb_exit
     gdb_start
     gdb_reinitialize_dir $srcdir/$subdir
@@ -747,9 +743,8 @@ proc test_different_dir {type test_different_dir xfail} {
        gdb_test_no_output "set args main"
     }
 
-    set pf_prefix $old_pf_prefix
 # proc test_different_dir
-}
+}}
 
 
 # now move the .debug file to a different location so that we can test
index c1a653d..6886e04 100644 (file)
@@ -48,12 +48,8 @@ if [get_compiler_info ${binfile}] {
     return -1
 }
 
-set save_pf_prefix $pf_prefix
 # SEP must be last for the possible `unsupported' error path.
-foreach libsepdebug {NO IN SEP} {
-
-    set pf_prefix $save_pf_prefix
-    lappend pf_prefix "$libsepdebug:"
+foreach libsepdebug {NO IN SEP} { with_test_prefix " $libsepdebug:" {
 
     set sep_lib_flags $lib_flags
     if {$libsepdebug != "NO"} {
@@ -135,5 +131,4 @@ foreach libsepdebug {NO IN SEP} {
     gdb_test "break [gdb_get_line_number "break here" ${testfile}.c]" \
            ".*Breakpoint.* at .*" 
     gdb_test "continue" "6: a_static = 46\\r\\n5: a_local = 45\\r\\n4: main_global = 44\\r\\n.*"
-}
-set pf_prefix $save_pf_prefix
+}}
index b83a99c..048e6cf 100644 (file)
@@ -52,12 +52,9 @@ set srcfile ${srcdir}/${subdir}/${testfile}.c
 # false PASS.
 # Prelink first lib1 at 0x40000000 and lib2 at 0x41000000.
 # During second pass try lib1 at 0x50000000 and lib2 at 0x51000000.
-foreach prelink_lib1 {0x40000000 0x50000000} {
+foreach prelink_lib1 {0x40000000 0x50000000} { with_test_prefix " $prelink_lib1:" {
     set prelink_lib2 [format "0x%x" [expr $prelink_lib1 + 0x01000000]]
 
-    set old_prefix $pf_prefix
-    lappend pf_prefix "$prelink_lib1:"
-
     # Library file.
     set binfile_lib1 ${objdir}/${subdir}/${libname}1-${prelink_lib1}.so
     set binfile_lib1_test_msg OBJDIR/${subdir}/${libname}1-${prelink_lib1}.so
@@ -137,6 +134,4 @@ foreach prelink_lib1 {0x40000000 0x50000000} {
     sleep 5
 
     remote_exec build "kill -9 ${testpid}"
-
-    set pf_prefix $old_prefix
-}
+}}
index 8b81453..383ce89 100644 (file)
@@ -25,12 +25,8 @@ if { [build_executable ${testfile}.exp ${testfile} ${testfile}.c {debug}] } {
     return -1
 }
 
-proc test_watchpoint { hw teststr } {
+proc test_watchpoint { hw } {
     global testfile
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$teststr:"
 
     clean_restart ${testfile}
 
@@ -50,12 +46,10 @@ proc test_watchpoint { hw teststr } {
     gdb_test "continue" \
        "atchpoint \[0-9\]+: var\r\n\r\nOld value = 0\r\nNew value = 1\r\n.*watchpoint-stop.*" \
        "continue"
-
-    set pf_prefix $old_pf_prefix
 }
 
 if { ![target_info exists gdb,no_hardware_watchpoints] } {
-    test_watchpoint 1 "hw"
+    with_test_prefix " hw:" { test_watchpoint 1 }
 }
 
-test_watchpoint 0 "sw"
+with_test_prefix " sw:" { test_watchpoint 0 }
index 381c26e..7a252bb 100644 (file)
@@ -894,12 +894,10 @@ proc do_tests {} {
 
 do_tests
 if ![target_info exists gdb,no_hardware_watchpoints] {
-    set save_pf_prefix $pf_prefix
-    lappend pf_prefix "no-hw:"
-
-    set no_hw 1
-    do_tests
-    set pf_prefix $save_pf_prefix
+    with_test_prefix " no-hw:" {
+       set no_hw 1
+       do_tests
+    }
 }
 
 # Restore old timeout
index 9b29b14..ecb99ef 100644 (file)
@@ -33,10 +33,7 @@ if { [prepare_for_testing dw2-noloc.exp "dw2-noloc" {dw2-noloc-main.c dw2-noloc.
 # unresolvable: .symtab entry does not exist for this symbol name.
 # DW_AT_declaration is not present in any of these DIEs.
 
-proc file_symbols {type} {
-    global pf_prefix
-    set old_prefix $pf_prefix
-    lappend pf_prefix "$type:"
+proc file_symbols {type} { with_test_prefix " $type:" {
 
     global gdb_prompt
 
@@ -78,9 +75,7 @@ proc file_symbols {type} {
     # As DW_AT_declaration is not present in this DIE
     # it should print <optimized out>.  As usefulness of such DIE is not
     # clear its resolution is not being tested.
-
-    set pf_prefix $old_prefix
-}
+}}
 
 file_symbols no-run
 
index bce4e88..972fdb2 100644 (file)
@@ -147,15 +147,11 @@ proc test_watchpoint_triggering {type} {
     clear_xfail *-*-*
 }
 
-proc test_watchpoint_all {type} {
-    global pf_prefix
+proc test_watchpoint_all {type} { with_test_prefix " $type:" {
     upvar srcdir srcdir
     upvar subdir subdir
     upvar binfile binfile
 
-    set old_prefix $pf_prefix
-    lappend pf_prefix "$type:"
-
     mi_delete_breakpoints
     mi_gdb_reinitialize_dir $srcdir/$subdir
     mi_gdb_load ${binfile}
@@ -165,9 +161,7 @@ proc test_watchpoint_all {type} {
     #test_rwatch_creation_and_listing $type
     #test_awatch_creation_and_listing $type
     test_watchpoint_triggering $type
-
-    set pf_prefix $old_prefix
-}
+}}
 
 # Run the tests twice, once using software watchpoints...
 mi_gdb_test "567-gdb-set can-use-hw-watchpoints 0" \
index 3324ba8..37a919f 100644 (file)
@@ -146,15 +146,11 @@ proc test_watchpoint_triggering {type} {
     clear_xfail *-*-*
 }
 
-proc test_watchpoint_all {type} {
-    global pf_prefix
+proc test_watchpoint_all {type} { with_test_prefix " $type:" {
     upvar srcdir srcdir
     upvar subdir subdir
     upvar binfile binfile
 
-    set old_prefix $pf_prefix
-    lappend pf_prefix "$type:"
-
     mi_delete_breakpoints
     mi_gdb_reinitialize_dir $srcdir/$subdir
     mi_gdb_load ${binfile}
@@ -164,9 +160,7 @@ proc test_watchpoint_all {type} {
     #test_rwatch_creation_and_listing $type
     #test_awatch_creation_and_listing $type
     test_watchpoint_triggering $type
-
-    set pf_prefix $old_prefix
-}
+}}
 
 # Run the tests twice, once using software watchpoints...
 mi_gdb_test "567-gdb-set can-use-hw-watchpoints 0" \
index 8a14129..c6ced8e 100644 (file)
@@ -30,17 +30,12 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
     return -1
 }
 
-proc do_test { lock_sched } {
-    global pf_prefix
+proc do_test { lock_sched } { with_test_prefix " lock-sched$lock_sched:" {
     global executable
 
-    set save_pf_prefix $pf_prefix
-    lappend pf_prefix "lock-sched$lock_sched:"
-
     clean_restart ${executable}
 
     if ![runto_main] {
-       set pf_prefix $save_pf_prefix
        return -1
     }
 
@@ -57,9 +52,7 @@ proc do_test { lock_sched } {
     gdb_test "continue" \
        ".*is executing new program.*Breakpoint 1, main.* at .*" \
        "continue over exec"
-
-    set pf_prefix $save_pf_prefix
-}
+}}
 
 do_test 0
 do_test 1
index 5404ef4..66f090a 100644 (file)
@@ -31,17 +31,12 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
     return -1
 }
 
-proc do_test { lock_sched } {
-    global pf_prefix
+proc do_test { lock_sched } { with_test_prefix " lock-sched$lock_sched:" {
     global executable
 
-    set save_pf_prefix $pf_prefix
-    lappend pf_prefix "lock-sched$lock_sched:"
-
     clean_restart ${executable}
 
     if ![runto_main] {
-       set pf_prefix $save_pf_prefix
        return -1
     }
 
@@ -62,9 +57,7 @@ proc do_test { lock_sched } {
     gdb_test "continue" \
        ".*is executing new program.*Breakpoint 1, main.* at .*" \
        "continue over exec"
-
-    set pf_prefix $save_pf_prefix
-}
+}}
 
 do_test 0
 do_test 1
index 9c82c2a..83d243f 100644 (file)
@@ -33,17 +33,12 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
     return -1
 }
 
-proc do_test { lock_sched } {
-    global pf_prefix
+proc do_test { lock_sched } { with_test_prefix " lock-sched$lock_sched:" {
     global executable
 
-    set save_pf_prefix $pf_prefix
-    lappend pf_prefix "lock-sched$lock_sched:"
-
     clean_restart ${executable}
 
     if ![runto_main] {
-       set pf_prefix $save_pf_prefix
        return -1
     }
 
@@ -60,9 +55,7 @@ proc do_test { lock_sched } {
     gdb_test "continue" \
        ".*is executing new program.*Breakpoint 1, main.* at .*" \
        "continue over exec"
-
-    set pf_prefix $save_pf_prefix
-}
+}}
 
 do_test 0
 do_test 1
index 943b077..7fce0ef 100644 (file)
@@ -32,17 +32,12 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
     return -1
 }
 
-proc do_test { lock_sched } {
-    global pf_prefix
+proc do_test { lock_sched } { with_test_prefix " lock-sched$lock_sched:" {
     global executable
 
-    set save_pf_prefix $pf_prefix
-    lappend pf_prefix "lock-sched$lock_sched:"
-
     clean_restart ${executable}
 
     if ![runto_main] {
-       set pf_prefix $save_pf_prefix
        return -1
     }
 
@@ -59,9 +54,7 @@ proc do_test { lock_sched } {
     gdb_test "continue" \
        ".*is executing new program.*Breakpoint 1, main.* at .*" \
        "continue over exec"
-
-    set pf_prefix $save_pf_prefix
-}
+}}
 
 do_test 0
 do_test 1
index 814fb02..db05e1f 100644 (file)
@@ -22,21 +22,15 @@ if [is_remote target] {
     return
 }
 
-proc test {type symbol} {
-    global testfile objdir subdir srcdir gdb_prompt
-
-    global pf_prefix
-    set prefix_test $pf_prefix
-    lappend pf_prefix "$type:"
-    set prefix_mt $pf_prefix
+proc test {type symbol} { with_test_prefix " $type:" {
+    global testfile objdir subdir srcdir gdb_prompt pf_prefix
 
     set srcfile_type ${srcdir}/${subdir}/${testfile}-${type}.c
 
-
     # no threads
 
-    set pf_prefix $prefix_mt
-    lappend pf_prefix "singlethreaded:"
+    set prefix_test $pf_prefix
+    append pf_prefix " singlethreaded:"
 
     set executable ${testfile}-${type}-st
     set srcfile_main ${srcdir}/${subdir}/${testfile}-st.c
@@ -98,8 +92,8 @@ proc test {type symbol} {
        return
     }
 
-    set pf_prefix $prefix_mt
-    lappend pf_prefix "multithreaded:"
+    set pf_prefix $prefix_test
+    append pf_prefix " multithreaded:"
 
     set executable ${testfile}-${type}-mt
     set srcfile_main ${srcdir}/${subdir}/${testfile}-mt.c
@@ -151,7 +145,7 @@ proc test {type symbol} {
 
     # cleanup
     set pf_prefix $prefix_test
-}
+}}
 
 test parent FOLLOW_PARENT
 
index f620c07..ab4cd5f 100644 (file)
@@ -38,11 +38,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" ${binfile} executable
     return -1
 }
 
-foreach reorder {0 1} {
-
-    global pf_prefix
-    set prefix_test $pf_prefix
-    lappend pf_prefix "reorder$reorder:"
+foreach reorder {0 1} { with_test_prefix " reorder$reorder:" {
 
     clean_restart $testfile
 
@@ -97,6 +93,4 @@ foreach reorder {0 1} {
     gdb_test "set debug infrun 1"
 
     gdb_continue_to_breakpoint "break-at-exit" ".*break-at-exit.*"
-
-    set pf_prefix $prefix_test
-}
+}}
index 451a0e1..91cdb11 100644 (file)
@@ -71,20 +71,15 @@ if [is_amd64_regs_target] {
 
 # Set tracepoint during tracing experiment.
 
-proc tracepoint_change_loc_1 { trace_type } {
+proc tracepoint_change_loc_1 { trace_type } { with_test_prefix " 1 $trace_type:" {
     global testfile
     global srcfile
     global pcreg
     global gdb_prompt
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 1 $trace_type:"
 
     clean_restart ${testfile}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
     gdb_test_no_output "delete break 1"
@@ -120,7 +115,6 @@ proc tracepoint_change_loc_1 { trace_type } {
        }
        -re ".*$gdb_prompt $" {
            kfail "gdb/13392" "continue to marker 2"
-           set pf_prefix $old_pf_prefix
            return
        }
     }
@@ -143,23 +137,17 @@ proc tracepoint_change_loc_1 { trace_type } {
 
     gdb_test "tfind" "Found trace frame 0, tracepoint 4.*" "tfind frame 0"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Set pending tracepoint.
 
-proc tracepoint_change_loc_2 { trace_type } {
+proc tracepoint_change_loc_2 { trace_type } { with_test_prefix " 2 $trace_type:" {
     global srcdir
     global srcfile
     global subdir
     global pcreg
     global binfile
     global gdb_prompt
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 2 $trace_type:"
 
     gdb_exit
     gdb_start
@@ -218,7 +206,6 @@ proc tracepoint_change_loc_2 { trace_type } {
        }
        -re ".*$gdb_prompt $" {
            kfail "gdb/13392" "continue to marker 1"
-           set pf_prefix $old_pf_prefix
            return
        }
     }
@@ -247,9 +234,7 @@ proc tracepoint_change_loc_2 { trace_type } {
     gdb_test "tfind" "Found trace frame 1, tracepoint 1.*" "tfind frame 1"
     gdb_test "tfind" "Found trace frame 2, tracepoint 1.*" "tfind frame 2"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 tracepoint_change_loc_1 "trace"
 tracepoint_change_loc_2 "trace"
index 9dc8706..7a9d01d 100644 (file)
@@ -60,16 +60,12 @@ if ![gdb_target_supports_trace] {
 
 # Verify pending tracepoint is resolved to running to main.
 
-proc pending_tracepoint_resolved { trace_type } {
+proc pending_tracepoint_resolved { trace_type } { with_test_prefix " $trace_type resolved:" {
     global srcdir
     global subdir
     global binfile
     global srcfile
     global lib_sl1
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "resolved:"
 
     # Start with a fresh gdb.
     gdb_exit
@@ -101,22 +97,16 @@ proc pending_tracepoint_resolved { trace_type } {
        "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
 \[0-9\]+\[\t \]+\(fast |\)tracepoint\[ \]+keep y.*pendfunc.*" \
        "single tracepoint info"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Verify pending tracepoint is resolved and works as expected.
 
-proc pending_tracepoint_works { trace_type } {
+proc pending_tracepoint_works { trace_type } { with_test_prefix " $trace_type works:" {
     global executable
     global srcfile
     global lib_sl1
-    global pf_prefix
     global gdb_prompt
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "works:"
-
     # Restart with a fresh gdb.
     clean_restart $executable
 
@@ -150,7 +140,6 @@ proc pending_tracepoint_works { trace_type } {
        }
        -re ".*$gdb_prompt $" {
            kfail "gdb/13392" "continue to marker"
-           set pf_prefix $old_pf_prefix
            return
        }
     }
@@ -161,27 +150,22 @@ proc pending_tracepoint_works { trace_type } {
     gdb_test "tfind" "Found trace frame 1, tracepoint 1.*" "tfind test frame 1"
     gdb_test "tfind" "Found trace frame 2, tracepoint 1.*" "tfind test frame 2"
     gdb_test "tfind" "Target failed to find requested trace frame..*" "tfind test frame"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Verify pending tracepoint is resolved during trace.
 
-proc pending_tracepoint_resolved_during_trace { trace_type } {
+proc pending_tracepoint_resolved_during_trace { trace_type } \
+{ with_test_prefix " $trace_type resolved_in_trace:" \
+{
     global executable
     global srcfile
     global gdb_prompt
     global lib_sl1
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "resolved_in_trace:"
 
     # Start with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -211,7 +195,6 @@ proc pending_tracepoint_resolved_during_trace { trace_type } {
        }
        -re ".*$gdb_prompt $" {
            kfail "gdb/13392" "continue to marker 2"
-           set pf_prefix $old_pf_prefix
            return
        }
     }
@@ -226,28 +209,23 @@ proc pending_tracepoint_resolved_during_trace { trace_type } {
 
     gdb_test "tfind start" "#0 .*" "tfind test frame 0"
     gdb_test "tfind" "Target failed to find requested trace frame..*" "tfind test frame"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Verify pending tracepoint is resolved and installed during trace.
 
-proc pending_tracepoint_installed_during_trace { trace_type } {
+proc pending_tracepoint_installed_during_trace { trace_type } \
+{ with_test_prefix " $trace_type installed_in_trace:" \
+{
     global executable
     global srcfile
     global lib_sl1
     global gdb_prompt
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "installed_in_trace:"
-
     # Start with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -281,7 +259,6 @@ proc pending_tracepoint_installed_during_trace { trace_type } {
        }
        -re ".*$gdb_prompt $" {
            kfail "gdb/13392" "continue to marker 2"
-           set pf_prefix $old_pf_prefix
            return
        }
     }
@@ -296,28 +273,23 @@ proc pending_tracepoint_installed_during_trace { trace_type } {
 
     gdb_test "tfind start" "#0  $hex in pendfunc2 .*" "tfind test frame 0"
     gdb_test "tfind" "Target failed to find requested trace frame..*" "tfind test frame"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 
 # Verify pending tracepoint will no longer work if we disconnect during tracing.
 
-proc pending_tracepoint_disconnect_during_trace { trace_type } {
+proc pending_tracepoint_disconnect_during_trace { trace_type } \
+{ with_test_prefix " $trace_type disconn:" \
+{
     global executable
     global srcfile
     global lib_sl1
-    global pf_prefix
     global gdb_prompt
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "disconn:"
-
     # Start with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -349,28 +321,23 @@ proc pending_tracepoint_disconnect_during_trace { trace_type } {
           }
        }
     }
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 
 # Verify disconnect after pending tracepoint has been resolved.
 
-proc pending_tracepoint_disconnect_after_resolved { trace_type } {
+proc pending_tracepoint_disconnect_after_resolved { trace_type } \
+{ with_test_prefix " $trace_type disconn_resolved:" \
+{
     global executable
     global srcfile
     global lib_sl1
     global gdb_prompt
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "disconn_resolved:"
 
     # Start with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -407,27 +374,22 @@ proc pending_tracepoint_disconnect_after_resolved { trace_type } {
            pass "$test"
        }
     }
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Verify action works properly in resolved tracepoint.
 
-proc pending_tracepoint_with_action_resolved { trace_type } {
+proc pending_tracepoint_with_action_resolved { trace_type } \
+{ with_test_prefix " $trace_type action_resolved:" \
+{
     global executable
     global srcfile
     global lib_sl1
     global gdb_prompt
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "$trace_type" "action_resolved:"
 
     # Start with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -467,7 +429,6 @@ proc pending_tracepoint_with_action_resolved { trace_type } {
        }
        -re ".*$gdb_prompt $" {
            kfail "gdb/13392" "continue to marker 2"
-           set pf_prefix $old_pf_prefix
            return
        }
     }
@@ -483,9 +444,7 @@ proc pending_tracepoint_with_action_resolved { trace_type } {
     gdb_test "tfind start" "#0 .*" "tfind test frame 0"
     gdb_test "tdump" "Data collected at tracepoint .*, trace frame \[0-9\]:.*\\$${pcreg} = .*"
     gdb_test "tfind" "Target failed to find requested trace frame..*" "tfind test frame"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 pending_tracepoint_resolved "trace"
 
index 9c7e915..859e9cc 100644 (file)
@@ -39,19 +39,14 @@ if ![gdb_target_supports_trace] {
 
 # Verify that the sequence of commands "tstart tstop tstart" works well.
 
-proc test_tstart_tstop_tstart { } {
+proc test_tstart_tstop_tstart { } { with_test_prefix " tstart_tstop_tstart:" {
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix tstart_tstop_tstart:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
         fail "Can't run to main"
-        set pf_prefix $old_pf_prefix
         return -1
     }
 
@@ -64,25 +59,18 @@ proc test_tstart_tstop_tstart { } {
     gdb_test_no_output "tstop"
 
     gdb_test_no_output "tstart"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Verify the sequence of commands "tstart tstart" works well.
 
-proc test_tstart_tstart { } {
+proc test_tstart_tstart { } { with_test_prefix " tstart_tstart:" {
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix tstart_tstart:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
         fail "Can't run to main"
-        set pf_prefix $old_pf_prefix
         return -1
     }
 
@@ -90,25 +78,18 @@ proc test_tstart_tstart { } {
     gdb_test_no_output "tstart"
 
     gdb_test "tstart" "" "tstart again" "A trace is running already.  Start a new run\\? \\(y or n\\) " "y"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Verify that trace stops clearly when trace buffer is full.
 
-proc test_buffer_full_tstart { } {
+proc test_buffer_full_tstart { } { with_test_prefix " buffer_full_tstart:" {
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix buffer_full_tstart:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
         fail "Can't run to main"
-        set pf_prefix $old_pf_prefix
         return -1
     }
 
@@ -123,12 +104,10 @@ proc test_buffer_full_tstart { } {
 
     gdb_test "tstatus" ".*buffer was full.*"
     gdb_test_no_output "tstart"
-
-    set old_pf_prefix $pf_prefix
-}
+}}
 
 test_tstart_tstop_tstart
 
 test_tstart_tstart
 
-test_buffer_full_tstart
\ No newline at end of file
+test_buffer_full_tstart
index c9947dc..54f96a3 100644 (file)
@@ -52,19 +52,14 @@ if { ![gdb_target_supports_trace] } then {
 
 gdb_load_shlibs $libipa
 
-proc strace_info_marker { } {
+proc strace_info_marker { } { with_test_prefix " info_marker" {
     global executable
-    global pf_prefix
     global gdb_prompt
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "info_marker"
-
     # Restart with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -79,24 +74,18 @@ proc strace_info_marker { } {
            pass "info threads"
        }
     }
-    set pf_prefix $old_pf_prefix
-}
+}}
 
-proc strace_probe_marker { } {
+proc strace_probe_marker { } { with_test_prefix " probe_marker" {
     global executable
-    global pf_prefix
     global expect_out
     global gdb_prompt
     global hex
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "probe_marker"
-
     # Restart with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -114,25 +103,18 @@ proc strace_probe_marker { } {
     gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0"
     gdb_test "tfind" "Found trace frame 1, tracepoint .*" "tfind frame 1"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
+}}
 
-    set pf_prefix $old_pf_prefix
-}
-
-proc strace_trace_on_same_addr { type } {
+proc strace_trace_on_same_addr { type } { with_test_prefix " trace_same_addr $type" {
     global executable
-    global pf_prefix
     global expect_out
     global gdb_prompt
     global hex
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "trace_same_addr" "$type"
-
     # Restart with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -211,24 +193,19 @@ proc strace_trace_on_same_addr { type } {
        gdb_test "tfind" "Found trace frame 3, tracepoint .*" "tfind frame 3"
        gdb_test "tfind" "Target failed to find requested trace frame\\..*"
     }
-    set pf_prefix $old_pf_prefix
-}
+}}
+
+proc strace_trace_on_diff_addr { } { with_test_prefix " trace_diff_addr" {
 
-proc strace_trace_on_diff_addr { } {
     global executable
-    global pf_prefix
     global expect_out
     global gdb_prompt
     global hex
 
-    set old_pf_prefix $pf_prefix
-    lappend pf_prefix "trace_diff_addr"
-
     # Restart with a fresh gdb.
     clean_restart $executable
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -269,9 +246,7 @@ proc strace_trace_on_diff_addr { } {
     gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0"
     gdb_test "tfind" "Found trace frame 1, tracepoint .*" "tfind frame 1"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 strace_info_marker
 strace_probe_marker
index 1c372d4..5fcc1ac 100644 (file)
@@ -55,19 +55,16 @@ if [is_amd64_regs_target] {
 
 # Set breakpoint and tracepoint at the same address.
 
-proc break_trace_same_addr_1 { trace_type option } {
+proc break_trace_same_addr_1 { trace_type option } \
+{ with_test_prefix " 1 $trace_type $option:" \
+{
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 1 $trace_type $option:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -87,25 +84,20 @@ proc break_trace_same_addr_1 { trace_type option } {
 
     gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Set multiple tracepoints at the same address.
 
-proc break_trace_same_addr_2 { trace_type1 trace_type2 option } {
+proc break_trace_same_addr_2 { trace_type1 trace_type2 option } \
+{ with_test_prefix " 2 $trace_type1 $trace_type2 $option:" \
+{
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 2 $trace_type1 $trace_type2 $option:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -129,26 +121,21 @@ proc break_trace_same_addr_2 { trace_type1 trace_type2 option } {
     gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0"
     gdb_test "tfind" "Found trace frame 1, tracepoint .*" "tfind frame 1"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Set breakpoint and tracepoint at the same address.  Delete breakpoint, and verify
 # that tracepoint still works.
 
-proc break_trace_same_addr_3 { trace_type option } {
+proc break_trace_same_addr_3 { trace_type option } \
+{ with_test_prefix " 3 $trace_type $option:" \
+{
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 3 $trace_type $option:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -169,26 +156,22 @@ proc break_trace_same_addr_3 { trace_type option } {
 
     gdb_test "tfind" "Found trace frame 0, tracepoint .*" "tfind frame 0"
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Set breakpoint and tracepoint at the same address.  Delete tracepoint, and verify
 # that breakpoint still works.
 
-proc break_trace_same_addr_4 { trace_type option } {
+proc break_trace_same_addr_4 { trace_type option } \
+{ with_test_prefix " 4 $trace_type $option:" \
+{
     global executable
-    global pf_prefix
     global hex
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 4 $trace_type $option:"
 
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -210,31 +193,26 @@ proc break_trace_same_addr_4 { trace_type option } {
     gdb_test "tstop" "Trace is not running.*"
 
     gdb_test "tfind" "Target failed to find requested trace frame\\..*"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Set two tracepoints TRACE1 and TRACE2 at two locations, and start tracing.
 # Then, set tracepoint TRACE3 at either of these two locations.
 # TRACE3_AT_FIRST_LOC is a boolean variable to decide insert TRACE3 at which
 # of two locations.  Verify  these tracepoints work as expected.
 
-proc break_trace_same_addr_5 { trace1 trace2 trace3 trace3_at_first_loc } {
+proc break_trace_same_addr_5 { trace1 trace2 trace3 trace3_at_first_loc } \
+{ with_test_prefix " 5 $trace1 $trace2 ${trace3}@${trace3_at_first_loc}:" \
+{
     global executable
-    global pf_prefix
     global hex
     global fpreg
     global spreg
     global pcreg
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 5 $trace1 $trace2 ${trace3}@${trace3_at_first_loc}:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -289,29 +267,24 @@ proc break_trace_same_addr_5 { trace1 trace2 trace3 trace3_at_first_loc } {
     gdb_test "tdump" \
        "Data collected at tracepoint .*, trace frame \[0-9\]:.*\\$${fpreg} = .*" \
        "tdump 3"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 # Set two tracepoints at the same address, and enable/disable them.  Verify
 # tracepoints work as expect.
 
-proc break_trace_same_addr_6 { trace1 enable1 trace2 enable2 } {
+proc break_trace_same_addr_6 { trace1 enable1 trace2 enable2 } \
+{ with_test_prefix " 6 $trace1 $enable1 $trace2 $enable2:" \
+{
     global executable
-    global pf_prefix
     global hex
     global gdb_prompt
     global spreg
     global pcreg
 
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix 6 $trace1 $enable1 $trace2 $enable2:"
-
     # Start with a fresh gdb.
     clean_restart ${executable}
     if ![runto_main] {
        fail "Can't run to main"
-       set pf_prefix $old_pf_prefix
        return -1
     }
 
@@ -362,9 +335,7 @@ proc break_trace_same_addr_6 { trace1 enable1 trace2 enable2 } {
        gdb_test "tfind tracepoint 5" "Target failed to find requested trace frame.*" \
            "tfind test frame of tracepoint 5"
     }
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 
 foreach break_always_inserted { "on" "off" } {
index 87af860..199e219 100644 (file)
@@ -136,13 +136,9 @@ proc test_maybe_regvar_display { var } {
 # Test procs
 #
 
-proc gdb_collect_args_test {} {
+proc gdb_collect_args_test {} { with_test_prefix " unavailable arguments:" {
     global cr
     global gdb_prompt
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix unavailable arguments:"
 
     prepare_for_trace_test
 
@@ -205,17 +201,11 @@ proc gdb_collect_args_test {} {
     gdb_test "tfind none" \
        "#0  end .*" \
        "cease trace debugging"
+}}
 
-    set pf_prefix $old_pf_prefix
-}
-
-proc gdb_collect_locals_test { func msg } {
+proc gdb_collect_locals_test { func msg } { with_test_prefix " unavailable locals: $msg:" {
     global cr
     global gdb_prompt
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix unavailable locals: $msg:"
 
     prepare_for_trace_test
 
@@ -262,18 +252,12 @@ proc gdb_collect_locals_test { func msg } {
     gdb_test "tfind none" \
        "#0  end .*" \
        "cease trace debugging"
+}}
 
-    set pf_prefix $old_pf_prefix
-}
-
-proc gdb_unavailable_registers_test { } {
+proc gdb_unavailable_registers_test { } { with_test_prefix " unavailable registers:" {
     global gdb_prompt
     global spreg
     global pcreg
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix unavailable registers:"
 
     prepare_for_trace_test
 
@@ -319,19 +303,13 @@ proc gdb_unavailable_registers_test { } {
        "info registers \$$spreg reports not available"
 
     gdb_test "tfind none" "#0  end .*" "cease trace debugging"
+}}
 
-    set pf_prefix $old_pf_prefix
-}
-
-proc gdb_collect_globals_test { } {
+proc gdb_collect_globals_test { } { with_test_prefix " collect globals:" {
     global ws
     global cr
     global gdb_prompt
     global hex
-    global pf_prefix
-
-    set old_pf_prefix $pf_prefix
-    set pf_prefix "$pf_prefix collect globals:"
 
     prepare_for_trace_test
 
@@ -518,8 +496,9 @@ proc gdb_collect_globals_test { } {
 
     gdb_test_no_output "set print object on"
 
-    set old_pf_prefix_2 $pf_prefix
-    set pf_prefix "$pf_prefix print object on:"
+    global pf_prefix
+    set old_pf_prefix $pf_prefix
+    append pf_prefix " print object on:"
 
     # With print object on, printing a pointer may need to fetch the
     # pointed-to object, to check its run-time type.  Make sure that
@@ -539,11 +518,11 @@ proc gdb_collect_globals_test { } {
     gdb_test "print derived_whole" \
        " = \\(Derived\\) {<Middle> = {<Base> = {x = 2}, _vptr.Middle = $hex, y = 3}, _vptr.Derived = $hex, z = 4}"
 
-    set pf_prefix $old_pf_prefix_2
+    set pf_prefix $old_pf_prefix
 
     gdb_test_no_output "set print object off"
 
-    set pf_prefix "$pf_prefix print object off:"
+    append pf_prefix " print object off:"
 
     gdb_test "print virtualp" " = \\(Virtual \\*\\) <unavailable>"
 
@@ -559,7 +538,7 @@ proc gdb_collect_globals_test { } {
     gdb_test "print derived_whole" \
        " = {<Middle> = {<Base> = {x = 2}, _vptr.Middle = $hex, y = 3}, _vptr.Derived = $hex, z = 4}"
 
-    set pf_prefix $old_pf_prefix_2
+    set pf_prefix $old_pf_prefix
 
     # An instance of a virtual class where we collected everything but
     # the vptr.
@@ -569,9 +548,7 @@ proc gdb_collect_globals_test { } {
     gdb_test "tfind none" \
        "#0  end .*" \
        "cease trace debugging"
-
-    set pf_prefix $old_pf_prefix
-}
+}}
 
 proc gdb_trace_collection_test {} {
     gdb_collect_globals_test
index 00fe71c..3a43f95 100644 (file)
@@ -1481,6 +1481,92 @@ proc skip_shlib_tests {} {
     return 1
 }
 
+# Test files shall make sure all the test result lines in gdb.sum are
+# unique in a test run, so that comparing the gdb.sum files of two
+# test runs gives correct results.  Test files that exercise
+# variations of the same tests more than once, shall prefix the
+# different test invocations with different identifying strings in
+# order to make them unique.
+#
+# About test prefixes:
+#
+# $pf_prefix is the string that dejagnu prints after the result (FAIL,
+# PASS, etc.), and before the test message/name in gdb.sum.  E.g., the
+# underlined substring in
+#
+#  PASS: gdb.base/mytest.exp: some test
+#        ^^^^^^^^^^^^^^^^^^^^
+#
+# is $pf_prefix.
+#
+# The easiest way to adjust the test prefix is to append a test
+# variation prefix to the $pf_prefix, using the with_test_prefix
+# procedure.  E.g.,
+#
+# proc do_tests {} {
+#   gdb_test ... ... "test foo"
+#   gdb_test ... ... "test bar"
+#
+#   with_test_prefix " subvariation a:" {
+#     gdb_test ... ... "test x"
+#   }
+#
+#   with_test_prefix " subvariation b:" {
+#     gdb_test ... ... "test x"
+#   }
+# }
+#
+# with_test_prefix " variation1:" {
+#   ...do setup for variation 1...
+#   do_tests
+# }
+#
+# with_test_prefix " variation2:" {
+#   ...do setup for variation 2...
+#   do_tests
+# }
+#
+# Results in:
+#
+#  PASS: gdb.base/mytest.exp: variation1: test foo
+#  PASS: gdb.base/mytest.exp: variation1: test bar
+#  PASS: gdb.base/mytest.exp: variation1: subvariation a: test x
+#  PASS: gdb.base/mytest.exp: variation1: subvariation b: test x
+#  PASS: gdb.base/mytest.exp: variation2: test foo
+#  PASS: gdb.base/mytest.exp: variation2: test bar
+#  PASS: gdb.base/mytest.exp: variation2: subvariation a: test x
+#  PASS: gdb.base/mytest.exp: variation2: subvariation b: test x
+#
+# If for some reason more flexibility is necessary, one can also
+# manipulate the pf_prefix global directly, treating it as a string.
+# E.g.,
+#
+#   global pf_prefix
+#   set saved_pf_prefix
+#   append pf_prefix "${foo} bar"
+#   ... actual tests ...
+#   set pf_prefix $saved_pf_prefix
+#
+
+# Run BODY in the context of the caller, with the current test prefix
+# (pf_prefix) appended with PREFIX.  Returns the result of BODY.
+#
+proc with_test_prefix { prefix body } {
+  global pf_prefix
+
+  set saved $pf_prefix
+  append pf_prefix $prefix
+  set code [catch {uplevel 1 $body} result]
+  set pf_prefix $saved
+
+  if {$code == 1} {
+      global errorInfo errorCode
+      return -code $code -errorinfo $errorInfo -errorcode $errorCode $result
+  } else {
+      return -code $code $result
+  }
+}
+
 # Return 1 if _Complex types are supported, otherwise, return 0.
 
 proc support_complex_tests {} {