Re: [patch] Support inferior events in python

sami wagiaalla
2011-02-09T16:19:32Z

[-- Attachment #1: Type: text/plain, Size: 696 bytes --]

On 02/09/2011 02:55 AM, Jan Kratochvil wrote:
> On Fri, 04 Feb 2011 21:06:37 +0100, sami wagiaalla wrote:
>> --- /dev/null
>> +++ b/gdb/testsuite/gdb.python/py-evthreads.exp
> [...]
>> +send_gdb "continue -a\n"
>> +gdb_expect {
>> + -re ".*stop reason: signal.*
>> +.*stop signal: SIGSEGV.*
>> +.*thread num: 3.*" {
>> + pass "thread 3 was signalled"
>> + }
>> + timeout {
>> + fail "thread 3 was not signalled"
>> + }
>> +}
>
> This testcase has very random/racy results.
>

Hmm... I thought I fixed that by avoiding checking for the prompt. I
can't reproduce the problem but maybe moving the thread test into its
own testcase helps. It makes the setup simpler.

Sami

[-- Attachment #2: signal_test.patch --]
[-- Type: text/x-patch, Size: 2520 bytes --]

Move signal test into its own file.

2011-02-09 Sami Wagiaalla <swagiaal@redhat.com>

* gdb.python/py-evsignal.exp: New file.

diff --git a/gdb/testsuite/gdb.python/py-evsignal.exp b/gdb/testsuite/gdb.python/py-evsignal.exp
new file mode 100644
index 0000000..4d1478f
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-evsignal.exp
@@ -0,0 +1,53 @@
+# 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 <http://www.gnu.org/licenses/>.
+
+# 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
+}
+
+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
+
+gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}
+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"
+
+send_gdb "run\n"
+gdb_expect {
+ -re ".*stop reason: signal.*
+.*stop signal: SIGSEGV.*
+.*thread num: 3.*" {
+ pass "thread 3 was signalled"
+ }
+ timeout {
+ fail "thread 3 was not signalled"
+ }
+}
diff --git a/gdb/testsuite/gdb.python/py-evthreads.exp b/gdb/testsuite/gdb.python/py-evthreads.exp
index 6ea7eb4..957d345 100644
--- a/gdb/testsuite/gdb.python/py-evthreads.exp
+++ b/gdb/testsuite/gdb.python/py-evthreads.exp
@@ -106,14 +106,3 @@ gdb_expect {
}
}

-send_gdb "continue -a\n"
-gdb_expect {
- -re ".*stop reason: signal.*
-.*stop signal: SIGSEGV.*
-.*thread num: 3.*" {
- pass "thread 3 was signalled"
- }
- timeout {
- fail "thread 3 was not signalled"
- }
-}