From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15228 invoked by alias); 14 Feb 2011 17:28:32 -0000 Received: (qmail 15219 invoked by uid 22791); 14 Feb 2011 17:28:31 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,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; Mon, 14 Feb 2011 17:28:25 +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 p1EHSFu4025164 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 14 Feb 2011 12:28:15 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p1EHSEhr008399; Mon, 14 Feb 2011 12:28:14 -0500 Received: from [10.15.16.129] (dhcp-10-15-16-129.yyz.redhat.com [10.15.16.129]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p1EHSDRg018903; Mon, 14 Feb 2011 12:28:14 -0500 Message-ID: <4D59662D.30101@redhat.com> Date: Mon, 14 Feb 2011 17:36:00 -0000 From: sami wagiaalla User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b2 Thunderbird/3.1.7 MIME-Version: 1.0 To: Pedro Alves CC: gdb-patches@sourceware.org, Jan Kratochvil , Tom Tromey Subject: Re: [patch] Support inferior events in python References: <20110209163022.GA16069@host1.dyn.jankratochvil.net> <4D55559B.1090004@redhat.com> <201102111556.42026.pedro@codesourcery.com> In-Reply-To: <201102111556.42026.pedro@codesourcery.com> Content-Type: multipart/mixed; boundary="------------070208000908070807080904" X-IsSubscribed: yes 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: 2011-02/txt/msg00285.txt.bz2 This is a multi-part message in MIME format. --------------070208000908070807080904 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Content-length: 363 The attached patch incorporates fixes requested by Jan, Joel, and Pedro: - Use gdb_test_multiple. - Check the return value of gdb_compile_pthreads. - Remove incorrect comment about pretty printing. - Test that non-stop is supported. - Fix test intermittent failure on i386. Where applicable these fixes were also applied to other related tests. Sami --------------070208000908070807080904 Content-Type: text/x-patch; name="signal_test.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="signal_test.patch" Content-length: 6810 Fix non-stop Python event tests. 2011-02-14 Sami Wagiaalla * gdb.python/py-evsignal.exp: New file. * gdb.python/py-evthreads.cc: Initialize bad pointer to NULL. * gdb.python/py-events.exp: Remove pretty printing comment. * gdb.python/py-evthreads.exp: Ditto. Use gdb_test_multiple. diff --git a/gdb/testsuite/gdb.python/py-events.exp b/gdb/testsuite/gdb.python/py-events.exp index e5d6daf..8493809 100644 --- a/gdb/testsuite/gdb.python/py-events.exp +++ b/gdb/testsuite/gdb.python/py-events.exp @@ -13,11 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# This file is part of the GDB testsuite. It tests Python-based -# pretty-printing for the CLI. - -# Skip all tests if Python scripting is not enabled. - if $tracelevel then { strace $tracelevel } diff --git a/gdb/testsuite/gdb.python/py-evsignal.exp b/gdb/testsuite/gdb.python/py-evsignal.exp new file mode 100644 index 0000000..ae67a12 --- /dev/null +++ b/gdb/testsuite/gdb.python/py-evsignal.exp @@ -0,0 +1,49 @@ +# Copyright (C) 2010, 2011 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 3 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, see . + +if $tracelevel then { + strace $tracelevel +} + +load_lib gdb-python.exp + +set testfile "py-evthreads" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +set pyfile ${srcdir}/${subdir}/py-events.py + +if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + return -1 +} +clean_restart $testfile + +if { [skip_python_tests] } { continue } + +gdb_test_no_output "python execfile ('${pyfile}')" "" + +gdb_test "Test_Events" "Event testers registered." +gdb_test_no_output "set non-stop on" +gdb_test_no_output "set target-async on" + +gdb_breakpoint [gdb_get_line_number "end of main"] + +gdb_test_multiple "run" "Signal Thread 3" { + -re ".*stop reason: signal.*stop signal: SIGSEGV.*thread num: 3.*" { + pass "thread 3 was signaled" + } + -re "The target does not support running in non-stop mode" { + unsupported "non-stop mode is unsupported" + } +} diff --git a/gdb/testsuite/gdb.python/py-evthreads.c b/gdb/testsuite/gdb.python/py-evthreads.c index 1464ce6..55414ed 100644 --- a/gdb/testsuite/gdb.python/py-evthreads.c +++ b/gdb/testsuite/gdb.python/py-evthreads.c @@ -28,7 +28,7 @@ void* thread3 (void* d) int count3 = 0; count3++; - int *bad; + int *bad = NULL; *bad = 1; return NULL; @@ -46,10 +46,10 @@ int main (){ pthread_create (&thread2_id, NULL, thread2, NULL); pthread_create (&thread3_id, NULL, thread3, NULL); - int count1 = 0; // stop1 + int count1 = 0; count1++; pthread_join (thread2_id, NULL); pthread_join (thread3_id, NULL); - return 12; + return 12; // end of main } diff --git a/gdb/testsuite/gdb.python/py-evthreads.exp b/gdb/testsuite/gdb.python/py-evthreads.exp index 6ea7eb4..aadacd0 100644 --- a/gdb/testsuite/gdb.python/py-evthreads.exp +++ b/gdb/testsuite/gdb.python/py-evthreads.exp @@ -13,11 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# This file is part of the GDB testsuite. It tests Python-based -# pretty-printing for the CLI. - -# Skip all tests if Python scripting is not enabled. - if $tracelevel then { strace $tracelevel } @@ -29,7 +24,9 @@ set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} set pyfile ${srcdir}/${subdir}/py-events.py -gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings} +if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + return -1 +} clean_restart $testfile if { [skip_python_tests] } { continue } @@ -44,76 +41,38 @@ gdb_breakpoint "main" gdb_breakpoint "thread2" gdb_breakpoint "thread3" -send_gdb "run\n" -gdb_expect { - -re "event type: stop.* -.*stop reason: breakpoint.* -.*breakpoint number: 1.* -.*thread num: 1.*" { +gdb_test_multiple "run" "Run to breakpoint 1" { + -re "event type: stop.*stop reason: breakpoint.*breakpoint number: 1.*thread num: 1.*" { pass "reached breakpoint 1" } - timeout { - fail "did not reach breakpoint 1" - } + -re "The target does not support running in non-stop mode" { + unsupported "non-stop mode is unsupported" + return + } } -send_gdb "next\n" -gdb_expect { - -re "event type: stop.* -.*stop reason: breakpoint.* -.*breakpoint number: 2.* -.*thread num: 2.*" { +gdb_test_multiple "next" "Run to breakpoint 2" { + -re "event type: stop.*stop reason: breakpoint.*breakpoint number: 2.*thread num: 2.*" { pass "reached breakpoint 2" } - timeout { - fail "did not reach breakpoint 2" - } } -send_gdb "next\n" -gdb_expect { - -re "event type: stop.* -.*stop reason: breakpoint.* -.*breakpoint number: 3.* -.*thread num: 3.*" { +gdb_test_multiple "next" "Run to breakpoint 3" { + -re "event type: stop.*stop reason: breakpoint.*breakpoint number: 3.*thread num: 3.*" { pass "reached breakpoint 3" } - timeout { - fail "did not reach breakpoint 3" - } } -send_gdb "continue&\n" -gdb_expect { - -re ".*event type: continue.* -.*thread num: 1.*" { +gdb_test_multiple "continue&" "Continue thread 1" { + -re ".*event type: continue.*thread num: 1.*" { pass "continue thread 1" } - timeout { - fail "continue thread 1 failed" - } } gdb_test "thread 2" ".*Switching to thread 2.*" -send_gdb "continue&\n" -gdb_expect { - -re ".*event type: continue.* -.*thread num: 2.*" { - pass "continue thread 2" - } - timeout { - fail "continue thread 2 failed" - } -} -send_gdb "continue -a\n" -gdb_expect { - -re ".*stop reason: signal.* -.*stop signal: SIGSEGV.* -.*thread num: 3.*" { - pass "thread 3 was signalled" +gdb_test_multiple "continue&" "Continue thread 2" { + -re ".*event type: continue.*thread num: 2.*" { + pass "continue thread 1" } - timeout { - fail "thread 3 was not signalled" - } } --------------070208000908070807080904--