From 297e9a75f245825e842054496c132f04b459fc78 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 27 Oct 2020 23:17:09 +0100 Subject: [PATCH] [gdb/testsuite] Fix DUPLICATEs in gdb.base/multi-forks.exp When running test-case gdb.base/multi-forks.exp I get: ... DUPLICATE: gdb.base/multi-forks.exp: run to exit 2 DUPLICATE: gdb.base/multi-forks.exp: run to exit 2 ... Fix these by using test_with_prefix. Tested on x86_64-linux. --- gdb/testsuite/gdb.base/multi-forks.exp | 46 +++++++++++++++----------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/gdb/testsuite/gdb.base/multi-forks.exp b/gdb/testsuite/gdb.base/multi-forks.exp index 59d953b04d6..8aa349bc117 100644 --- a/gdb/testsuite/gdb.base/multi-forks.exp +++ b/gdb/testsuite/gdb.base/multi-forks.exp @@ -104,26 +104,32 @@ proc continue_to_exit_bp_loc {} { # zero means to take the child's branch; a pid means to take the # parent's branch. -# First set gdb to follow the child. -# The result should be that each of the 4 forks returns zero. - -clean_restart ${binfile} -runto_main -gdb_test_no_output "set follow-fork child" -continue_to_exit_bp_loc - -gdb_test "print pids" "\\$.* = \\{0, 0, 0, 0\\}.*" "follow child, print pids" - -# Now set gdb to follow the parent. -# Result should be that none of the 4 forks returns zero. - -clean_restart ${binfile} -runto_main -gdb_test_no_output "set follow-fork parent" "" -continue_to_exit_bp_loc - -gdb_test "print pids\[0\]==0 || pids\[1\]==0 || pids\[2\]==0 || pids\[3\]==0" \ - " = 0" "follow parent, print pids" +foreach mode { "child" "parent" } { + clean_restart ${binfile} + runto_main + + gdb_test_no_output "set follow-fork $mode" + with_test_prefix "follow $mode" { + continue_to_exit_bp_loc + + set test "print pids" + if { $mode eq "child" } { + # Gdb is set to follow the child. + # The result should be that each of the 4 forks returns zero. + gdb_test "print pids" "\\$.* = \\{0, 0, 0, 0\\}.*" $test + } else { + # Gdb is set to follow the parent. + # Result should be that none of the 4 forks returns zero. + set val \ + [join [list \ + "pids\[0\]==0" \ + "pids\[1\]==0" \ + "pids\[2\]==0" \ + "pids\[3\]==0"] " || "] + gdb_test "print $val" " = 0" $test + } + } +} # # Now test with detach-on-fork off. -- 2.30.2