From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14582 invoked by alias); 12 Jun 2012 14:51:17 -0000 Received: (qmail 14573 invoked by uid 22791); 12 Jun 2012 14:51:16 -0000 X-SWARE-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 12 Jun 2012 14:50:55 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q5CEoptG018735 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 12 Jun 2012 10:50:51 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q5CEon3S032305; Tue, 12 Jun 2012 10:50:50 -0400 Message-ID: <4FD75749.3040305@redhat.com> Date: Tue, 12 Jun 2012 14:51:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: Yao Qi CC: gdb-patches@sourceware.org Subject: Re: [PATCH 1/4] New test for removing socket file in gdb.trace/strace.exp. References: <1339246002-1987-1-git-send-email-yao@codesourcery.com> <1339246002-1987-2-git-send-email-yao@codesourcery.com> In-Reply-To: <1339246002-1987-2-git-send-email-yao@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-06/txt/msg00348.txt.bz2 On 06/09/2012 01:46 PM, Yao Qi wrote: > This new test can expose the problem that socket file is not removed > under some different situations, > > We'll see three fails in both native and gdbserver testing, > > FAIL: gdb.trace/strace.exp: remove_socket_after_quit: socket file removed > FAIL: gdb.trace/strace.exp: remove_socket_after_detach: socket file removed > FAIL: gdb.trace/strace.exp: remove_socket_after_continue: socket file removed > > gdb/testsuite: > > 2012-06-09 Yao Qi > > PR gdb/14161. > * gdb.trace/strace.exp (strace_remove_socket): New proc. Would be more complete if said something about the new uses too. > --- > gdb/testsuite/gdb.trace/strace.exp | 69 ++++++++++++++++++++++++++++++++++++ > 1 files changed, 69 insertions(+), 0 deletions(-) > > diff --git a/gdb/testsuite/gdb.trace/strace.exp b/gdb/testsuite/gdb.trace/strace.exp > index 51da92b..f141e9b 100644 > --- a/gdb/testsuite/gdb.trace/strace.exp > +++ b/gdb/testsuite/gdb.trace/strace.exp > @@ -39,6 +39,68 @@ if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $additional_flags > return -1 > } > > +# Test socket file is removed when GDB quit, detach or resume inferior until it > +# exits. I think you meant: # Test that the socket file is removed when GDB quits, detaches or # resumes the inferior until it exits. > + > +proc strace_remove_socket { action } { > + with_test_prefix "remove_socket_after_${action}" { > + > + global executable > + global gdb_prompt > + > + # Restart with a fresh gdb. > + clean_restart $executable > + if ![runto_main] { > + fail "Can't run to main" > + return -1 > + } > + > + # List the markers in program. > + gdb_test "info static-tracepoint-markers" \ > + ".*ust/bar\[\t \]+n\[\t \]+.*ust/bar2\[\t \]+n\[\t \]+.*" > + > + set pid "" > + set test "collect pid" > + gdb_test_multiple "info inferiors" $test { > + -re "process (\[-0-9a-fx\]+) \[^\n\]*\n.*${gdb_prompt} $" { > + set pid $expect_out(1,string) > + pass $test > + } > + -re ".*${gdb_prompt} $" { > + fail $test > + } > + } > + > + set test "socket file exists" > + set socket_file "/tmp/gdb_ust${pid}" > + if { [file exists $socket_file] } { > + pass $test > + } else { > + fail $test > + } This won't work with remote host testing. This file is really a file on the target. Why not use "remote_file target exists" ? > + > + send_gdb "${action}\n" > + gdb_expect { > + -re "A debugging session is active.\r\n.*\r\nQuit anyway\\? \\(y or n\\) $" { > + send_gdb "y\n" > + } > + -re "Detaching .*, process .*$" { > + } > + -re "Continuing.*$" { > + } > + } gdb_test_multiple ? > + > + sleep 2 > + > + set test "socket file removed" > + if { [file exists $socket_file] } { > + fail $test > + } else { > + pass $test > + } > + > +}} > + > proc strace_info_marker { } { with_test_prefix "info_marker" { > global executable > global gdb_prompt > @@ -253,6 +315,9 @@ if ![runto_main] { > if { ![is_remote target] > && ([istarget "x86_64-*-linux*"] || [istarget "i\[34567\]86-*-linux*"]) } { > strace_info_marker > + strace_remove_socket "quit" > + strace_remove_socket "detach" > + strace_remove_socket "continue" > return > } > > @@ -263,6 +328,10 @@ if { ![gdb_target_supports_trace] } then { > > gdb_load_shlibs $libipa > > +strace_remove_socket "quit" > +strace_remove_socket "detach" > +strace_remove_socket "continue" > + > strace_info_marker > strace_probe_marker -- Pedro Alves