From: Thiago Jung Bauermann <bauerman@br.ibm.com>
To: gdb-patches ml <gdb-patches@sourceware.org>
Subject: [rfa][testsuite] Consolidade Python test functions in lib/gdb.exp.
Date: Sun, 19 Apr 2009 15:21:00 -0000 [thread overview]
Message-ID: <1240154454.19777.39.camel@localhost.localdomain> (raw)
Hi,
This is a cleanup on the testcases in gdb.python. Currently, they define
the same test functions in each .exp. I put them in lib/gdb.exp
instead.
Ok to commit?
--
[]'s
Thiago Jung Bauermann
IBM Linux Technology Center
gdb/testsuite/
* lib/gdb.exp (python_supported, gdb_py_test_silent_cmd,
gdb_py_test_multiple): New functions.
* gdb.python/python-cmd.exp: Use Python test functions from
lib/gdb.exp instead of defining its own functions.
* gdb.python/python-frame.exp: Likewise.
* gdb.python/python-function.exp: Likewise.
* gdb.python/python-value.exp: Likewise.
* gdb.python/python.exp: Likewise.
Index: gdb.git/gdb/testsuite/gdb.python/python-cmd.exp
===================================================================
--- gdb.git.orig/gdb/testsuite/gdb.python/python-cmd.exp 2009-04-19 10:35:25.000000000 -0300
+++ gdb.git/gdb/testsuite/gdb.python/python-cmd.exp 2009-04-19 12:02:53.000000000 -0300
@@ -20,36 +20,15 @@ if $tracelevel then {
strace $tracelevel
}
-# Usage: gdb_py_test_multiple NAME INPUT RESULT {INPUT RESULT}...
-# Run a test named NAME, consisting of multiple lines of input.
-# After each input line INPUT, search for result line RESULT.
-# Succeed if all results are seen; fail otherwise.
-proc gdb_py_test_multiple {name args} {
- global gdb_prompt
- foreach {input result} $args {
- if {[gdb_test_multiple $input "$name - $input" {
- -re "\[\r\n\]*($result)\[\r\n\]+($gdb_prompt | *>)$" {
- pass "$name - $input"
- }
- }]} {
- return 1
- }
- }
- return 0
-}
-
# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
-gdb_test_multiple "python print 'hello, world!'" "verify python support" {
- -re "not supported.*$gdb_prompt $" {
- unsupported "python support is disabled"
- return -1
- }
- -re "$gdb_prompt $" {}
+if ![python_supported] then {
+ unsupported "python support is disabled"
+ return -1
}
# Test a simple command.
Index: gdb.git/gdb/testsuite/gdb.python/python-frame.exp
===================================================================
--- gdb.git.orig/gdb/testsuite/gdb.python/python-frame.exp 2009-04-19 10:35:25.000000000 -0300
+++ gdb.git/gdb/testsuite/gdb.python/python-frame.exp 2009-04-19 12:02:53.000000000 -0300
@@ -28,17 +28,6 @@ if { [gdb_compile "${srcdir}/${subdir}/$
return -1
}
-# Run a command in GDB, and report a failure if a Python exception is thrown.
-# If report_pass is true, report a pass if no exception is thrown.
-proc gdb_py_test_silent_cmd {cmd name report_pass} {
- global gdb_prompt
-
- gdb_test_multiple $cmd $name {
- -re "Traceback.*$gdb_prompt $" { fail $name }
- -re "$gdb_prompt $" { if $report_pass { pass $name } }
- }
-}
-
# Start with a fresh gdb.
gdb_exit
@@ -46,12 +35,9 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
-gdb_test_multiple "python print 'hello, world!'" "verify python support" {
- -re "not supported.*$gdb_prompt $" {
- unsupported "python support is disabled"
- return -1
- }
- -re "$gdb_prompt $" {}
+if ![python_supported] then {
+ unsupported "python support is disabled"
+ return -1
}
# The following tests require execution.
Index: gdb.git/gdb/testsuite/gdb.python/python-function.exp
===================================================================
--- gdb.git.orig/gdb/testsuite/gdb.python/python-function.exp 2009-04-19 10:35:25.000000000 -0300
+++ gdb.git/gdb/testsuite/gdb.python/python-function.exp 2009-04-19 12:02:53.000000000 -0300
@@ -20,36 +20,15 @@ if $tracelevel then {
strace $tracelevel
}
-# Usage: gdb_py_test_multiple NAME INPUT RESULT {INPUT RESULT}...
-# Run a test named NAME, consisting of multiple lines of input.
-# After each input line INPUT, search for result line RESULT.
-# Succeed if all results are seen; fail otherwise.
-proc gdb_py_test_multiple {name args} {
- global gdb_prompt
- foreach {input result} $args {
- if {[gdb_test_multiple $input "$name - $input" {
- -re "\[\r\n\]*($result)\[\r\n\]+($gdb_prompt | *>)$" {
- pass "$name - $input"
- }
- }]} {
- return 1
- }
- }
- return 0
-}
-
# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
-gdb_test_multiple "python print 'hello, world!'" "verify python support" {
- -re "not supported.*$gdb_prompt $" {
- unsupported "python support is disabled"
- return -1
- }
- -re "$gdb_prompt $" {}
+if ![python_supported] then {
+ unsupported "python support is disabled"
+ return -1
}
gdb_py_test_multiple "input convenience function" \
Index: gdb.git/gdb/testsuite/gdb.python/python-value.exp
===================================================================
--- gdb.git.orig/gdb/testsuite/gdb.python/python-value.exp 2009-04-19 10:35:25.000000000 -0300
+++ gdb.git/gdb/testsuite/gdb.python/python-value.exp 2009-04-19 12:02:53.000000000 -0300
@@ -28,35 +28,6 @@ if { [gdb_compile "${srcdir}/${subdir}/$
return -1
}
-# Usage: gdb_py_test_multiple NAME INPUT RESULT {INPUT RESULT}...
-# Run a test named NAME, consisting of multiple lines of input.
-# After each input line INPUT, search for result line RESULT.
-# Succeed if all results are seen; fail otherwise.
-proc gdb_py_test_multiple {name args} {
- global gdb_prompt
- foreach {input result} $args {
- if {[gdb_test_multiple $input "$name - $input" {
- -re "\[\r\n\]*($result)\[\r\n\]+($gdb_prompt | *>)$" {
- pass "$name - $input"
- }
- }]} {
- return 1
- }
- }
- return 0
-}
-
-# Run a command in GDB, and report a failure if a Python exception is thrown.
-# If report_pass is true, report a pass if no exception is thrown.
-proc gdb_py_test_silent_cmd {cmd name report_pass} {
- global gdb_prompt
-
- gdb_test_multiple $cmd $name {
- -re "Traceback.*$gdb_prompt $" { fail $name }
- -re "$gdb_prompt $" { if $report_pass { pass $name } }
- }
-}
-
proc test_value_creation {} {
global gdb_prompt
@@ -244,12 +215,9 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
-gdb_test_multiple "python print 'hello, world!'" "verify python support" {
- -re "not supported.*$gdb_prompt $" {
- unsupported "python support is disabled"
- return -1
- }
- -re "$gdb_prompt $" {}
+if ![python_supported] then {
+ unsupported "python support is disabled"
+ return -1
}
test_value_creation
Index: gdb.git/gdb/testsuite/lib/gdb.exp
===================================================================
--- gdb.git.orig/gdb/testsuite/lib/gdb.exp 2009-04-19 10:35:25.000000000 -0300
+++ gdb.git/gdb/testsuite/lib/gdb.exp 2009-04-19 12:02:53.000000000 -0300
@@ -2937,3 +2937,44 @@ proc get_sizeof { type default } {
return [get_integer_valueof "sizeof (${type})" $default]
}
+# Return 1 if Python scripting is supported in GDB, 0 if not.
+proc python_supported { } {
+ global gdb_prompt
+
+ gdb_test_multiple "python print 'hello, world!'" "verify python support" {
+ -re "not supported.*$gdb_prompt $" { return 0 }
+ -re "$gdb_prompt $" { return 1 }
+ }
+
+ return 0
+}
+
+# Run a command in GDB, and report a failure if a Python exception is thrown.
+# If report_pass is true, report a pass if no exception is thrown.
+proc gdb_py_test_silent_cmd {cmd name report_pass} {
+ global gdb_prompt
+
+ gdb_test_multiple $cmd $name {
+ -re "Traceback.*$gdb_prompt $" { fail $name }
+ -re "$gdb_prompt $" { if $report_pass { pass $name } }
+ }
+}
+
+# Usage: gdb_py_test_multiple NAME INPUT RESULT {INPUT RESULT}...
+# Run a test named NAME, consisting of multiple lines of input.
+# After each input line INPUT, search for result line RESULT.
+# Succeed if all results are seen; fail otherwise.
+proc gdb_py_test_multiple {name args} {
+ global gdb_prompt
+
+ foreach {input result} $args {
+ if {[gdb_test_multiple $input "$name - $input" {
+ -re "\[\r\n\]*($result)\[\r\n\]+($gdb_prompt | *>)$" {
+ pass "$name - $input"
+ }
+ }]} {
+ return 1
+ }
+ }
+ return 0
+}
Index: gdb.git/gdb/testsuite/gdb.python/python.exp
===================================================================
--- gdb.git.orig/gdb/testsuite/gdb.python/python.exp 2009-02-02 12:27:37.000000000 -0200
+++ gdb.git/gdb/testsuite/gdb.python/python.exp 2009-04-19 12:10:28.000000000 -0300
@@ -26,30 +26,9 @@ gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
-gdb_test_multiple "python print 23" "verify python support" {
- -re "not supported.*$gdb_prompt $" {
- unsupported "python support is disabled"
- return -1
- }
- -re "$gdb_prompt $" {}
-}
-
-# Usage: gdb_py_test_multiple NAME INPUT RESULT {INPUT RESULT}...
-# Run a test named NAME, consisting of multiple lines of input.
-# After each input line INPUT, search for result line RESULT.
-# Succeed if all results are seen; fail otherwise.
-proc gdb_py_test_multiple {name args} {
- global gdb_prompt
- foreach {input result} $args {
- if {[gdb_test_multiple $input "$name - $input" {
- -re "\[\r\n\]*($result)\[\r\n\]+($gdb_prompt | *>)$" {
- pass "$name - $input"
- }
- }]} {
- return 1
- }
- }
- return 0
+if ![python_supported] then {
+ unsupported "python support is disabled"
+ return -1
}
gdb_py_test_multiple "multi-line python command" \
next reply other threads:[~2009-04-19 15:21 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-19 15:21 Thiago Jung Bauermann [this message]
2009-04-20 17:13 ` Tom Tromey
2009-04-20 17:23 ` Daniel Jacobowitz
2009-05-18 4:38 ` Thiago Jung Bauermann
2009-05-18 18:11 ` Eli Zaretskii
2009-05-19 14:50 ` Thiago Jung Bauermann
2009-05-19 14:59 ` Daniel Jacobowitz
2009-05-19 19:22 ` Eli Zaretskii
2009-05-19 22:21 ` Thiago Jung Bauermann
2009-05-20 3:11 ` Eli Zaretskii
2009-05-20 3:26 ` Thiago Jung Bauermann
2009-05-20 3:39 ` Daniel Jacobowitz
2009-05-20 13:18 ` Thiago Jung Bauermann
2009-05-20 14:59 ` Daniel Jacobowitz
2009-05-20 15:10 ` Thiago Jung Bauermann
2009-05-20 17:22 ` Eli Zaretskii
2009-05-20 19:39 ` Thiago Jung Bauermann
2009-05-20 20:00 ` Eli Zaretskii
2009-05-20 20:49 ` Thiago Jung Bauermann
2009-05-20 23:11 ` Joel Brobecker
2009-05-31 22:26 ` Thiago Jung Bauermann
2009-05-31 22:37 ` Thiago Jung Bauermann
2009-06-04 18:03 ` Tom Tromey
2009-05-28 0:43 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1240154454.19777.39.camel@localhost.localdomain \
--to=bauerman@br.ibm.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox