From 9a70630256e21a7b86344d555dbe39407e998f91 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Mon, 11 Jan 2016 22:20:16 +0100 Subject: [PATCH] testsuite: Regression for foll-vfork.exp fe33faff35a8ee19db823149e764e3373e603bb9 is the first bad commit commit fe33faff35a8ee19db823149e764e3373e603bb9 Author: Simon Marchi Date: Tue Dec 22 10:52:31 2015 -0500 Remove HP-UX reference in foll-vfork.exp FAIL: gdb.base/foll-vfork.exp: exec: vfork parent follow, finish after tcatch vfork: continue to vfork FAIL: gdb.base/foll-vfork.exp: exec: vfork child follow, finish after tcatch vfork: continue to vfork FAIL: gdb.base/foll-vfork.exp: exit: vfork parent follow, finish after tcatch vfork: continue to vfork FAIL: gdb.base/foll-vfork.exp: exit: vfork child follow, finish after tcatch vfork: continue to vfork It happens for plain gdb.base/foll-vfork.exp runtest on Fedora 23 x86_64. -Temporary catchpoint 2 (vforked process 24562), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M +Temporary catchpoint 2 (vforked process 25345), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M 52 pushq %rdi^M Current language: auto^M The current source language is "auto; currently asm".^M -(gdb) PASS: gdb.base/foll-vfork.exp: exec: vfork parent follow, finish after tcatch vfork: continue to vfork +(gdb) FAIL: gdb.base/foll-vfork.exp: exec: vfork parent follow, finish after tcatch vfork: continue to vfork -Temporary catchpoint 2 (vforked process 24629), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M +Temporary catchpoint 2 (vforked process 25411), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M 52 pushq %rdi^M Current language: auto^M The current source language is "auto; currently asm".^M -(gdb) PASS: gdb.base/foll-vfork.exp: exec: vfork child follow, finish after tcatch vfork: continue to vfork +(gdb) FAIL: gdb.base/foll-vfork.exp: exec: vfork child follow, finish after tcatch vfork: continue to vfork So I have reverted it and just simplified the comment. The third case is not necessary during testing but I have changed back all the 3 cases. Pedro Alves: I know it was that way before, but would you mind moving this to a helper proc. gdb/testsuite/ChangeLog 2016-01-11 Jan Kratochvil Pedro Alves * gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow) (tcatch_vfork_then_child_follow_exec) (tcatch_vfork_then_child_follow_exit): Revert back DWARF vfork identification. --- gdb/testsuite/ChangeLog | 8 ++++++++ gdb/testsuite/gdb.base/foll-vfork.exp | 27 +++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a0eba336934..8b0425b1d47 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2016-01-11 Jan Kratochvil + Pedro Alves + + * gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow) + (tcatch_vfork_then_child_follow_exec) + (tcatch_vfork_then_child_follow_exit): Revert back DWARF vfork + identification. + 2016-01-11 Jan Kratochvil * gdb.guile/scm-value.exp (test_value_in_inferior): Set print elements diff --git a/gdb/testsuite/gdb.base/foll-vfork.exp b/gdb/testsuite/gdb.base/foll-vfork.exp index ed25487015b..173a7c3bddf 100644 --- a/gdb/testsuite/gdb.base/foll-vfork.exp +++ b/gdb/testsuite/gdb.base/foll-vfork.exp @@ -212,6 +212,21 @@ proc vfork_and_exec_child_follow_through_step {} { exec sleep 1 }} +proc continue_to_vfork {} { + global gdb_prompt + + # A vfork catchpoint may stop in either "vfork" or "_vfork". + set test "continue to vfork" + gdb_test_multiple "continue" $test { + -re "vfork \\(\\) at .*$gdb_prompt $" { + pass $test + } + -re "0x\[0-9a-fA-F\]*.*(vfork|__kernel_v?syscall).*$gdb_prompt " { + pass $test + } + } +} + proc tcatch_vfork_then_parent_follow {} { with_test_prefix "vfork parent follow, finish after tcatch vfork" { global gdb_prompt @@ -222,8 +237,8 @@ proc tcatch_vfork_then_parent_follow {} { gdb_test_no_output "set follow-fork parent" gdb_test "tcatch vfork" "Catchpoint .*(vfork).*" - gdb_test "continue" "0x\[0-9a-fA-F\]*.*(vfork|__kernel_v?syscall).*" \ - "continue to vfork" + + continue_to_vfork set linenum [gdb_get_line_number "pid = vfork ();"] set test "finish" @@ -254,8 +269,8 @@ proc tcatch_vfork_then_child_follow_exec {} { gdb_test_no_output "set follow-fork child" gdb_test "tcatch vfork" "Catchpoint .*(vfork).*" - gdb_test "continue" "0x\[0-9a-fA-F\]*.*(vfork|__kernel_v?syscall).*" \ - "continue to vfork" + + continue_to_vfork set linenum1 [gdb_get_line_number "pid = vfork ();"] set linenum2 [gdb_get_line_number "printf(\"Hello from vforked-prog" ${srcfile2}] @@ -290,8 +305,8 @@ proc tcatch_vfork_then_child_follow_exit {} { gdb_test_no_output "set follow-fork child" gdb_test "tcatch vfork" "Catchpoint .*(vfork).*" - gdb_test "continue" "0x\[0-9a-fA-F\]*.*(vfork|__kernel_v?syscall).*" \ - "continue to vfork" + + continue_to_vfork set test "finish" gdb_test_multiple "finish" $test { -- 2.30.2