This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA]: Test for threads attach/detach
- To: Mark Kettenis <kettenis at wins dot uva dot nl>
- Subject: Re: [RFA]: Test for threads attach/detach
- From: Michael Snyder <msnyder at cygnus dot com>
- Date: Wed, 25 Jul 2001 15:57:07 -0700
- CC: gdb-patches at sources dot redhat dot com, fnasser at cygnus dot com
- Organization: Red Hat
- References: <200105061711.f46HBRn00371@delius.kettenis.local>
Hey Mark,
Did you ever get resolution for this new test?
Michael
Mark Kettenis wrote:
>
> Better get aproval for this stuff first :-).
>
> This is supposed to test attaching to a multi-threaded program. Only
> executed on Linux for now.
>
> OK, to check this in?
>
> Mark
>
> Index: testsuite/ChangeLog
> from Mark Kettenis <kettenis@gnu.org>
>
> * gdb.threads/attach.exp: New file.
>
> --- /dev/null Thu Feb 19 16:30:24 1998
> +++ testsuite/gdb.threads/attach.exp Sun May 6 14:30:39 2001
> @@ -0,0 +1,119 @@
> +# Copyright 2001 Free Software Foundation, Inc.
> +
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 2 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write to the Free Software
> +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
> +
> +# Please email any bugs, comments, and/or additions to this file to:
> +# bug-gdb@gnu.org
> +
> +if $tracelevel then {
> + strace $tracelevel
> +}
> +
> +set prms_id 0
> +set bug_id 0
> +
> +# This probably only works with Linux configurations.
> +if ![istarget *-*-linux-gnu] then {
> + return
> +}
> +
> +set testfile "linux-dp"
> +set srcfile ${testfile}.c
> +set binfile ${objdir}/${subdir}/${testfile}
> +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug libs=-lpthread}] != "" } {
> + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
> +}
> +
> +# Create and source the file that provides information about the compiler
> +# used to compile the test case.
> +
> +if [get_compiler_info ${binfile}] {
> + return -1;
> +}
> +
> +# Start with a fresh gdb.
> +
> +gdb_exit
> +gdb_start
> +gdb_reinitialize_dir $srcdir/$subdir
> +gdb_load ${binfile}
> +
> +# Start the program running and then wait for a bit, to be sure that
> +# it can be attached to.
> +
> +set testpid [eval exec $binfile > /dev/null &]
> +exec sleep 2
> +
> +send_gdb "attach $testpid\n"
> +gdb_expect {
> + -re "Attaching to program.*$binfile.*\\\[New .*\\\].*$gdb_prompt $" {
> + pass "attach1"
> + }
> + -re ".*$gdb_prompt $" {
> + fail "attach1"
> + }
> + timeout {
> + fail "attach1 (timeout)"
> + }
> +}
> +
> +send_gdb "detach\n"
> +gdb_expect {
> + -re "Detaching from program: .*$binfile.*$gdb_prompt $" {
> + pass "detach attach1"
> + }
> + -re ".*$gdb_prompt $" {
> + fail "detach attach1"
> + }
> + timeout {
> + fail "detach attach1 (timeout)"
> + }
> +}
> +
> +send_gdb "attach $testpid\n"
> +gdb_expect {
> + -re "Attaching to program.*$binfile.*\\\[New .*\\\].*$gdb_prompt $" {
> + pass "attach2"
> + }
> + -re ".*$gdb_prompt $" {
> + fail "attach2"
> + }
> + timeout {
> + fail "attach2 (timeout)"
> + }
> +}
> +
> +send_gdb "kill\n"
> +gdb_expect {
> + -re ".*Kill the program being debugged.*y or n. $" {
> + send_gdb "y\n"
> + gdb_expect {
> + -re "$gdb_prompt $" {
> + pass "after attach2, exit"
> + }
> + timeout {
> + fail "after attach2, exit (timeout)"
> + }
> + }
> + }
> + -re "$gdb_prompt $" {
> + fail "after attach2, exit"
> + }
> + timeout {
> + fail "after attach2, exit (timeout)"
> + }
> +}
> +
> +return