Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [rfa][testsuite] Consolidade Python test functions in lib/gdb.exp.
@ 2009-04-19 15:21 Thiago Jung Bauermann
  2009-04-20 17:13 ` Tom Tromey
  0 siblings, 1 reply; 24+ messages in thread
From: Thiago Jung Bauermann @ 2009-04-19 15:21 UTC (permalink / raw)
  To: gdb-patches ml

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" \



^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2009-06-04 18:03 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-19 15:21 [rfa][testsuite] Consolidade Python test functions in lib/gdb.exp Thiago Jung Bauermann
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox