This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Python 3 support, part 2 (testsuite part)


This is the testsuite part of Python 3 support for GDB.

Most of the changes are for turning "print" from a statement into a function call.  There are also some changes to handle the fact that "str" is now Unicode and the separate "unicode" type is gone, similarly "int" is now long integer and "long" is gone. 

In the process of running the tests on a range of Python versions, I noticed that the py-finish-breakpoint.exp test script does not work on Python 2.4 -- it uses syntax that was introduced in 2.6.  And since the old syntax doesn't work in Python 3, I left in the newer syntax but added code to skip that script in Python 2.4.

Tested on Linux with Python version 2.4, 2.6, 2.7, 3.2, and 3.3.  No regressions on any of the tests.

Ok to commit?

	paul

2012-11-12  Paul Koning  <paul_koning@dell.com>

	* gdb.base/charset.exp: Change print syntax for Python 3
	compatibility. 
	* gdb.python/py-block.exp: Ditto.
	* gdb.python/py-breakpoint.exp: Ditto.
	* gdb.python/py-cmd.exp: Ditto.
	* gdb.python/py-events.py: Ditto.
	* gdb.python/py-finish-breakpoint.py: Ditto.
	* gdb.python/py-finish-breakpoint2.exp: Ditto.
	* gdb.python/py-finish-breakpoint2.py: Ditto.
	* gdb.python/py-frame-inline.exp: Ditto.
	* gdb.python/py-frame.exp: Ditto.
	* gdb.python/py-infthread.exp: Ditto.
	* gdb.python/py-objfile.exp: Ditto.
	* gdb.python/py-parameter.exp: Ditto.
	* gdb.python/py-progspace.exp: Ditto.
	* gdb.python/py-prompt.exp: Ditto.
	* gdb.python/py-symbol.exp: Ditto.
	* gdb.python/py-symtab.exp: Ditto.
	* gdb.python/py-template.exp: Ditto.
	* gdb.python/py-value-cc.exp: Ditto.
	* gdb.python/python.exp: Ditto.
	* gdb.python/source2.py: Ditto.
	* gdb.python/lib-types.exp: Change print syntax for Python 3
	compatibility. 
	Use sorted() function rather than sort() method.
	Accept either int or long values for enum values.
	* gdb.python/py-events.exp: Use exec(open(...).read()) instead of
	execfile for Python 3 compatibility.
	* gdb.python/py-evsignal.exp: Ditto.
	* gdb.python/py-evthreads.exp: Ditto.
	* gdb.python/py-mi.exp: Ditto.
	* gdb.python/py-pp-maint.exp: Ditto.
	* gdb.python/py-prettyprint.exp: Ditto.
	* gdb.python/py-finish-breakpoint.exp: Change print syntax for
	Python 3 compatibility. 
	Skip tests for Python 2.4.
	* gdb.python/py-inferior.exp: Change print syntax for
	Python 3 compatibility. 
	Use byte string rather than character string in memory write test
	if Python 3.
	* gdb.python/py-pp-maint.py: Change class declarations to "new
	class" syntax.
	* gdb.python/py-prettyprint.py: Change iterator class to generator
	function for Python 3 compatibility.
	Make all classes "new style".
	Fix indentation issue and stray semicolon.
	* gdb.python/py-shared.expChange print syntax for Python 3
	compatibility.
	Define "long" if Python 3.
	* gdb.python/py-type.exp: Change print syntax for Python 3
	compatibility. 
	Accept either int or long values for enum values.
	* gdb.python/py-value.exp: Change print syntax for Python 3
	compatibility. 
	Skip "long" and "unicode" tests if Python 3.
	Accept either "type" or "class" in type checks.
	* lib/gdb.exp (gdb_py_is_py3k): New flag set if Python 3.
	(gdb_py_is_py24): New flag set if Python 2.4 or 2.5.

Index: gdb/testsuite/gdb.base/charset.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/charset.exp,v
retrieving revision 1.32
diff -u -r1.32 charset.exp
--- gdb/testsuite/gdb.base/charset.exp	18 May 2012 15:29:13 -0000	1.32
+++ gdb/testsuite/gdb.base/charset.exp	9 Nov 2012 22:26:56 -0000
@@ -578,7 +578,7 @@
 
 if {$ucs2_ok} {
     set go 1
-    gdb_test_multiple "python print 'hello, world!'" \
+    gdb_test_multiple "python print ('hello, world!')" \
 	"verify python support for charset tests" {
 	    -re "not supported.*$gdb_prompt $"	{
 		unsupported "python support is disabled"
@@ -591,7 +591,7 @@
 	gdb_test "print u\"abcdef\"" " = u\"abcdef\"" \
 	    "set up for python printing of utf-16 string"
 
-	gdb_test "python print gdb.history(0).string()" "abcdef" \
+	gdb_test "python print (gdb.history(0).string())" "abcdef" \
 	    "extract utf-16 string using python"
     }
 }
Index: gdb/testsuite/gdb.python/lib-types.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/lib-types.exp,v
retrieving revision 1.9
diff -u -r1.9 lib-types.exp
--- gdb/testsuite/gdb.python/lib-types.exp	24 Jun 2012 06:36:27 -0000	1.9
+++ gdb/testsuite/gdb.python/lib-types.exp	9 Nov 2012 22:26:56 -0000
@@ -37,9 +37,9 @@
 # test get_basic_type const stripping
 gdb_test_no_output "python const_class1_obj = gdb.parse_and_eval ('const_class1_obj')"
 gdb_test_no_output "python basic_type_const_class1_obj = gdb.types.get_basic_type (const_class1_obj.type)"
-gdb_test "python print str (const_class1_obj.type)" "const class1"
+gdb_test "python print (str (const_class1_obj.type))" "const class1"
 set test "const stripping"
-gdb_test_multiple "python print str (basic_type_const_class1_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_const_class1_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -48,9 +48,9 @@
 # test get_basic_type volatile stripping
 gdb_test_no_output "python volatile_class1_obj = gdb.parse_and_eval ('volatile_class1_obj')"
 gdb_test_no_output "python basic_type_volatile_class1_obj = gdb.types.get_basic_type (volatile_class1_obj.type)"
-gdb_test "python print str (volatile_class1_obj.type)" "volatile class1"
+gdb_test "python print (str (volatile_class1_obj.type))" "volatile class1"
 set test "volatile stripping"
-gdb_test_multiple "python print str (basic_type_volatile_class1_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_volatile_class1_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -59,9 +59,9 @@
 # test get_basic_type volatile+const stripping
 gdb_test_no_output "python const_volatile_class1_obj = gdb.parse_and_eval ('const_volatile_class1_obj')"
 gdb_test_no_output "python basic_type_const_volatile_class1_obj = gdb.types.get_basic_type (const_volatile_class1_obj.type)"
-gdb_test "python print str (const_volatile_class1_obj.type)" "const volatile class1"
+gdb_test "python print (str (const_volatile_class1_obj.type))" "const volatile class1"
 set test "volatile+const stripping"
-gdb_test_multiple "python print str (basic_type_const_volatile_class1_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_const_volatile_class1_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -70,9 +70,9 @@
 # test get_basic_type typedef stripping
 gdb_test_no_output "python typedef_class1_obj = gdb.parse_and_eval ('typedef_class1_obj')"
 gdb_test_no_output "python basic_type_typedef_class1_obj = gdb.types.get_basic_type (typedef_class1_obj.type)"
-gdb_test "python print str (typedef_class1_obj.type)" "typedef_class1"
+gdb_test "python print (str (typedef_class1_obj.type))" "typedef_class1"
 set test "typedef stripping"
-gdb_test_multiple "python print str (basic_type_typedef_class1_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_typedef_class1_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -81,9 +81,9 @@
 # test get_basic_type reference stripping
 gdb_test_no_output "python class1_ref_obj = gdb.parse_and_eval ('class1_ref_obj')"
 gdb_test_no_output "python basic_type_class1_ref_obj = gdb.types.get_basic_type (class1_ref_obj.type)"
-gdb_test "python print str (class1_ref_obj.type)" "class1 &"
+gdb_test "python print (str (class1_ref_obj.type))" "class1 &"
 set test "reference stripping"
-gdb_test_multiple "python print str (basic_type_class1_ref_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_class1_ref_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -92,9 +92,9 @@
 # test nested typedef stripping
 gdb_test_no_output "python typedef_const_typedef_class1_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_obj')"
 gdb_test_no_output "python basic_type_typedef_const_typedef_class1_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_obj.type)"
-gdb_test "python print str (typedef_class1_obj.type)" "typedef_class1"
+gdb_test "python print (str (typedef_class1_obj.type))" "typedef_class1"
 set test "nested typedef stripping"
-gdb_test_multiple "python print str (basic_type_typedef_const_typedef_class1_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_typedef_const_typedef_class1_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -103,9 +103,9 @@
 # test nested typedef/reference stripping
 gdb_test_no_output "python typedef_const_typedef_class1_ref_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_ref_obj')"
 gdb_test_no_output "python basic_type_typedef_const_typedef_class1_ref_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_ref_obj.type)"
-gdb_test "python print str (typedef_const_typedef_class1_ref_obj.type)" "const typedef_const_typedef_class1_ref"
+gdb_test "python print (str (typedef_const_typedef_class1_ref_obj.type))" "const typedef_const_typedef_class1_ref"
 set test "nested typedef/ref stripping"
-gdb_test_multiple "python print str (basic_type_typedef_const_typedef_class1_ref_obj)" $test {
+gdb_test_multiple "python print (str (basic_type_typedef_const_typedef_class1_ref_obj))" $test {
     -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {
 	pass $test
     }
@@ -113,21 +113,20 @@
 
 # test has_field on simple class
 gdb_test_no_output "python class1_obj = gdb.parse_and_eval ('class1_obj')"
-gdb_test "python print gdb.types.has_field (class1_obj.type, 'x')" "True"
-gdb_test "python print gdb.types.has_field (class1_obj.type, 'nope')" "False"
+gdb_test "python print (gdb.types.has_field (class1_obj.type, 'x'))" "True"
+gdb_test "python print (gdb.types.has_field (class1_obj.type, 'nope'))" "False"
 
 # test has_field in base class
 gdb_test_no_output "python subclass1_obj = gdb.parse_and_eval ('subclass1_obj')"
-gdb_test "python print gdb.types.has_field (subclass1_obj.type, 'x')" "True"
+gdb_test "python print (gdb.types.has_field (subclass1_obj.type, 'x'))" "True"
 
 # test make_enum_dict
 gdb_test_no_output "python enum1_obj = gdb.parse_and_eval ('enum1_obj')"
 gdb_test_no_output "python enum1_dict = gdb.types.make_enum_dict (enum1_obj.type)"
-gdb_test_no_output "python enum1_list = enum1_dict.items ()"
-gdb_test_no_output "python enum1_list.sort ()"
-gdb_test "python print enum1_list" {\[\('A', 0L\), \('B', 1L\), \('C', 2L\)\]}
+gdb_test_no_output "python enum1_list = sorted (enum1_dict.items ())"
+gdb_test "python print (enum1_list)" {\[\('A', 0L?\), \('B', 1L?\), \('C', 2L?\)\]}
 
 # test deep_items
 gdb_test_no_output "python struct_a = gdb.lookup_type ('struct A')"
-gdb_test "python print struct_a.keys ()" {\['a', '', 'c', ''\]}
-gdb_test "python print \[k for k,v in gdb.types.deep_items(struct_a)\]" {\['a', 'b0', 'b1', 'bb0', 'bb1', 'bbb0', 'bbb1', 'c', 'dd0', 'dd1', 'd2', 'd3'\]}
+gdb_test "python print (struct_a.keys ())" {\['a', '', 'c', ''\]}
+gdb_test "python print (\[k for k,v in gdb.types.deep_items(struct_a)\])" {\['a', 'b0', 'b1', 'bb0', 'bb1', 'bbb0', 'bbb1', 'c', 'dd0', 'dd1', 'd2', 'd3'\]}
Index: gdb/testsuite/gdb.python/py-block.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-block.exp,v
retrieving revision 1.11
diff -u -r1.11 py-block.exp
--- gdb/testsuite/gdb.python/py-block.exp	22 Jun 2012 17:59:33 -0000	1.11
+++ gdb/testsuite/gdb.python/py-block.exp	9 Nov 2012 22:26:56 -0000
@@ -39,35 +39,35 @@
 # Test initial innermost block.
 gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
 gdb_py_test_silent_cmd "python block = frame.block()" "Get block" 0
-gdb_test "python print block" "<gdb.Block object at $hex>" "Check block not None"
-gdb_test "python print block.function" "None" "First anonymous block"
-gdb_test "python print block.start" "${decimal}" "Check start not None"
-gdb_test "python print block.end" "${decimal}" "Check end not None"
+gdb_test "python print (block)" "<gdb.Block object at $hex>" "Check block not None"
+gdb_test "python print (block.function)" "None" "First anonymous block"
+gdb_test "python print (block.start)" "${decimal}" "Check start not None"
+gdb_test "python print (block.end)" "${decimal}" "Check end not None"
 
 # Test global/static blocks
 gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
 gdb_py_test_silent_cmd "python block = frame.block()" "Get block" 0
-gdb_test "python print block.is_global" "False" "Not a global block"
-gdb_test "python print block.is_static" "False" "Not a static block"
+gdb_test "python print (block.is_global)" "False" "Not a global block"
+gdb_test "python print (block.is_static)" "False" "Not a static block"
 gdb_py_test_silent_cmd "python gblock = block.global_block" "Get block" 1
 gdb_py_test_silent_cmd "python sblock = block.static_block" "Get block" 1
-gdb_test "python print gblock.is_global" "True" "Is the global block"
-gdb_test "python print sblock.is_static" "True" "Is the static block"
+gdb_test "python print (gblock.is_global)" "True" "Is the global block"
+gdb_test "python print (sblock.is_static)" "True" "Is the static block"
 
 # Move up superblock(s) until we reach function block_func.
 gdb_test_no_output "python block = block.superblock" "Get superblock"
-gdb_test "python print block.function" "None" "Second anonymous block"
+gdb_test "python print (block.function)" "None" "Second anonymous block"
 gdb_test_no_output "python block = block.superblock" "Get superblock 2"
-gdb_test "python print block.function" "block_func" \
+gdb_test "python print (block.function)" "block_func" \
          "Print superblock 2 function"
 
 # Switch frames, then test for main block.
 gdb_test "up" ".*"
 gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame 2" 0
 gdb_py_test_silent_cmd "python block = frame.block()" "Get Frame 2's block" 0
-gdb_test "python print block" "<gdb.Block object at $hex>" \
+gdb_test "python print (block)" "<gdb.Block object at $hex>" \
          "Check Frame 2's block not None"
-gdb_test "python print block.function" "main" "main block"
+gdb_test "python print (block.function)" "main" "main block"
 
 
 # Test Block is_valid.  This must always be the last test in this
@@ -76,12 +76,12 @@
 gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
 gdb_py_test_silent_cmd "python block = frame.block()" "Get Frame block" 0
 gdb_py_test_silent_cmd "python block_iter = iter (block)" "Get Frame block" 0
-gdb_test "python print block.is_valid()" "True" \
+gdb_test "python print (block.is_valid())" "True" \
          "Check block validity"
-gdb_test "python print block_iter.is_valid()" "True" \
+gdb_test "python print (block_iter.is_valid())" "True" \
          "Check block validity"
 gdb_unload
-gdb_test "python print block.is_valid()" "False" \
+gdb_test "python print (block.is_valid())" "False" \
          "Check block validity"
-gdb_test "python print block_iter.is_valid()" "False" \
+gdb_test "python print (block_iter.is_valid())" "False" \
          "Check block validity"
Index: gdb/testsuite/gdb.python/py-breakpoint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-breakpoint.exp,v
retrieving revision 1.15
diff -u -r1.15 py-breakpoint.exp
--- gdb/testsuite/gdb.python/py-breakpoint.exp	22 Jun 2012 17:59:33 -0000	1.15
+++ gdb/testsuite/gdb.python/py-breakpoint.exp	9 Nov 2012 22:26:56 -0000
@@ -37,8 +37,8 @@
 # Initially there should be one breakpoint: main.
 
 gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print blist\[0\]" "<gdb.Breakpoint object at $hex>" "Check obj exists"
-gdb_test "python print blist\[0\].location" "main." "Check breakpoint location"
+gdb_test "python print (blist\[0\])" "<gdb.Breakpoint object at $hex>" "Check obj exists"
+gdb_test "python print (blist\[0\].location)" "main." "Check breakpoint location"
 
 set mult_line [gdb_get_line_number "Break at multiply."]
 gdb_breakpoint ${mult_line}
@@ -47,25 +47,25 @@
 # Check that the Python breakpoint code noted the addition of a
 # breakpoint "behind the scenes". 
 gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print len(blist)" "2" "Check for two breakpoints"
-gdb_test "python print blist\[0\]" "<gdb.Breakpoint object at $hex>" "Check obj exists"
-gdb_test "python print blist\[0\].location" "main." "Check breakpoint location"
-gdb_test "python print blist\[1\]" "<gdb.Breakpoint object at $hex>" "Check obj exists"
+gdb_test "python print (len(blist))" "2" "Check for two breakpoints"
+gdb_test "python print (blist\[0\])" "<gdb.Breakpoint object at $hex>" "Check obj exists"
+gdb_test "python print (blist\[0\].location)" "main." "Check breakpoint location"
+gdb_test "python print (blist\[1\])" "<gdb.Breakpoint object at $hex>" "Check obj exists"
 
-gdb_test "python print blist\[1\].location" "py-breakpoint\.c:${mult_line}*" \
+gdb_test "python print (blist\[1\].location)" "py-breakpoint\.c:${mult_line}*" \
          "Check breakpoint location"
 
 # Check hit and ignore counts. 
-gdb_test "python print blist\[1\].hit_count" "1" "Check breakpoint hit count"
+gdb_test "python print (blist\[1\].hit_count)" "1" "Check breakpoint hit count"
 gdb_py_test_silent_cmd "python blist\[1\].ignore_count = 4" "Set breakpoint hit count" 0
 gdb_continue_to_breakpoint "Break at multiply."
-gdb_test "python print blist\[1\].hit_count" "6" "Check breakpoint hit count"
+gdb_test "python print (blist\[1\].hit_count)" "6" "Check breakpoint hit count"
 gdb_test "print result" " = 545" "Check expected variable result after 6 iterations"
 
 # Test breakpoint is enabled and disabled correctly..
 gdb_breakpoint [gdb_get_line_number "Break at add."]
 gdb_continue_to_breakpoint "Break at add."
-gdb_test "python print blist\[1\].enabled" "True" "Check breakpoint enabled."
+gdb_test "python print (blist\[1\].enabled)" "True" "Check breakpoint enabled."
 gdb_py_test_silent_cmd  "python blist\[1\].enabled = False" "Set breakpoint disabled." 0
 gdb_continue_to_breakpoint "Break at add."
 gdb_py_test_silent_cmd  "python blist\[1\].enabled = True" "Set breakpoint enabled." 0
@@ -73,11 +73,11 @@
 
 # Test other getters and setters.
 gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print blist\[1\].thread" "None" "Check breakpoint thread"
-gdb_test "python print blist\[1\].type == gdb.BP_BREAKPOINT" "True" "Check breakpoint type"
-gdb_test "python print blist\[0\].number" "1" "Check breakpoint number"
-gdb_test "python print blist\[1\].number" "2" "Check breakpoint number"
-gdb_test "python print blist\[2\].number" "3" "Check breakpoint number"
+gdb_test "python print (blist\[1\].thread)" "None" "Check breakpoint thread"
+gdb_test "python print (blist\[1\].type == gdb.BP_BREAKPOINT)" "True" "Check breakpoint type"
+gdb_test "python print (blist\[0\].number)" "1" "Check breakpoint number"
+gdb_test "python print (blist\[1\].number)" "2" "Check breakpoint number"
+gdb_test "python print (blist\[2\].number)" "3" "Check breakpoint number"
 
 # Start with a fresh gdb.
 clean_restart ${testfile}
@@ -93,12 +93,12 @@
 gdb_py_test_silent_cmd  "python dp1 = gdb.Breakpoint (\"$deltst_location\")" "Set breakpoint" 0
 gdb_breakpoint [gdb_get_line_number "Break at end."]
 gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print len(del_list)" "3" "Number of breakpoints before delete"
+gdb_test "python print (len(del_list))" "3" "Number of breakpoints before delete"
 gdb_continue_to_breakpoint "Break at multiply." ".*/$srcfile:$deltst_location.*"
 gdb_py_test_silent_cmd  "python dp1.delete()" "Delete Breakpoint" 0
-gdb_test "python print dp1.number" "RuntimeError: Breakpoint 2 is invalid.*" "Check breakpoint invalidated"
+gdb_test "python print (dp1.number)" "RuntimeError: Breakpoint 2 is invalid.*" "Check breakpoint invalidated"
 gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print len(del_list)" "2" "Number of breakpoints after delete"
+gdb_test "python print (len(del_list))" "2" "Number of breakpoints after delete"
 gdb_continue_to_breakpoint "Break at end." ".*/$srcfile:$end_location.*"
 
 
@@ -115,11 +115,11 @@
 gdb_py_test_silent_cmd  "python bp1 = gdb.Breakpoint (\"$bp_location1\")" "Set breakpoint" 0
 gdb_continue_to_breakpoint "Break at multiply."
 gdb_py_test_silent_cmd  "python bp1.condition = \"i == 5\"" "Set breakpoint" 0
-gdb_test "python print bp1.condition" "i == 5" "Test conditional has been set"
+gdb_test "python print (bp1.condition)" "i == 5" "Test conditional has been set"
 gdb_continue_to_breakpoint "Break at multiply."
 gdb_test "print i" "5" "Test conditional breakpoint stopped after five iterations"
 gdb_py_test_silent_cmd  "python bp1.condition = None"  "Clear condition" 0
-gdb_test "python print bp1.condition" "None" "Test conditional read"
+gdb_test "python print (bp1.condition)" "None" "Test conditional read"
 gdb_continue_to_breakpoint "Break at multiply."
 gdb_test "print i" "6" "Test breakpoint stopped after six iterations"
 
@@ -134,7 +134,7 @@
 gdb_test "end"
 
 gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print blist\[len(blist)-1\].commands" "print \"Command for breakpoint has been executed.\".*print result"
+gdb_test "python print (blist\[len(blist)-1\].commands)" "print \"Command for breakpoint has been executed.\".*print result"
 
 # Start with a fresh gdb.
 clean_restart ${testfile}
@@ -149,16 +149,16 @@
 set ibp_location [gdb_get_line_number "Break at multiply."]
 gdb_py_test_silent_cmd  "python ibp = gdb.Breakpoint(\"$ibp_location\", internal=False)" "Set invisible breakpoint" 0
 gdb_py_test_silent_cmd "python ilist = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print ilist\[0\]" "<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists"
-gdb_test "python print ilist\[0\].location" "py-breakpoint\.c:$ibp_location*" "Check breakpoint location"
-gdb_test "python print ilist\[0\].visible" "True" "Check breakpoint visibility"
+gdb_test "python print (ilist\[0\])" "<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists"
+gdb_test "python print (ilist\[0\].location)" "py-breakpoint\.c:$ibp_location*" "Check breakpoint location"
+gdb_test "python print (ilist\[0\].visible)" "True" "Check breakpoint visibility"
 gdb_test "info breakpoints" "py-breakpoint\.c:$ibp_location.*" "Check info breakpoints shows visible breakpoints"
 delete_breakpoints
 gdb_py_test_silent_cmd  "python ibp = gdb.Breakpoint(\"$ibp_location\", internal=True)" "Set invisible breakpoint" 0
 gdb_py_test_silent_cmd "python ilist = gdb.breakpoints()" "Get Breakpoint List" 0
-gdb_test "python print ilist\[0\]" "<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists"
-gdb_test "python print ilist\[0\].location" "py-breakpoint\.c:$ibp_location*" "Check breakpoint location"
-gdb_test "python print ilist\[0\].visible" "False" "Check breakpoint visibility"
+gdb_test "python print (ilist\[0\])" "<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists"
+gdb_test "python print (ilist\[0\].location)" "py-breakpoint\.c:$ibp_location*" "Check breakpoint location"
+gdb_test "python print (ilist\[0\].visible)" "False" "Check breakpoint visibility"
 gdb_test "info breakpoints" "No breakpoints or watchpoints.*" "Check info breakpoints does not show invisible breakpoints"
 gdb_test "maint info breakpoints" "py-breakpoint\.c:$ibp_location.*" "Check maint info breakpoints shows invisible breakpoints"
 
@@ -251,10 +251,10 @@
 gdb_py_test_silent_cmd  "python never_eval_bp1 = bp_also_eval(\"$end_location\")" "Set breakpoint" 0
 gdb_continue_to_breakpoint "Break at multiply." ".*/$srcfile:$bp_location2.*"
 gdb_test "print i" "3" "Check inferior value matches python accounting"
-gdb_test "python print eval_bp1.inf_i" "3" "Check python accounting matches inferior"
-gdb_test "python print also_eval_bp1.count" "4" \
+gdb_test "python print (eval_bp1.inf_i)" "3" "Check python accounting matches inferior"
+gdb_test "python print (also_eval_bp1.count)" "4" \
     "Check non firing same-location breakpoint eval function was also called at each stop."
-gdb_test "python print eval_bp1.count" "4" \
+gdb_test "python print (eval_bp1.count)" "4" \
     "Check non firing same-location breakpoint eval function was also called at each stop."
 
 delete_breakpoints
@@ -279,10 +279,10 @@
 delete_breakpoints
 gdb_breakpoint [gdb_get_line_number "Break at multiply."]
 gdb_py_test_silent_cmd  "python check_eval = bp_eval(\"$bp_location2\")" "Set breakpoint" 0
-gdb_test "python print check_eval.count" "0" \
+gdb_test "python print (check_eval.count)" "0" \
     "Test that evaluate function has not been yet executed (ie count = 0)"
 gdb_continue_to_breakpoint "Break at multiply." ".*/$srcfile:$bp_location2.*"
-gdb_test "python print check_eval.count" "1" \
+gdb_test "python print (check_eval.count)" "1" \
     "Test that evaluate function is run when location also has normal bp"
 
 gdb_py_test_multiple "Sub-class a watchpoint" \
@@ -298,5 +298,5 @@
 delete_breakpoints
 gdb_py_test_silent_cmd  "python wp1 = wp_eval (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE)" "Set watchpoint" 0
 gdb_test "continue" ".*\[Ww\]atchpoint.*result.*Old value =.*New value = 788.*" "Test watchpoint write"
-gdb_test "python print never_eval_bp1.count" "0" \
+gdb_test "python print (never_eval_bp1.count)" "0" \
     "Check that this unrelated breakpoints eval function was never called."
Index: gdb/testsuite/gdb.python/py-cmd.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-cmd.exp,v
retrieving revision 1.9
diff -u -r1.9 py-cmd.exp
--- gdb/testsuite/gdb.python/py-cmd.exp	1 Mar 2012 19:30:25 -0000	1.9
+++ gdb/testsuite/gdb.python/py-cmd.exp	9 Nov 2012 22:26:56 -0000
@@ -35,7 +35,7 @@
   "  def __init__ (self):" "" \
   "    super (test_cmd, self).__init__ (\"test_cmd\", gdb.COMMAND_OBSCURE)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"test_cmd output, arg = %s\" % arg" "" \
+  "    print (\"test_cmd output, arg = %s\" % arg)" "" \
   "test_cmd ()" "" \
   "end" ""
 
@@ -49,7 +49,7 @@
   "  def __init__ (self):" "" \
   "    super (prefix_cmd, self).__init__ (\"prefix_cmd\", gdb.COMMAND_OBSCURE, gdb.COMPLETE_NONE, True)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"prefix_cmd output, arg = %s\" % arg" "" \
+  "    print (\"prefix_cmd output, arg = %s\" % arg)" "" \
   "prefix_cmd ()" "" \
   "end" ""
 
@@ -61,7 +61,7 @@
   "  def __init__ (self):" "" \
   "    super (subcmd, self).__init__ (\"prefix_cmd subcmd\", gdb.COMMAND_OBSCURE)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"subcmd output, arg = %s\" % arg" "" \
+  "    print (\"subcmd output, arg = %s\" % arg)" "" \
   "subcmd ()" "" \
   "end" ""
 
@@ -75,7 +75,7 @@
   "  def __init__ (self):" "" \
   "    super (prefix_cmd2, self).__init__ (\"prefix_cmd2\", gdb.COMMAND_OBSCURE, prefix = True, completer_class = gdb.COMPLETE_FILENAME)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"prefix_cmd2 output, arg = %s\" % arg" "" \
+  "    print (\"prefix_cmd2 output, arg = %s\" % arg)" "" \
   "prefix_cmd2 ()" "" \
   "end" ""
 
@@ -87,7 +87,7 @@
   "  def __init__ (self):" "" \
   "    super (subcmd, self).__init__ (\"prefix_cmd2 subcmd\", gdb.COMMAND_OBSCURE)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"subcmd output, arg = %s\" % arg" "" \
+  "    print (\"subcmd output, arg = %s\" % arg)" "" \
   "subcmd ()" "" \
   "end" ""
 
@@ -101,7 +101,7 @@
   "  def __init__ (self):" "" \
   "    super (newsubcmd, self).__init__ (\"info newsubcmd\", gdb.COMMAND_OBSCURE)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"newsubcmd output, arg = %s\" % arg" "" \
+  "    print (\"newsubcmd output, arg = %s\" % arg)" "" \
   "newsubcmd ()" "" \
   "end" ""
 
@@ -123,19 +123,19 @@
 
 # Test gdb.string_to_argv.
 
-gdb_test "python print gdb.string_to_argv (\"1 2 3\")" \
+gdb_test "python print (gdb.string_to_argv (\"1 2 3\"))" \
   {\['1', '2', '3'\]} \
   "string_to_argv (\"1 2 3\")"
 
-gdb_test "python print gdb.string_to_argv (\"'1 2' 3\")" \
+gdb_test "python print (gdb.string_to_argv (\"'1 2' 3\"))" \
   {\['1 2', '3'\]} \
   "string_to_argv (\"'1 2' 3\")"
 
-gdb_test "python print gdb.string_to_argv ('\"1 2\" 3')" \
+gdb_test "python print (gdb.string_to_argv ('\"1 2\" 3'))" \
   {\['1 2', '3'\]} \
   "string_to_argv ('\"1 2\" 3')"
 
-gdb_test "python print gdb.string_to_argv ('1\\ 2 3')" \
+gdb_test "python print (gdb.string_to_argv ('1\\ 2 3'))" \
   {\['1 2', '3'\]} \
     "string_to_argv ('1\\ 2 3')"
 
@@ -147,7 +147,7 @@
   "  def __init__ (self):" "" \
   "    super (test_help, self).__init__ (\"test_help\", gdb.COMMAND_USER)" "" \
   "  def invoke (self, arg, from_tty):" "" \
-  "    print \"test_cmd output, arg = %s\" % arg" "" \
+  "    print (\"test_cmd output, arg = %s\" % arg)" "" \
   "test_help ()" "" \
   "end" ""
 
Index: gdb/testsuite/gdb.python/py-events.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-events.exp,v
retrieving revision 1.12
diff -u -r1.12 py-events.exp
--- gdb/testsuite/gdb.python/py-events.exp	22 Jun 2012 17:59:33 -0000	1.12
+++ gdb/testsuite/gdb.python/py-events.exp	9 Nov 2012 22:26:56 -0000
@@ -43,7 +43,7 @@
 
 if { [skip_python_tests] } { continue }
 
-gdb_test_no_output "python execfile ('${pyfile}')" ""
+gdb_test_no_output "python exec (open ('${pyfile}').read ())" ""
 
 gdb_test "Test_Newobj_Events" "New ObjectFile Event tester registered." "Register new objfile event handler"
 
Index: gdb/testsuite/gdb.python/py-events.py
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-events.py,v
retrieving revision 1.6
diff -u -r1.6 py-events.py
--- gdb/testsuite/gdb.python/py-events.py	17 Feb 2012 19:24:27 -0000	1.6
+++ gdb/testsuite/gdb.python/py-events.py	9 Nov 2012 22:26:56 -0000
@@ -19,46 +19,46 @@
 
 def signal_stop_handler (event):
     if (isinstance (event, gdb.StopEvent)):
-        print "event type: stop"
+        print ("event type: stop")
     if (isinstance (event, gdb.SignalEvent)):
-        print "stop reason: signal"
-        print "stop signal: %s" % (event.stop_signal)
+        print ("stop reason: signal")
+        print ("stop signal: %s" % (event.stop_signal))
         if ( event.inferior_thread is not None) :
-            print "thread num: %s" % (event.inferior_thread.num);
+            print ("thread num: %s" % (event.inferior_thread.num))
 
 def breakpoint_stop_handler (event):
     if (isinstance (event, gdb.StopEvent)):
-        print "event type: stop"
+        print ("event type: stop")
     if (isinstance (event, gdb.BreakpointEvent)):
-        print "stop reason: breakpoint"
-        print "first breakpoint number: %s" % (event.breakpoint.number)
+        print ("stop reason: breakpoint")
+        print ("first breakpoint number: %s" % (event.breakpoint.number))
         for bp in event.breakpoints:
-        	print "breakpoint number: %s" % (bp.number)
+        	print ("breakpoint number: %s" % (bp.number))
         if ( event.inferior_thread is not None) :
-            print "thread num: %s" % (event.inferior_thread.num);
+            print ("thread num: %s" % (event.inferior_thread.num))
         else:
-            print "all threads stopped"
+            print ("all threads stopped")
 
 def exit_handler (event):
     if (isinstance (event, gdb.ExitedEvent)):
-        print "event type: exit"
-    print "exit code: %d" % (event.exit_code)
-    print "exit inf: %d" % (event.inferior.num)
-    print "dir ok: %s" % str('exit_code' in dir(event))
+        print ("event type: exit")
+    print ("exit code: %d" % (event.exit_code))
+    print ("exit inf: %d" % (event.inferior.num))
+    print ("dir ok: %s" % str('exit_code' in dir(event)))
 
 def continue_handler (event):
     if (isinstance (event, gdb.ContinueEvent)):
-        print "event type: continue"
+        print ("event type: continue")
     if ( event.inferior_thread is not None) :
-        print "thread num: %s" % (event.inferior_thread.num);
+        print ("thread num: %s" % (event.inferior_thread.num))
 
 def new_objfile_handler (event):
     if (isinstance (event, gdb.NewObjFileEvent)):
-        print "event type: new_objfile"
+        print ("event type: new_objfile")
     if (event.new_objfile is not None):
-    	print "new objfile name: %s" % (event.new_objfile.filename)
+    	print ("new objfile name: %s" % (event.new_objfile.filename))
     else:
-        print "new objfile is None"
+        print ("new objfile is None")
 
 class test_events (gdb.Command):
     """Test events."""
@@ -71,7 +71,7 @@
         gdb.events.stop.connect (breakpoint_stop_handler)
         gdb.events.exited.connect (exit_handler)
         gdb.events.cont.connect (continue_handler)
-        print "Event testers registered."
+        print ("Event testers registered.")
 
 test_events ()
 
@@ -83,6 +83,6 @@
 
     def invoke (self, arg, from_tty):
         gdb.events.new_objfile.connect (new_objfile_handler)
-        print "New ObjectFile Event tester registered."
+        print ("New ObjectFile Event tester registered.")
 
 test_newobj_events ()
Index: gdb/testsuite/gdb.python/py-evsignal.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-evsignal.exp,v
retrieving revision 1.4
diff -u -r1.4 py-evsignal.exp
--- gdb/testsuite/gdb.python/py-evsignal.exp	22 Jun 2012 17:59:33 -0000	1.4
+++ gdb/testsuite/gdb.python/py-evsignal.exp	9 Nov 2012 22:26:56 -0000
@@ -31,7 +31,7 @@
 
 if { [skip_python_tests] } { continue }
 
-gdb_test_no_output "python execfile ('${pyfile}')" ""
+gdb_test_no_output "python exec (open ('${pyfile}').read ())" ""
 
 gdb_test "Test_Events" "Event testers registered."
 gdb_test_no_output "set non-stop on"
Index: gdb/testsuite/gdb.python/py-evthreads.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-evthreads.exp,v
retrieving revision 1.9
diff -u -r1.9 py-evthreads.exp
--- gdb/testsuite/gdb.python/py-evthreads.exp	22 Jun 2012 17:59:33 -0000	1.9
+++ gdb/testsuite/gdb.python/py-evthreads.exp	9 Nov 2012 22:26:56 -0000
@@ -36,7 +36,7 @@
 
 if { [skip_python_tests] } { continue }
 
-gdb_test_no_output "python execfile ('${pyfile}')" ""
+gdb_test_no_output "python exec (open ('${pyfile}').read ())" ""
 
 gdb_test "Test_Events" "Event testers registered."
 gdb_test_no_output "set non-stop on"
Index: gdb/testsuite/gdb.python/py-finish-breakpoint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-finish-breakpoint.exp,v
retrieving revision 1.7
diff -u -r1.7 py-finish-breakpoint.exp
--- gdb/testsuite/gdb.python/py-finish-breakpoint.exp	22 Jun 2012 17:59:33 -0000	1.7
+++ gdb/testsuite/gdb.python/py-finish-breakpoint.exp	9 Nov 2012 22:26:56 -0000
@@ -23,6 +23,13 @@
 
 load_lib gdb-python.exp
 
+if { $gdb_py_is_py24 == 1 } {
+    # Python 2.4, 2.5 do not support the "ValueError as e" syntax used in
+    # the py-finish-breakpoint.py script.
+	untested py-finish-breakpoint.exp
+    return 0
+}
+
 set libfile "py-events-shlib"
 set libsrc  $srcdir/$subdir/$libfile.c
 set lib_sl  [standard_output_file $libfile-nodebug.so]
@@ -74,17 +81,17 @@
          "Temporary breakpoint.*" "set FinishBreakpoint with default frame value"
 gdb_test "python finishbp = MyFinishBreakpoint (gdb.parse_and_eval ('a'), gdb.newest_frame ())" \
          "Temporary breakpoint.*" "set FinishBreakpoint"
-gdb_test "python print finishbp.return_value" "None.*" \
+gdb_test "python print (finishbp.return_value)" "None.*" \
          "check return_value at init"
 
 # check normal bp hit
 
 gdb_test "continue" "MyFinishBreakpoint stop with.*return_value is: -5.*#0.*increase.*" \
          "check MyFinishBreakpoint hit"
-gdb_test "python print finishbp.return_value" "-5.*" "check return_value"
+gdb_test "python print (finishbp.return_value)" "-5.*" "check return_value"
 
-gdb_test "python print finishbp_default.hit_count" "1.*" "check finishBP on default frame has been hit"
-gdb_test "python print finishbp.is_valid()" "False.*"\
+gdb_test "python print (finishbp_default.hit_count)" "1.*" "check finishBP on default frame has been hit"
+gdb_test "python print (finishbp.is_valid())" "False.*"\
          "ensure that finish bp is invalid afer normal hit"
 
 # check FinishBreakpoint in main no allowed
@@ -119,7 +126,7 @@
          "SimpleFinishBreakpoint init" \
          "set finish breakpoint"
 gdb_test "continue" "SimpleFinishBreakpoint stop.*" "check FinishBreakpoint hit"
-gdb_test "python print finishBP.return_value" "None" "check return value without debug symbol"
+gdb_test "python print (finishBP.return_value)" "None" "check return value without debug symbol"
 
 #
 # Test FinishBreakpoint in function returned by longjmp 
@@ -143,7 +150,7 @@
          "set BP after the jump"
 gdb_test "continue" "SimpleFinishBreakpoint out of scope.*" \
          "check FinishBP out of scope notification"
-gdb_test "python print finishbp.is_valid()" "False.*"\
+gdb_test "python print (finishbp.is_valid())" "False.*"\
          "ensure that finish bp is invalid afer out of scope notification"
 
 #
Index: gdb/testsuite/gdb.python/py-finish-breakpoint.py
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-finish-breakpoint.py,v
retrieving revision 1.3
diff -u -r1.3 py-finish-breakpoint.py
--- gdb/testsuite/gdb.python/py-finish-breakpoint.py	20 Jan 2012 20:00:14 -0000	1.3
+++ gdb/testsuite/gdb.python/py-finish-breakpoint.py	9 Nov 2012 22:26:56 -0000
@@ -15,75 +15,75 @@
 
 # This file is part of the GDB testsuite.  It tests python Finish
 # Breakpoints.
-		
+                
 class MyFinishBreakpoint (gdb.FinishBreakpoint):
-	def __init__(self, val, frame):
-		gdb.FinishBreakpoint.__init__ (self, frame)
-		print "MyFinishBreakpoint init"
-		self.val = val
-		
-	def stop(self):
-		print "MyFinishBreakpoint stop with %d" % int (self.val.dereference ())
-		print "return_value is: %d" % int (self.return_value)
-		gdb.execute ("where 1")
-		return True
-	
-	def out_of_scope(self):
-		print "MyFinishBreakpoint out of scope"
+        def __init__(self, val, frame):
+                gdb.FinishBreakpoint.__init__ (self, frame)
+                print ("MyFinishBreakpoint init")
+                self.val = val
+                
+        def stop(self):
+                print ("MyFinishBreakpoint stop with %d" % int (self.val.dereference ()))
+                print ("return_value is: %d" % int (self.return_value))
+                gdb.execute ("where 1")
+                return True
+        
+        def out_of_scope(self):
+                print ("MyFinishBreakpoint out of scope")
 
 class TestBreakpoint(gdb.Breakpoint):
     def __init__(self):
         gdb.Breakpoint.__init__ (self, spec="test_1", internal=1)
         self.silent = True
         self.count = 0
-        print "TestBreakpoint init"
+        print ("TestBreakpoint init")
         
     def stop(self):
-    	self.count += 1
-    	try:
-        	TestFinishBreakpoint (gdb.newest_frame (), self.count)
+        self.count += 1
+        try:
+                TestFinishBreakpoint (gdb.newest_frame (), self.count)
         except ValueError as e:
-        	print e
+                print (e)
         return False
 
 class TestFinishBreakpoint (gdb.FinishBreakpoint):
     def __init__ (self, frame, count):
-    	self.count = count
+        self.count = count
         gdb.FinishBreakpoint.__init__ (self, frame, internal=1)
         
         
     def stop(self):
-        print "-->", self.number
+        print ("-->", self.number)
         if (self.count == 3):
-            print "test stop: %d" % self.count
+            print ("test stop: %d" % self.count)
             return True
         else:
-            print "test don't stop: %d" % self.count
+            print ("test don't stop: %d" % self.count)
             return False 
         
     
     def out_of_scope(self):
-        print "test didn't finish: %d" % self.count
+        print ("test didn't finish: %d" % self.count)
 
 class TestExplicitBreakpoint(gdb.Breakpoint):
-	def stop(self):
-		try:
-			SimpleFinishBreakpoint (gdb.newest_frame ())
-		except ValueError as e:
-			print e
-		return False
+        def stop(self):
+                try:
+                        SimpleFinishBreakpoint (gdb.newest_frame ())
+                except ValueError as e:
+                        print (e)
+                return False
 
 class SimpleFinishBreakpoint(gdb.FinishBreakpoint):
-	def __init__(self, frame):
-		gdb.FinishBreakpoint.__init__ (self, frame)
-		
-		print "SimpleFinishBreakpoint init"
-		
-	def stop(self):
-		print "SimpleFinishBreakpoint stop" 
-		return True
-	
-	def out_of_scope(self):
-		print "SimpleFinishBreakpoint out of scope"
+        def __init__(self, frame):
+                gdb.FinishBreakpoint.__init__ (self, frame)
+                
+                print ("SimpleFinishBreakpoint init")
+                
+        def stop(self):
+                print ("SimpleFinishBreakpoint stop" )
+                return True
+        
+        def out_of_scope(self):
+                print ("SimpleFinishBreakpoint out of scope")
 
-print "Python script imported"
+print ("Python script imported")
Index: gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp,v
retrieving revision 1.5
diff -u -r1.5 py-finish-breakpoint2.exp
--- gdb/testsuite/gdb.python/py-finish-breakpoint2.exp	22 Jun 2012 17:59:33 -0000	1.5
+++ gdb/testsuite/gdb.python/py-finish-breakpoint2.exp	9 Nov 2012 22:26:56 -0000
@@ -45,10 +45,10 @@
 gdb_breakpoint "throw_exception_1"
 gdb_test "continue" "Breakpoint .*throw_exception_1.*" "run to exception 1"
 
-gdb_test "python print len(gdb.breakpoints())" "3" "check BP count"
+gdb_test "python print (len(gdb.breakpoints()))" "3" "check BP count"
 gdb_test "python ExceptionFinishBreakpoint(gdb.newest_frame())" "init ExceptionFinishBreakpoint" "set FinishBP after the exception"
 gdb_test "continue" ".*stopped at ExceptionFinishBreakpoint.*" "check FinishBreakpoint in catch()"
-gdb_test "python print len(gdb.breakpoints())" "3" "check finish BP removal"
+gdb_test "python print (len(gdb.breakpoints()))" "3" "check finish BP removal"
 
 gdb_test "continue" ".*Breakpoint.* throw_exception_1.*" "continue to second exception"
 gdb_test "python ExceptionFinishBreakpoint(gdb.newest_frame())" "init ExceptionFinishBreakpoint" "set FinishBP after the exception"
Index: gdb/testsuite/gdb.python/py-finish-breakpoint2.py
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-finish-breakpoint2.py,v
retrieving revision 1.2
diff -u -r1.2 py-finish-breakpoint2.py
--- gdb/testsuite/gdb.python/py-finish-breakpoint2.py	4 Jan 2012 08:27:49 -0000	1.2
+++ gdb/testsuite/gdb.python/py-finish-breakpoint2.py	9 Nov 2012 22:26:56 -0000
@@ -19,15 +19,15 @@
 class ExceptionFinishBreakpoint(gdb.FinishBreakpoint):
     def __init__(self, frame):
         gdb.FinishBreakpoint.__init__ (self, frame, internal=1)
-        self.silent = True;
-        print "init ExceptionFinishBreakpoint"
+        self.silent = True
+        print ("init ExceptionFinishBreakpoint")
         
     def stop(self):
-        print "stopped at ExceptionFinishBreakpoint"
+        print ("stopped at ExceptionFinishBreakpoint")
         return True 
     
     def out_of_scope(self):
-        print "exception did not finish ..."
+        print ("exception did not finish ...")
 
 
-print "Python script imported"
+print ("Python script imported")
Index: gdb/testsuite/gdb.python/py-frame-inline.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-frame-inline.exp,v
retrieving revision 1.3
diff -u -r1.3 py-frame-inline.exp
--- gdb/testsuite/gdb.python/py-frame-inline.exp	22 Jun 2012 17:59:33 -0000	1.3
+++ gdb/testsuite/gdb.python/py-frame-inline.exp	9 Nov 2012 22:26:56 -0000
@@ -36,4 +36,4 @@
 
 gdb_test "up" "#1  g .*"
 
-gdb_test "python print gdb.selected_frame().read_var('l')" "\r\n42"
+gdb_test "python print (gdb.selected_frame().read_var('l'))" "\r\n42"
Index: gdb/testsuite/gdb.python/py-frame.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-frame.exp,v
retrieving revision 1.13
diff -u -r1.13 py-frame.exp
--- gdb/testsuite/gdb.python/py-frame.exp	22 Jun 2012 17:59:33 -0000	1.13
+++ gdb/testsuite/gdb.python/py-frame.exp	9 Nov 2012 22:26:56 -0000
@@ -39,24 +39,24 @@
 gdb_py_test_silent_cmd "python bf1 = gdb.selected_frame ()" "get frame" 0
 
 # First test that read_var is unaffected by PR 11036 changes.
-gdb_test "python print bf1.read_var(\"i\")" "\"stuff\"" "test i"
-gdb_test "python print bf1.read_var(\"f\")" "\"foo\"" "test f"
-gdb_test "python print bf1.read_var(\"b\")" "\"bar\"" "test b"
+gdb_test "python print (bf1.read_var(\"i\"))" "\"stuff\"" "test i"
+gdb_test "python print (bf1.read_var(\"f\"))" "\"foo\"" "test f"
+gdb_test "python print (bf1.read_var(\"b\"))" "\"bar\"" "test b"
 
 # Test the read_var function in another block other than the current
 # block (in this case, the super block). Test thar read_var is reading
 # the correct variables of i and f but they are the correct value and type.
 gdb_py_test_silent_cmd "python sb = bf1.block().superblock" "get superblock" 0
-gdb_test "python print bf1.read_var(\"i\", sb)" "1.1.*" "test i = 1.1"
-gdb_test "python print bf1.read_var(\"i\", sb).type" "double" "test double i"
-gdb_test "python print bf1.read_var(\"f\", sb)" "2.2.*" "test f = 2.2"
-gdb_test "python print bf1.read_var(\"f\", sb).type" "double" "test double f"
+gdb_test "python print (bf1.read_var(\"i\", sb))" "1.1.*" "test i = 1.1"
+gdb_test "python print (bf1.read_var(\"i\", sb).type)" "double" "test double i"
+gdb_test "python print (bf1.read_var(\"f\", sb))" "2.2.*" "test f = 2.2"
+gdb_test "python print (bf1.read_var(\"f\", sb).type)" "double" "test double f"
 
 # And again test another outerblock, this time testing "i" is the
 # correct value and type.
 gdb_py_test_silent_cmd "python sb = sb.superblock" "get superblock" 0
-gdb_test "python print bf1.read_var(\"i\", sb)" "99" "test i = 99"
-gdb_test "python print bf1.read_var(\"i\", sb).type" "int" "test int i"
+gdb_test "python print (bf1.read_var(\"i\", sb))" "99" "test i = 99"
+gdb_test "python print (bf1.read_var(\"i\", sb).type)" "int" "test int i"
 
 gdb_breakpoint "f2"
 gdb_continue_to_breakpoint "breakpoint at f2"
@@ -67,26 +67,26 @@
 gdb_py_test_silent_cmd "python f1 = gdb.selected_frame ()" "get second frame" 0
 gdb_py_test_silent_cmd "python f0 = f1.newer ()" "get first frame" 0
 
-gdb_test "python print f1 == gdb.newest_frame()" False \
+gdb_test "python print (f1 == gdb.newest_frame())" False \
     "selected frame -vs- newest frame"
-gdb_test "python print bframe == gdb.newest_frame()" True \
+gdb_test "python print (bframe == gdb.newest_frame())" True \
     "newest frame -vs- newest frame"
 
-gdb_test "python print 'result =', f0 == f1" " = False" "test equality comparison (false)"
-gdb_test "python print 'result =', f0 == f0" " = True" "test equality comparison (true)"
-gdb_test "python print 'result =', f0 != f1" " = True" "test inequality comparison (true)"
-gdb_test "python print 'result =', f0 != f0" " = False" "test inequality comparison (false)"
-gdb_test "python print 'result =', f0.is_valid ()" " = True" "test Frame.is_valid"
-gdb_test "python print 'result =', f0.name ()" " = f2" "test Frame.name"
-gdb_test "python print 'result =', f0.type () == gdb.NORMAL_FRAME" " = True" "test Frame.type"
-gdb_test "python print 'result =', f0.unwind_stop_reason () == gdb.FRAME_UNWIND_NO_REASON" " = True" "test Frame.type"
-gdb_test "python print 'result =', gdb.frame_stop_reason_string (gdb.FRAME_UNWIND_INNER_ID)" " = previous frame inner to this frame \\(corrupt stack\\?\\)" "test gdb.frame_stop_reason_string"
-gdb_test "python print 'result =', f0.pc ()" " = \[0-9\]+" "test Frame.pc"
-gdb_test "python print 'result =', f0.older () == f1" " = True" "test Frame.older"
-gdb_test "python print 'result =', f1.newer () == f0" " = True" "test Frame.newer"
-gdb_test "python print 'result =', f0.read_var ('variable_which_surely_doesnt_exist')" \
+gdb_test "python print ('result = %s' % (f0 == f1))" " = False" "test equality comparison (false)"
+gdb_test "python print ('result = %s' % (f0 == f0))" " = True" "test equality comparison (true)"
+gdb_test "python print ('result = %s' % (f0 != f1))" " = True" "test inequality comparison (true)"
+gdb_test "python print ('result = %s' % (f0 != f0))" " = False" "test inequality comparison (false)"
+gdb_test "python print ('result = %s' % f0.is_valid ())" " = True" "test Frame.is_valid"
+gdb_test "python print ('result = %s' % f0.name ())" " = f2" "test Frame.name"
+gdb_test "python print ('result = %s' % (f0.type () == gdb.NORMAL_FRAME))" " = True" "test Frame.type"
+gdb_test "python print ('result = %s' % (f0.unwind_stop_reason () == gdb.FRAME_UNWIND_NO_REASON))" " = True" "test Frame.type"
+gdb_test "python print ('result = %s' % gdb.frame_stop_reason_string (gdb.FRAME_UNWIND_INNER_ID))" " = previous frame inner to this frame \\(corrupt stack\\?\\)" "test gdb.frame_stop_reason_string"
+gdb_test "python print ('result = %s' % f0.pc ())" " = \[0-9\]+" "test Frame.pc"
+gdb_test "python print ('result = %s' % (f0.older () == f1))" " = True" "test Frame.older"
+gdb_test "python print ('result = %s' % (f1.newer () == f0))" " = True" "test Frame.newer"
+gdb_test "python print ('result = %s' % f0.read_var ('variable_which_surely_doesnt_exist'))" \
   "ValueError: Variable 'variable_which_surely_doesnt_exist' not found.*Error while executing Python code." \
   "test Frame.read_var - error"
-gdb_test "python print 'result =', f0.read_var ('a')" " = 1" "test Frame.read_var - success"
+gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.read_var - success"
 
-gdb_test "python print 'result =', gdb.selected_frame () == f1" " = True" "test gdb.selected_frame"
+gdb_test "python print ('result = %s' % (gdb.selected_frame () == f1))" " = True" "test gdb.selected_frame"
Index: gdb/testsuite/gdb.python/py-inferior.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-inferior.exp,v
retrieving revision 1.13
diff -u -r1.13 py-inferior.exp
--- gdb/testsuite/gdb.python/py-inferior.exp	26 Jul 2012 19:09:35 -0000	1.13
+++ gdb/testsuite/gdb.python/py-inferior.exp	9 Nov 2012 22:26:56 -0000
@@ -51,20 +51,20 @@
 # Test basic gdb.Inferior attributes and methods.
 
 gdb_py_test_silent_cmd "python inferiors = gdb.inferiors ()" "get inferiors list" 1
-gdb_test "python print inferiors" "\\(<gdb.Inferior object at 0x\[\[:xdigit:\]\]+>,\\)" "verify inferiors list"
+gdb_test "python print (inferiors)" "\\(<gdb.Inferior object at 0x\[\[:xdigit:\]\]+>,\\)" "verify inferiors list"
 gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first inferior" 0
 
-gdb_test "python print 'result =', i0 == inferiors\[0\]" " = True" "test equality comparison (true)"
-gdb_test "python print 'result =', i0.num" " = \[0-9\]+" "test Inferior.num"
-gdb_test "python print 'result =', i0.pid" " = \[0-9\]+" "test Inferior.pid"
-gdb_test "python print 'result =', i0.was_attached" " = False" "test Inferior.was_attached"
-gdb_test "python print i0.threads ()" "\\(<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads"
+gdb_test "python print ('result = %s' % (i0 == inferiors\[0\]))" " = True" "test equality comparison (true)"
+gdb_test "python print ('result = %s' % i0.num)" " = \[0-9\]+" "test Inferior.num"
+gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid"
+gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test Inferior.was_attached"
+gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads"
 
 # Test the number of inferior threads.
 
 gdb_breakpoint check_threads
 gdb_continue_to_breakpoint "cont to check_threads" ".*pthread_barrier_wait.*"
-gdb_test "python print len (i0.threads ())" "\r\n9" "test Inferior.threads 2"
+gdb_test "python print (len (i0.threads ()))" "\r\n9" "test Inferior.threads 2"
 
 # Proceed to the next test.
 
@@ -75,12 +75,17 @@
 
 gdb_py_test_silent_cmd "python addr = gdb.selected_frame ().read_var ('str')" \
   "read str address" 0
-gdb_py_test_silent_cmd "python str = gdb.inferiors()\[0\].read_memory (addr, 5)" \
+gdb_py_test_silent_cmd "python str = gdb.inferiors()\[0\].read_memory (addr, 5); print(str)" \
   "read str contents" 1
-gdb_py_test_silent_cmd "python str\[1\] = 'a'" "change str" 0
+if { $gdb_py_is_py3k == 0 } {
+  gdb_py_test_silent_cmd "python a = 'a'" "" 0
+} else {
+  gdb_py_test_silent_cmd "python a = bytes('a', 'ascii')" "" 0
+}
+gdb_py_test_silent_cmd "python str\[1\] = a" "change str" 0
 gdb_py_test_silent_cmd "python gdb.inferiors()\[0\].write_memory (addr, str)" \
   "write str" 1
-gdb_test "print str" " = \"hallo, testsuite\"" \
+gdb_test "print (str)" " = \"hallo, testsuite\"" \
   "ensure str was changed in the inferior"
 
 # Test memory search.
@@ -99,18 +104,18 @@
 gdb_test_no_output "py start_addr = search_buf.address"
 gdb_test_no_output "py length = search_buf.type.sizeof"
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, 'aaa')" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, length, 'aaa'))" \
   "${one_pattern_found}" "find string pattern"
 
 # Test not finding pattern because search range too small, with
 # potential find at the edge of the range.
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 10+3, 'aaaa')" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, 10+3, 'aaaa'))" \
   "${pattern_not_found}" "pattern not found at end of range"
 
 # Increase the search range by 1 and we should find the pattern.
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 10+3+1, 'aaa')" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, 10+3+1, 'aaa'))" \
   "${one_pattern_found}" "pattern found at end of range"
 
 # Import struct to pack the following patterns.
@@ -124,7 +129,7 @@
 gdb_test_no_output "py length = search_buf.type.sizeof"
 gdb_test_no_output "py pattern = pack('${python_pack_char}H',0x1234)"
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, length, pattern))" \
   "${one_pattern_found}" "find 16-bit pattern, with value pattern"
 
 # Test 32-bit pattern.
@@ -135,7 +140,7 @@
 gdb_test_no_output "py length = search_buf.type.sizeof"
 gdb_test_no_output "py pattern = pack('${python_pack_char}I',0x12345678)"
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, length, pattern))" \
   "${one_pattern_found}" "find 32-bit pattern, with python pattern"
 
 # Test 64-bit pattern.
@@ -146,7 +151,7 @@
 gdb_test_no_output "py length = search_buf.type.sizeof"
 gdb_test_no_output "py pattern = pack('${python_pack_char}Q', 0xfedcba9876543210)"
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, length, pattern))" \
   "${one_pattern_found}" "find 64-bit pattern, with value pattern"
 
 # Test mixed-sized patterns.
@@ -160,11 +165,11 @@
 gdb_test_no_output "py pattern2 = pack('${python_pack_char}H', 0x6363)"
 gdb_test_no_output "py pattern3 = pack('${python_pack_char}I', 0x64646464)"
 
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern1)" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern1))" \
     "${one_pattern_found}" "find mixed-sized pattern"
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern2)" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern2))" \
     "${one_pattern_found}" "find mixed-sized pattern"
-gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern3)" \
+gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern3))" \
     "${one_pattern_found}" "find mixed-sized pattern"
 
 # Test search spanning a large range, in the particular case of native
@@ -179,13 +184,13 @@
 gdb_test_no_output "py end_addr = start_addr + gdb.selected_frame ().read_var ('search_buf_size')"
 gdb_test_no_output "py pattern = pack('${python_pack_char}I', 0x12345678)"
 gdb_test_no_output "py first = gdb.inferiors()\[0\].search_memory (start_addr,end_addr - start_addr, pattern)"
-gdb_test "py print first" "${one_pattern_found}" "search spanning large range 1st result"
+gdb_test "py print (first)" "${one_pattern_found}" "search spanning large range 1st result"
 gdb_test_no_output "py start_addr = first + 1"
 gdb_test_no_output "py second = gdb.inferiors()\[0\].search_memory (start_addr, end_addr - start_addr, pattern)"
-gdb_test "py print second" "${one_pattern_found}" "search spanning large range 2nd result"
+gdb_test "py print (second)" "${one_pattern_found}" "search spanning large range 2nd result"
 gdb_test_no_output "py start_addr = second + 1"
 gdb_test_no_output "py third = gdb.inferiors()\[0\].search_memory (start_addr, end_addr - start_addr, pattern)"
-gdb_test "py print third" "${pattern_not_found}" "search spanning large range 3rd result"
+gdb_test "py print (third)" "${pattern_not_found}" "search spanning large range 3rd result"
 
 # For native targets, test a pattern straddling a chunk boundary.
 
@@ -193,7 +198,7 @@
     gdb_test_no_output "set *(int32_t*) &search_buf\[${CHUNK_SIZE}-1\] = 0xfdb97531"
     gdb_test_no_output "py pattern = pack('${python_pack_char}I', 0xfdb97531)"
     gdb_test_no_output "py start_addr = gdb.selected_frame ().read_var ('search_buf')"
-    gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, end_addr - start_addr, pattern)" \
+    gdb_test "py print (gdb.inferiors()\[0\].search_memory (start_addr, end_addr - start_addr, pattern))" \
       "${one_pattern_found}" "find pattern straddling chunk boundary"
 }
 
@@ -201,28 +206,28 @@
 # this testcase as it kills the inferior.
 
 gdb_py_test_silent_cmd "python inf_list = gdb.inferiors()" "get initial list" 1
-gdb_test "python print len(inf_list)" "1" "Get inferior list length"
-gdb_test "python print inf_list\[0\].is_valid()" "True" \
+gdb_test "python print (len(inf_list))" "1" "Get inferior list length"
+gdb_test "python print (inf_list\[0\].is_valid())" "True" \
          "Check inferior validity"
 gdb_test "add-inferior" "Added inferior 2.*" "add empty inferior 2"
 gdb_py_test_silent_cmd "python inf_list = gdb.inferiors()" "get new list" 1
-gdb_test "python print len(inf_list)" "2" "Get inferior list length"
-gdb_test "python print inf_list\[0\].is_valid()" "True" \
+gdb_test "python print (len(inf_list))" "2" "Get inferior list length"
+gdb_test "python print (inf_list\[0\].is_valid())" "True" \
          "Check inferior validity"
-gdb_test "python print inf_list\[1\].is_valid()" "True" \
+gdb_test "python print (inf_list\[1\].is_valid())" "True" \
          "Check inferior validity"
 gdb_test_no_output "remove-inferiors 2" "remove-inferiors 3"
-gdb_test "python print inf_list\[0\].is_valid()" "False" \
+gdb_test "python print (inf_list\[0\].is_valid())" "False" \
          "Check inferior validity"
-gdb_test "python print inf_list\[1\].is_valid()" "True" \
+gdb_test "python print (inf_list\[1\].is_valid())" "True" \
          "Check inferior validity"
 
 # Test gdb.selected_inferior()
 gdb_test "inferior 1" ".*" "Switch to first inferior"
-gdb_test "py print gdb.selected_inferior().num" "1" "First inferior selected"
+gdb_test "py print (gdb.selected_inferior().num)" "1" "First inferior selected"
 
 gdb_test "add-inferior" "Added inferior 3" "Create new inferior"
 gdb_test "inferior 3" ".*" "Switch to third inferior"
-gdb_test "py print gdb.selected_inferior().num" "3" "Third inferior selected"
+gdb_test "py print (gdb.selected_inferior().num)" "3" "Third inferior selected"
 gdb_test "inferior 1" ".*" "Switch to first inferior"
 gdb_test_no_output "remove-inferiors 3" "Remove second inferior"
Index: gdb/testsuite/gdb.python/py-infthread.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-infthread.exp,v
retrieving revision 1.9
diff -u -r1.9 py-infthread.exp
--- gdb/testsuite/gdb.python/py-infthread.exp	22 Jun 2012 17:59:33 -0000	1.9
+++ gdb/testsuite/gdb.python/py-infthread.exp	9 Nov 2012 22:26:56 -0000
@@ -40,28 +40,28 @@
 # Test basic gdb.Inferior attributes and methods.
 
 gdb_py_test_silent_cmd "python t0 = gdb.selected_thread ()" "test gdb.selected_thread" 1
-gdb_test "python print t0" "\\<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>" "verify InferiorThread object"
-gdb_test "python print 'result =', t0.num" " = \[0-9\]+" "test Inferior.num"
-gdb_test "python print 'result =', t0.ptid" " = \\(\[0-9\]+, \[0-9\]+, \[0-9\]+\\)" "test InferiorThread.ptid"
+gdb_test "python print (t0)" "\\<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>" "verify InferiorThread object"
+gdb_test "python print ('result = %s' % t0.num)" " = \[0-9\]+" "test Inferior.num"
+gdb_test "python print ('result = %s' % str (t0.ptid))" " = \\(\[0-9\]+, \[0-9\]+, \[0-9\]+\\)" "test InferiorThread.ptid"
 
 gdb_py_test_silent_cmd "python name = gdb.selected_thread().name" \
     "get supplied name of current thread" 1
 gdb_py_test_silent_cmd "python gdb.selected_thread().name = 'hibob'" \
     "set name of current thread" 1
-gdb_test "python print gdb.selected_thread().name" "hibob" \
+gdb_test "python print (gdb.selected_thread().name)" "hibob" \
     "check name of current thread"
 gdb_py_test_silent_cmd "python gdb.selected_thread().name = None" \
     "reset name of current thread" 1
-gdb_test "python print gdb.selected_thread().name == name" "True" \
+gdb_test "python print (gdb.selected_thread().name == name)" "True" \
     "check name of current thread again"
 
-gdb_test "python print 'result =', t0.is_stopped ()" " = True" "test InferiorThread.is_stopped"
-gdb_test "python print 'result =', t0.is_running ()" " = False" "test InferiorThread.is_running"
-gdb_test "python print 'result =', t0.is_exited ()" " = False" "test InferiorThread.is_exited"
+gdb_test "python print ('result = %s' % t0.is_stopped ())" " = True" "test InferiorThread.is_stopped"
+gdb_test "python print ('result = %s' % t0.is_running ())" " = False" "test InferiorThread.is_running"
+gdb_test "python print ('result = %s' % t0.is_exited ())" " = False" "test InferiorThread.is_exited"
 
 # Test InferiorThread is_valid.  This must always be the last test in
 # this testcase as it kills the inferior.
 
-gdb_test "python print 'result =', t0.is_valid ()" " = True" "test InferiorThread.is_valid"
+gdb_test "python print ('result = %s' % t0.is_valid ())" " = True" "test InferiorThread.is_valid"
 gdb_test_no_output "kill inferior 1" "kill inferior 1"
-gdb_test "python print 'result =', t0.is_valid ()" " = False" "test InferiorThread.is_valid"
+gdb_test "python print ('result = %s' % t0.is_valid ())" " = False" "test InferiorThread.is_valid"
Index: gdb/testsuite/gdb.python/py-mi.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-mi.exp,v
retrieving revision 1.17
diff -u -r1.17 py-mi.exp
--- gdb/testsuite/gdb.python/py-mi.exp	6 Aug 2012 18:44:45 -0000	1.17
+++ gdb/testsuite/gdb.python/py-mi.exp	9 Nov 2012 22:26:56 -0000
@@ -44,7 +44,7 @@
 
 set remote_python_file [remote_download host ${srcdir}/${subdir}/${pyfile}]
 
-mi_gdb_test "python execfile ('${remote_python_file}')" ""
+mi_gdb_test "python exec (open ('${remote_python_file}').read ())" ""
 
 mi_continue_to_line [gdb_get_line_number {MI breakpoint here} ${srcfile}] \
   "step to breakpoint"
Index: gdb/testsuite/gdb.python/py-objfile.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-objfile.exp,v
retrieving revision 1.4
diff -u -r1.4 py-objfile.exp
--- gdb/testsuite/gdb.python/py-objfile.exp	22 Jun 2012 17:59:33 -0000	1.4
+++ gdb/testsuite/gdb.python/py-objfile.exp	9 Nov 2012 22:26:56 -0000
@@ -37,10 +37,10 @@
 gdb_py_test_silent_cmd "python objfile = sym\[0\].symtab.objfile" \
     "Get backing object file" 1
 
-gdb_test "python print objfile.filename" ".*py-objfile.*" \
+gdb_test "python print (objfile.filename)" ".*py-objfile.*" \
   "Get objfile validity"
-gdb_test "python print objfile.is_valid()" "True" \
+gdb_test "python print (objfile.is_valid())" "True" \
   "Get objfile validity"
 gdb_unload
-gdb_test "python print objfile.is_valid()" "False" \
+gdb_test "python print (objfile.is_valid())" "False" \
   "Get objfile validity after unload"
Index: gdb/testsuite/gdb.python/py-parameter.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-parameter.exp,v
retrieving revision 1.6
diff -u -r1.6 py-parameter.exp
--- gdb/testsuite/gdb.python/py-parameter.exp	16 Jan 2012 16:21:52 -0000	1.6
+++ gdb/testsuite/gdb.python/py-parameter.exp	9 Nov 2012 22:26:56 -0000
@@ -27,7 +27,7 @@
 if { [skip_python_tests] } { continue }
 
 # We use "." here instead of ":" so that this works on win32 too.
-gdb_test "python print gdb.parameter ('directories')" "$srcdir/$subdir.\\\$cdir.\\\$cwd"
+gdb_test "python print (gdb.parameter ('directories'))" "$srcdir/$subdir.\\\$cdir.\\\$cwd"
 
 # Test a simple boolean parameter.
 gdb_py_test_multiple "Simple gdb booleanparameter" \
@@ -49,11 +49,11 @@
    "test_param = TestParam ('print test-param')" ""\
    "end"
 
-gdb_test "python print test_param.value" "True" "Test parameter value"
+gdb_test "python print (test_param.value)" "True" "Test parameter value"
 gdb_test "show print test-param" "The state of the Test Parameter is on.*" "Show parameter on"
 gdb_test "set print test-param off" "Test Parameter has been set to off" "Turn off parameter"
 gdb_test "show print test-param" "The state of the Test Parameter is off.*" "Show parameter off"
-gdb_test "python print test_param.value" "False" "Test parameter value"
+gdb_test "python print (test_param.value)" "False" "Test parameter value"
 gdb_test "help show print test-param" "Show the state of the boolean test-param.*" "Test show help"
 gdb_test "help set print test-param" "Set the state of the boolean test-param.*" "Test set help"
 gdb_test "help set print" "set print test-param -- Set the state of the boolean test-param.*" "Test general help"
@@ -76,11 +76,11 @@
    "test_enum_param = TestEnumParam ('print test-enum-param')" ""\
    "end"
 
-gdb_test "python print test_enum_param.value" "one" "Test enum parameter value"
+gdb_test "python print (test_enum_param.value)" "one" "Test enum parameter value"
 gdb_test "show print test-enum-param" "The state of the enum is one.*" "Show parameter is initial value"
 gdb_test "set print test-enum-param two" "The state of the enum has been set to two" "Set enum to two"
 gdb_test "show print test-enum-param" "The state of the enum is two.*" "Show parameter is new value"
-gdb_test "python print test_enum_param.value" "two" "Test enum parameter value"
+gdb_test "python print (test_enum_param.value)" "two" "Test enum parameter value"
 gdb_test "set print test-enum-param three" "Undefined item: \"three\".*" "Set invalid enum parameter" 
 
 # Test a file parameter.
@@ -100,11 +100,11 @@
    "test_file_param = TestFileParam ('test-file-param')" ""\
    "end"
 
-gdb_test "python print test_file_param.value" "foo.txt" "Test file parameter value"
+gdb_test "python print (test_file_param.value)" "foo.txt" "Test file parameter value"
 gdb_test "show test-file-param" "The name of the file is foo.txt.*" "Show initial file value"
 gdb_test "set test-file-param bar.txt" "The name of the file has been changed to bar.txt" "Set new file parameter" 1
 gdb_test "show test-file-param" "The name of the file is bar.txt.*" "Show new file value"
-gdb_test "python print test_file_param.value" "bar.txt" "Test new file parameter value"
+gdb_test "python print (test_file_param.value)" "bar.txt" "Test new file parameter value"
 gdb_test "set test-file-param" "Argument required.*" 
 
 # Test a parameter that is not documented.
@@ -127,7 +127,7 @@
 gdb_test "show print test-undoc-param" "The state of the Test Parameter is on.*" "Show parameter on"
 gdb_test "set print test-undoc-param off" "Test Parameter has been set to off" "Turn off parameter"
 gdb_test "show print test-undoc-param" "The state of the Test Parameter is off.*" "Show parameter off"
-gdb_test "python print test_undoc_param.value" "False" "Test parameter value"
+gdb_test "python print (test_undoc_param.value)" "False" "Test parameter value"
 gdb_test "help show print test-undoc-param" "This command is not documented.*" "Test show help"
 gdb_test "help set print test-undoc-param" "This command is not documented.*" "Test set help"
 gdb_test "help set print" "set print test-undoc-param -- This command is not documented.*" "Test general help"
@@ -145,7 +145,7 @@
 gdb_test "show print test-nodoc-param" "This command is not documented.*" "Show parameter on"
 gdb_test "set print test-nodoc-param off" "This command is not documented.*" "Turn off parameter"
 gdb_test "show print test-nodoc-param" "This command is not documented.*.*" "Show parameter off"
-gdb_test "python print test_nodoc_param.value" "False" "Test parameter value"
+gdb_test "python print (test_nodoc_param.value)" "False" "Test parameter value"
 gdb_test "help show print test-nodoc-param" "This command is not documented.*" "Test show help"
 gdb_test "help set print test-nodoc-param" "This command is not documented.*" "Test set help"
 gdb_test "help set print" "set print test-nodoc-param -- This command is not documented.*" "Test general help"
@@ -163,11 +163,11 @@
    "test_param = TestParam ('print test-param')" ""\
    "end"
 
-gdb_test "python print test_param.value" "True" "Test parameter value"
+gdb_test "python print (test_param.value)" "True" "Test parameter value"
 gdb_test "show print test-param" "State of the Test Parameter on.*" "Show parameter on"
 gdb_test "set print test-param off" "Set the state of the Test Parameter.*" "Turn off parameter"
 gdb_test "show print test-param" "State of the Test Parameter off.*" "Show parameter off"
-gdb_test "python print test_param.value" "False" "Test parameter value"
+gdb_test "python print (test_param.value)" "False" "Test parameter value"
 gdb_test "help show print test-param" "State of the Test Parameter.*" "Test show help"
 gdb_test "help set print test-param" "Set the state of the Test Parameter.*" "Test set help"
 gdb_test "help set print" "set print test-param -- Set the state of the Test Parameter.*" "Test general help"
Index: gdb/testsuite/gdb.python/py-pp-maint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-pp-maint.exp,v
retrieving revision 1.8
diff -u -r1.8 py-pp-maint.exp
--- gdb/testsuite/gdb.python/py-pp-maint.exp	22 Jun 2012 17:59:33 -0000	1.8
+++ gdb/testsuite/gdb.python/py-pp-maint.exp	9 Nov 2012 22:26:56 -0000
@@ -43,7 +43,7 @@
 
 set python_file ${srcdir}/${subdir}/${testfile}.py
 
-gdb_test_no_output "python execfile ('${python_file}')" ""
+gdb_test_no_output "python exec (open ('${python_file}').read ())" ""
 
 gdb_test "info pretty-printer" \
     {.*function_lookup_test.*pp-test.*struct ss.*}
Index: gdb/testsuite/gdb.python/py-pp-maint.py
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-pp-maint.py,v
retrieving revision 1.5
diff -u -r1.5 py-pp-maint.py
--- gdb/testsuite/gdb.python/py-pp-maint.py	16 Jan 2012 19:44:16 -0000	1.5
+++ gdb/testsuite/gdb.python/py-pp-maint.py	9 Nov 2012 22:26:56 -0000
@@ -37,7 +37,7 @@
     return None
 
 
-class pp_s:
+class pp_s (object):
     def __init__(self, val):
         self.val = val
 
@@ -49,7 +49,7 @@
         return "a=<" + str(self.val["a"]) + "> b=<" + str(self.val["b"]) + ">"
 
 
-class pp_ss:
+class pp_ss (object):
     def __init__(self, val):
         self.val = val
 
Index: gdb/testsuite/gdb.python/py-prettyprint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-prettyprint.exp,v
retrieving revision 1.27
diff -u -r1.27 py-prettyprint.exp
--- gdb/testsuite/gdb.python/py-prettyprint.exp	16 Jul 2012 19:15:39 -0000	1.27
+++ gdb/testsuite/gdb.python/py-prettyprint.exp	9 Nov 2012 22:26:56 -0000
@@ -55,7 +55,7 @@
 
     set remote_python_file [remote_download host ${srcdir}/${subdir}/${testfile}.py]
 
-    gdb_test_no_output "python execfile ('${remote_python_file}')"
+    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())"
     
     gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>"
     gdb_test "print ssa\[1\]" " = a=< a=<5> b=<$hex>> b=< a=<6> b=<$hex>>"
@@ -125,7 +125,7 @@
 
 set remote_python_file [remote_download host ${srcdir}/${subdir}/${testfile}.py]
 
-gdb_test_no_output "python execfile ('${remote_python_file}')"
+gdb_test_no_output "python exec (open ('${remote_python_file}').read ())"
 
 gdb_breakpoint [gdb_get_line_number "eval-break"]
 gdb_continue_to_breakpoint "eval-break" ".* eval-break .*"
Index: gdb/testsuite/gdb.python/py-prettyprint.py
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-prettyprint.py,v
retrieving revision 1.15
diff -u -r1.15 py-prettyprint.py
--- gdb/testsuite/gdb.python/py-prettyprint.py	6 Aug 2012 18:44:45 -0000	1.15
+++ gdb/testsuite/gdb.python/py-prettyprint.py	9 Nov 2012 22:26:56 -0000
@@ -19,8 +19,17 @@
 import re
 import gdb
 
+def _iterator (pointer, len):
+    start = pointer
+    end = pointer + len
+    while pointer != end:
+        if exception_flag:
+            raise gdb.MemoryError ('hi bob')
+        yield ('[%d]' % int (pointer - start), pointer.dereference())
+        pointer += 1
+
 # Test returning a Value from a printer.
-class string_print:
+class string_print (object):
     def __init__(self, val):
         self.val = val
 
@@ -28,22 +37,7 @@
         return self.val['whybother']['contents']
 
 # Test a class-based printer.
-class ContainerPrinter:
-    class _iterator:
-        def __init__ (self, pointer, len):
-            self.start = pointer
-            self.pointer = pointer
-            self.end = pointer + len
-
-        def __iter__(self):
-            return self
-
-        def next(self):
-            if self.pointer == self.end:
-                raise StopIteration
-            result = self.pointer
-            self.pointer = self.pointer + 1
-            return ('[%d]' % int (result - self.start), result.dereference())
+class ContainerPrinter (object):
 
     def __init__(self, val):
         self.val = val
@@ -52,31 +46,13 @@
         return 'container %s with %d elements' % (self.val['name'], self.val['len'])
 
     def children(self):
-        return self._iterator(self.val['elements'], self.val['len'])
+        return _iterator(self.val['elements'], self.val['len'])
 
 # Flag to make NoStringContainerPrinter throw an exception.
 exception_flag = False
 
 # Test a printer where to_string is None
-class NoStringContainerPrinter:
-    class _iterator:
-        def __init__ (self, pointer, len):
-            self.start = pointer
-            self.pointer = pointer
-            self.end = pointer + len
-
-        def __iter__(self):
-            return self
-
-        def next(self):
-            if self.pointer == self.end:
-                raise StopIteration
-            if exception_flag:
-                raise gdb.MemoryError, 'hi bob'
-            result = self.pointer
-            self.pointer = self.pointer + 1
-            return ('[%d]' % int (result - self.start), result.dereference())
-
+class NoStringContainerPrinter (object):
     def __init__(self, val):
         self.val = val
 
@@ -84,9 +60,9 @@
         return None
 
     def children(self):
-        return self._iterator(self.val['elements'], self.val['len'])
+        return _iterator(self.val['elements'], self.val['len'])
 
-class pp_s:
+class pp_s (object):
     def __init__(self, val):
         self.val = val
 
@@ -97,42 +73,42 @@
             raise Exception("&a(%s) != b(%s)" % (str(a.address), str(b)))
         return " a=<" + str(self.val["a"]) + "> b=<" + str(self.val["b"]) + ">"
 
-class pp_ss:
+class pp_ss (object):
     def __init__(self, val):
         self.val = val
 
     def to_string(self):
         return "a=<" + str(self.val["a"]) + "> b=<" + str(self.val["b"]) + ">"
 
-class pp_sss:
+class pp_sss (object):
     def __init__(self, val):
         self.val = val
 
     def to_string(self):
         return "a=<" + str(self.val['a']) + "> b=<" + str(self.val["b"]) + ">"
 
-class pp_multiple_virtual:
+class pp_multiple_virtual (object):
     def __init__ (self, val):
         self.val = val
 
     def to_string (self):
         return "pp value variable is: " + str (self.val['value'])
 
-class pp_vbase1:
+class pp_vbase1 (object):
     def __init__ (self, val):
         self.val = val
 
     def to_string (self):
         return "pp class name: " + self.val.type.tag
 
-class pp_nullstr:
+class pp_nullstr (object):
     def __init__(self, val):
         self.val = val
 
     def to_string(self):
         return self.val['s'].string(gdb.target_charset())
 
-class pp_ns:
+class pp_ns (object):
     "Print a std::basic_string of some kind"
 
     def __init__(self, val):
@@ -147,7 +123,7 @@
 
 pp_ls_encoding = None
 
-class pp_ls:
+class pp_ls (object):
     "Print a std::basic_string of some kind"
 
     def __init__(self, val):
@@ -162,7 +138,7 @@
     def display_hint (self):
         return 'string'
 
-class pp_hint_error:
+class pp_hint_error (object):
     "Throw error from display_hint"
 
     def __init__(self, val):
@@ -174,7 +150,7 @@
     def display_hint (self):
         raise Exception("hint failed")
 
-class pp_children_as_list:
+class pp_children_as_list (object):
     "Throw error from display_hint"
 
     def __init__(self, val):
@@ -186,7 +162,7 @@
     def children (self):
         return [('one', 1)]
 
-class pp_outer:
+class pp_outer (object):
     "Print struct outer"
 
     def __init__ (self, val):
@@ -199,24 +175,24 @@
         yield 's', self.val['s']
         yield 'x', self.val['x']
 
-class MemoryErrorString:
+class MemoryErrorString (object):
     "Raise an error"
 
     def __init__(self, val):
         self.val = val
 
     def to_string(self):
-        raise gdb.MemoryError ("Cannot access memory.");
+        raise gdb.MemoryError ("Cannot access memory.")
 
     def display_hint (self):
         return 'string'
 
-class pp_eval_type:
+class pp_eval_type (object):
     def __init__(self, val):
         self.val = val
 
     def to_string(self):
-	gdb.execute("bt", to_string=True)
+        gdb.execute("bt", to_string=True)
         return "eval=<" + str(gdb.parse_and_eval("eval_func (123456789, 2, 3, 4, 5, 6, 7, 8)")) + ">"
 
 def lookup_function (val):
Index: gdb/testsuite/gdb.python/py-progspace.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-progspace.exp,v
retrieving revision 1.5
diff -u -r1.5 py-progspace.exp
--- gdb/testsuite/gdb.python/py-progspace.exp	22 Jun 2012 17:59:33 -0000	1.5
+++ gdb/testsuite/gdb.python/py-progspace.exp	9 Nov 2012 22:26:56 -0000
@@ -31,11 +31,11 @@
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
-gdb_test "python print gdb.current_progspace().filename" "None" \
+gdb_test "python print (gdb.current_progspace().filename)" "None" \
   "current progspace filename (None)"
-gdb_test "python print gdb.progspaces()" "\\\[<gdb.Progspace object at $hex>\\\]"
+gdb_test "python print (gdb.progspaces())" "\\\[<gdb.Progspace object at $hex>\\\]"
 
 gdb_load ${binfile}
 
-gdb_test "python print gdb.current_progspace().filename" "py-progspace" \
+gdb_test "python print (gdb.current_progspace().filename)" "py-progspace" \
   "current progspace filename (py-progspace)"
Index: gdb/testsuite/gdb.python/py-prompt.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-prompt.exp,v
retrieving revision 1.5
diff -u -r1.5 py-prompt.exp
--- gdb/testsuite/gdb.python/py-prompt.exp	22 Jun 2012 17:59:33 -0000	1.5
+++ gdb/testsuite/gdb.python/py-prompt.exp	9 Nov 2012 22:26:56 -0000
@@ -59,24 +59,24 @@
 
 set GDBFLAGS [concat $tmp_gdbflags " -ex \"set editing on\""]
 prompt_gdb_start
-gdb_test "python x = len(p); print gdb.execute(\"show prompt\", to_string = True)" \
+gdb_test "python x = len(p); print (gdb.execute(\"show prompt\", to_string = True))" \
 	 ".*prompt is \"$gdb_prompt \".*" \
 	 "show prompt gets the correct result"
-gdb_test "python print x, len(p)" "1 2" \
+gdb_test "python print ('%d %d' % (x, len(p)))" "1 2" \
 	 "retrieving the prompt causes no extra prompt_hook calls"
-gdb_test "python print \"'\" + str(p\[0\]) + \"'\"" "'$gdb_prompt_fail '" \
+gdb_test "python print (\"'\" + str(p\[0\]) + \"'\")" "'$gdb_prompt_fail '" \
 	 "prompt_hook argument is default prompt."
 gdb_exit
 
 
 set GDBFLAGS [concat $tmp_gdbflags " -ex \"set editing off\""]
 prompt_gdb_start
-gdb_test "python x = len(p); print gdb.execute(\"show prompt\", to_string = True)" \
+gdb_test "python x = len(p); print (gdb.execute(\"show prompt\", to_string = True))" \
 	 ".*prompt is \"$gdb_prompt \".*" \
 	 "show prompt gets the correct result 2"
-gdb_test "python print x, len(p)" "1 2" \
+gdb_test "python print ('%d %d' % (x, len(p)))" "1 2" \
 	 "retrieving the prompt causes no extra prompt_hook calls 2"
-gdb_test "python print \"'\" + str(p\[0\]) + \"'\"" "'$gdb_prompt_fail '" \
+gdb_test "python print (\"'\" + str(p\[0\]) + \"'\")" "'$gdb_prompt_fail '" \
 	 "prompt_hook argument is default prompt. 2"
 gdb_exit
 
@@ -98,12 +98,12 @@
 
 # sync_execution = 1 is_running = 1
 prompt_gdb_start
-gdb_test "python x = len(p); print gdb.execute(\"show prompt\", to_string = True)" \
+gdb_test "python x = len(p); print (gdb.execute(\"show prompt\", to_string = True))" \
 	 ".*prompt is \"$gdb_prompt \".*" \
 	 "show prompt gets the correct result 3"
-gdb_test "python print x, len(p)" "1 2" \
+gdb_test "python print ('%d %d' % (x, len(p)))" "1 2" \
 	 "retrieving the prompt causes no extra prompt_hook calls 3"
-gdb_test "python print \"'\" + str(p\[0\]) + \"'\"" "'$gdb_prompt_fail '" \
+gdb_test "python print (\"'\" + str(p\[0\]) + \"'\")" "'$gdb_prompt_fail '" \
 	 "prompt_hook argument is default prompt. 3"
 gdb_exit
 
@@ -115,12 +115,12 @@
 
 # sync_execution = 1 is_running = 0
 prompt_gdb_start
-gdb_test "python x = len(p); print gdb.execute(\"show prompt\", to_string = True)" \
+gdb_test "python x = len(p); print (gdb.execute(\"show prompt\", to_string = True))" \
 	 ".*prompt is \"$gdb_prompt \".*" \
 	 "show prompt gets the correct result 4"
-gdb_test "python print x, len(p)" "1 2" \
+gdb_test "python print ('%d %d' % (x, len(p)))" "1 2" \
 	 "retrieving the prompt causes no extra prompt_hook calls 4"
-gdb_test "python print \"'\" + str(p\[0\]) + \"'\"" "'$gdb_prompt_fail '" \
+gdb_test "python print (\"'\" + str(p\[0\]) + \"'\")" "'$gdb_prompt_fail '" \
 	 "prompt_hook argument is default prompt. 4"
 gdb_exit
 
Index: gdb/testsuite/gdb.python/py-shared.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-shared.exp,v
retrieving revision 1.7
diff -u -r1.7 py-shared.exp
--- gdb/testsuite/gdb.python/py-shared.exp	22 Jun 2012 17:59:33 -0000	1.7
+++ gdb/testsuite/gdb.python/py-shared.exp	9 Nov 2012 22:26:56 -0000
@@ -58,8 +58,11 @@
 # Test gdb.solib_name
 gdb_test "p &func1" "" "func1 address"
 gdb_py_test_silent_cmd "python func1 = gdb.history(0)" "Aquire func1 address" 1
-gdb_test "python print gdb.solib_name(long(func1))" "py-shared-sl.sl" "test func1 solib location"
+if { $gdb_py_is_py3k == 1 } {
+  gdb_py_test_silent_cmd "python long = int" "" 0
+}
+gdb_test "python print (gdb.solib_name(long(func1)))" "py-shared-sl.sl" "test func1 solib location"
 
 gdb_test "p &main" "" "main address"
 gdb_py_test_silent_cmd "python main = gdb.history(0)" "Aquire main address" 1
-gdb_test "python print gdb.solib_name(long(main))" "None" "test main solib location"
+gdb_test "python print (gdb.solib_name(long(main)))" "None" "test main solib location"
Index: gdb/testsuite/gdb.python/py-symbol.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-symbol.exp,v
retrieving revision 1.16
diff -u -r1.16 py-symbol.exp
--- gdb/testsuite/gdb.python/py-symbol.exp	15 Oct 2012 15:20:27 -0000	1.16
+++ gdb/testsuite/gdb.python/py-symbol.exp	9 Nov 2012 22:26:56 -0000
@@ -31,20 +31,20 @@
 # point where we don't have a current frame, and we don't want to
 # require one.
 gdb_py_test_silent_cmd "python main_func = gdb.lookup_global_symbol(\"main\")" "Lookup main" 1
-gdb_test "python print main_func.is_function" "True" "Test main_func.is_function"
-gdb_test "python print gdb.lookup_global_symbol(\"junk\")" "None" "Test lookup_global_symbol(\"junk\")"
+gdb_test "python print (main_func.is_function)" "True" "Test main_func.is_function"
+gdb_test "python print (gdb.lookup_global_symbol(\"junk\"))" "None" "Test lookup_global_symbol(\"junk\")"
 
-gdb_test "python print gdb.lookup_global_symbol('main').value()" "$hex .main." \
+gdb_test "python print (gdb.lookup_global_symbol('main').value())" "$hex .main." \
     "print value of main"
 
 set qq_line [gdb_get_line_number "line of qq"]
-gdb_test "python print gdb.lookup_global_symbol('qq').line" "$qq_line" \
+gdb_test "python print (gdb.lookup_global_symbol('qq').line)" "$qq_line" \
     "print line number of qq"
 
-gdb_test "python print gdb.lookup_global_symbol('qq').value()" "72" \
+gdb_test "python print (gdb.lookup_global_symbol('qq').value())" "72" \
     "print value of qq"
 
-gdb_test "python print gdb.lookup_global_symbol('qq').needs_frame" \
+gdb_test "python print (gdb.lookup_global_symbol('qq').needs_frame)" \
     "False" \
     "print whether qq needs a frame"
 
@@ -63,21 +63,21 @@
 
 # Test is_argument attribute.
 gdb_py_test_silent_cmd "python arg = gdb.lookup_symbol(\"arg\")" "Get variable a" 0
-gdb_test "python print arg\[0\].is_variable" "False" "Test arg.is_variable"
-gdb_test "python print arg\[0\].is_constant" "False" "Test arg.is_constant"
-gdb_test "python print arg\[0\].is_argument" "True" "Test arg.is_argument"
-gdb_test "python print arg\[0\].is_function" "False" "Test arg.is_function"
+gdb_test "python print (arg\[0\].is_variable)" "False" "Test arg.is_variable"
+gdb_test "python print (arg\[0\].is_constant)" "False" "Test arg.is_constant"
+gdb_test "python print (arg\[0\].is_argument)" "True" "Test arg.is_argument"
+gdb_test "python print (arg\[0\].is_function)" "False" "Test arg.is_function"
 
 # Test is_function attribute.
 gdb_py_test_silent_cmd "python func = frame.block().function" "Get block" 0
-gdb_test "python print func.is_variable" "False" "Test func.is_variable"
-gdb_test "python print func.is_constant" "False" "Test func.is_constant"
-gdb_test "python print func.is_argument" "False" "Test func.is_argument"
-gdb_test "python print func.is_function" "True" "Test func.is_function"
-gdb_test "python print func.name" "func" "Test func.name"
-gdb_test "python print func.print_name" "func" "Test func.print_name"
-gdb_test "python print func.linkage_name" "func" "Test func.linkage_name"
-gdb_test "python print func.addr_class == gdb.SYMBOL_LOC_BLOCK" "True" "Test func.addr_class"
+gdb_test "python print (func.is_variable)" "False" "Test func.is_variable"
+gdb_test "python print (func.is_constant)" "False" "Test func.is_constant"
+gdb_test "python print (func.is_argument)" "False" "Test func.is_argument"
+gdb_test "python print (func.is_function)" "True" "Test func.is_function"
+gdb_test "python print (func.name)" "func" "Test func.name"
+gdb_test "python print (func.print_name)" "func" "Test func.print_name"
+gdb_test "python print (func.linkage_name)" "func" "Test func.linkage_name"
+gdb_test "python print (func.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "Test func.addr_class"
 
 gdb_breakpoint [gdb_get_line_number "Break at end."]
 gdb_continue_to_breakpoint "Break at end."
@@ -85,33 +85,33 @@
 
 # Test is_variable attribute.
 gdb_py_test_silent_cmd "python a = gdb.lookup_symbol(\'a\')" "Get variable a" 0
-gdb_test "python print a\[0\].is_variable" "True" "Test a.is_variable"
-gdb_test "python print a\[0\].is_constant" "False" "Test a.is_constant"
-gdb_test "python print a\[0\].is_argument" "False" "Test a.is_argument"
-gdb_test "python print a\[0\].is_function" "False" "Test a.is_function"
-gdb_test "python print a\[0\].addr_class == gdb.SYMBOL_LOC_COMPUTED" "True" "Test a.addr_class"
+gdb_test "python print (a\[0\].is_variable)" "True" "Test a.is_variable"
+gdb_test "python print (a\[0\].is_constant)" "False" "Test a.is_constant"
+gdb_test "python print (a\[0\].is_argument)" "False" "Test a.is_argument"
+gdb_test "python print (a\[0\].is_function)" "False" "Test a.is_function"
+gdb_test "python print (a\[0\].addr_class == gdb.SYMBOL_LOC_COMPUTED)" "True" "Test a.addr_class"
 
-gdb_test "python print a\[0\].value()" \
+gdb_test "python print (a\[0\].value())" \
     "symbol requires a frame to compute its value.*"\
     "try to print value of a without a frame"
-gdb_test "python print a\[0\].value(frame)" "0" \
+gdb_test "python print (a\[0\].value(frame))" "0" \
     "print value of a"
-gdb_test "python print a\[0\].needs_frame" "True" \
+gdb_test "python print (a\[0\].needs_frame)" "True" \
     "print whether a needs a frame"
 
 # Test is_constant attribute
 gdb_py_test_silent_cmd "python t = gdb.lookup_symbol(\"one\")" "Get variable a" 0
-gdb_test "python print t\[0\].is_variable" "False" "Test t.is_variable"
-gdb_test "python print t\[0\].is_constant" "True" "Test t.is_constant"
-gdb_test "python print t\[0\].is_argument" "False" "Test t.is_argument"
-gdb_test "python print t\[0\].is_function" "False" "Test t.is_function"
-gdb_test "python print t\[0\].addr_class == gdb.SYMBOL_LOC_CONST" "True" "Test t.addr_class"
+gdb_test "python print (t\[0\].is_variable)" "False" "Test t.is_variable"
+gdb_test "python print (t\[0\].is_constant)" "True" "Test t.is_constant"
+gdb_test "python print (t\[0\].is_argument)" "False" "Test t.is_argument"
+gdb_test "python print (t\[0\].is_function)" "False" "Test t.is_function"
+gdb_test "python print (t\[0\].addr_class == gdb.SYMBOL_LOC_CONST)" "True" "Test t.addr_class"
 
 # Test type attribute.
-gdb_test "python print t\[0\].type" "enum tag" "Get type"
+gdb_test "python print (t\[0\].type)" "enum tag" "Get type"
 
 # Test symtab attribute.
-gdb_test "python print t\[0\].symtab" "gdb.python/py-symbol.c.*" "Get symtab"
+gdb_test "python print (t\[0\].symtab)" "gdb.python/py-symbol.c.*" "Get symtab"
 
 # C++ tests
 # Recompile binary.
@@ -136,14 +136,14 @@
 
 gdb_py_test_silent_cmd "python cplusframe = gdb.selected_frame()" "Get Frame" 0
 gdb_py_test_silent_cmd "python cplusfunc = cplusframe.block().function" "Get block" 0
-gdb_test "python print cplusfunc.is_variable" "False" "Test func.is_variable"
-gdb_test "python print cplusfunc.is_constant" "False" "Test func.is_constant"
-gdb_test "python print cplusfunc.is_argument" "False" "Test func.is_argument"
-gdb_test "python print cplusfunc.is_function" "True" "Test func.is_function"
-gdb_test "python print cplusfunc.name" "SimpleClass::valueofi().*" "Test func.name"
-gdb_test "python print cplusfunc.print_name" "SimpleClass::valueofi().*" "Test func.print_name"
-gdb_test "python print cplusfunc.linkage_name" "SimpleClass::valueofi().*" "Test func.linkage_name"
-gdb_test "python print cplusfunc.addr_class == gdb.SYMBOL_LOC_BLOCK" "True" "Test func.addr_class"
+gdb_test "python print (cplusfunc.is_variable)" "False" "Test func.is_variable"
+gdb_test "python print (cplusfunc.is_constant)" "False" "Test func.is_constant"
+gdb_test "python print (cplusfunc.is_argument)" "False" "Test func.is_argument"
+gdb_test "python print (cplusfunc.is_function)" "True" "Test func.is_function"
+gdb_test "python print (cplusfunc.name)" "SimpleClass::valueofi().*" "Test func.name"
+gdb_test "python print (cplusfunc.print_name)" "SimpleClass::valueofi().*" "Test func.print_name"
+gdb_test "python print (cplusfunc.linkage_name)" "SimpleClass::valueofi().*" "Test func.linkage_name"
+gdb_test "python print (cplusfunc.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "Test func.addr_class"
 
 # Test is_valid when the objfile is unloaded.  This must be the last
 # test as it unloads the object file in GDB.
@@ -156,8 +156,8 @@
 gdb_breakpoint [gdb_get_line_number "Break at end."]
 gdb_continue_to_breakpoint "Break at end."
 gdb_py_test_silent_cmd "python a = gdb.lookup_symbol(\'a\')" "Get variable a" 0
-gdb_test "python print a\[0\].is_valid()" "True" "Test symbol validity"
+gdb_test "python print (a\[0\].is_valid())" "True" "Test symbol validity"
 delete_breakpoints
 gdb_unload
-gdb_test "python print a\[0\].is_valid()" "False" "Test symbol validity"
+gdb_test "python print (a\[0\].is_valid())" "False" "Test symbol validity"
 gdb_test_no_output "python a = None" "Test symbol destructor"
Index: gdb/testsuite/gdb.python/py-symtab.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-symtab.exp,v
retrieving revision 1.12
diff -u -r1.12 py-symtab.exp
--- gdb/testsuite/gdb.python/py-symtab.exp	15 Oct 2012 15:23:47 -0000	1.12
+++ gdb/testsuite/gdb.python/py-symtab.exp	9 Nov 2012 22:26:56 -0000
@@ -50,29 +50,29 @@
 gdb_py_test_silent_cmd "python new_pc = gdb.selected_frame().find_sal().pc" "Get new PC" 0
 
 # Test sal.
-gdb_test "python print sal.symtab" ".*gdb.python/py-symbol.c.*" "Test symtab"
-gdb_test "python print sal.pc" "${decimal}" "Test sal.pc"
-gdb_test "python print sal.last == (new_pc - 1)" "True" "Test sal.last"
-gdb_test "python print sal.line" "$line_no" "Test sal.line"
-gdb_test "python print sal.is_valid()" "True" "Test sal.is_valid"
+gdb_test "python print (sal.symtab)" ".*gdb.python/py-symbol.c.*" "Test symtab"
+gdb_test "python print (sal.pc)" "${decimal}" "Test sal.pc"
+gdb_test "python print (sal.last == (new_pc - 1))" "True" "Test sal.last"
+gdb_test "python print (sal.line)" "$line_no" "Test sal.line"
+gdb_test "python print (sal.is_valid())" "True" "Test sal.is_valid"
 
 # Test symbol table.
-gdb_test "python print symtab.filename" ".*gdb.python/py-symbol.c.*" "Test symtab.filename"
-gdb_test "python print symtab.objfile" "<gdb.Objfile object at ${hex}>" "Test symtab.objfile"
-gdb_test "python print symtab.fullname()" "testsuite/gdb.python/py-symbol.c.*" "Test symtab.fullname"
-gdb_test "python print symtab.is_valid()" "True" "Test symtab.is_valid()"
-gdb_test "python print \"qq\" in global_symbols" "True" "Test qq in global symbols"
-gdb_test "python print \"func\" in global_symbols" "True" "Test func in global symbols"
-gdb_test "python print \"main\" in global_symbols" "True" "Test main in global symbols"
-gdb_test "python print \"int\" in static_symbols" "True" "Test int in static symbols"
-gdb_test "python print \"char\" in static_symbols" "True" "Test char in static symbols"
-gdb_test "python print \"simple_struct\" in static_symbols" "True" "Test simple_struct in static symbols"
+gdb_test "python print (symtab.filename)" ".*gdb.python/py-symbol.c.*" "Test symtab.filename"
+gdb_test "python print (symtab.objfile)" "<gdb.Objfile object at ${hex}>" "Test symtab.objfile"
+gdb_test "python print (symtab.fullname())" "testsuite/gdb.python/py-symbol.c.*" "Test symtab.fullname"
+gdb_test "python print (symtab.is_valid())" "True" "Test symtab.is_valid()"
+gdb_test "python print (\"qq\" in global_symbols)" "True" "Test qq in global symbols"
+gdb_test "python print (\"func\" in global_symbols)" "True" "Test func in global symbols"
+gdb_test "python print (\"main\" in global_symbols)" "True" "Test main in global symbols"
+gdb_test "python print (\"int\" in static_symbols)" "True" "Test int in static symbols"
+gdb_test "python print (\"char\" in static_symbols)" "True" "Test char in static symbols"
+gdb_test "python print (\"simple_struct\" in static_symbols)" "True" "Test simple_struct in static symbols"
 
 # Test is_valid when the objfile is unloaded.  This must be the last
 # test as it unloads the object file in GDB.
 gdb_unload
-gdb_test "python print sal.is_valid()" "False" "Test sal.is_valid"
-gdb_test "python print symtab.is_valid()" "False" "Test symtab.is_valid()"
+gdb_test "python print (sal.is_valid())" "False" "Test sal.is_valid"
+gdb_test "python print (symtab.is_valid())" "False" "Test symtab.is_valid()"
 
 gdb_test_no_output "python sal = None" "Test sal destructor"
 gdb_test_no_output "python symtab = None" "Test symtab destructor"
Index: gdb/testsuite/gdb.python/py-template.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-template.exp,v
retrieving revision 1.12
diff -u -r1.12 py-template.exp
--- gdb/testsuite/gdb.python/py-template.exp	22 Jun 2012 17:59:33 -0000	1.12
+++ gdb/testsuite/gdb.python/py-template.exp	9 Nov 2012 22:26:56 -0000
@@ -48,12 +48,12 @@
 	return
     }
     # There is no executable code in main(), so we are where we want to be
-    gdb_test "print foo" ".*"
+    gdb_test "print (foo)" ".*"
     gdb_test_no_output "python foo = gdb.history(0)"
 
     # Replace '*' with '\*' in regex.
     regsub -all {\*} $type {\*} t
-    gdb_test "python print foo.type.template_argument(0)" $t $type
+    gdb_test "python print (foo.type.template_argument(0))" $t $type
 }
 
 test_template_arg "${binfile}-ci" "const int"
Index: gdb/testsuite/gdb.python/py-type.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-type.exp,v
retrieving revision 1.25
diff -u -r1.25 py-type.exp
--- gdb/testsuite/gdb.python/py-type.exp	10 Aug 2012 20:26:00 -0000	1.25
+++ gdb/testsuite/gdb.python/py-type.exp	9 Nov 2012 22:26:56 -0000
@@ -59,7 +59,7 @@
   global gdb_prompt
 
   # .fields() of a typedef should still return the underlying field list
-  gdb_test "python print len(gdb.parse_and_eval('ts').type.fields())" "2" \
+  gdb_test "python print (len(gdb.parse_and_eval('ts').type.fields()))" "2" \
       "$lang typedef field list"
 
   if {$lang == "c++"} {
@@ -67,12 +67,12 @@
       gdb_py_test_silent_cmd "print c" "print value" 1
       gdb_py_test_silent_cmd "python c = gdb.history (0)" "get value from history" 1
       gdb_py_test_silent_cmd "python fields = c.type.fields()" "get fields" 1
-      gdb_test "python print len(fields)" "2" "Check number of fields"
-      gdb_test "python print fields\[0\].name" "c" "Check class field c name"
-      gdb_test "python print fields\[1\].name" "d" "Check class field d name"
+      gdb_test "python print (len(fields))" "2" "Check number of fields"
+      gdb_test "python print (fields\[0\].name)" "c" "Check class field c name"
+      gdb_test "python print (fields\[1\].name)" "d" "Check class field d name"
 
-      gdb_test "python print c.type == gdb.parse_and_eval('d').type" "False"
-      gdb_test "python print c.type == gdb.parse_and_eval('d').type.fields()\[0\].type" \
+      gdb_test "python print (c.type == gdb.parse_and_eval('d').type)" "False"
+      gdb_test "python print (c.type == gdb.parse_and_eval('d').type.fields()\[0\].type)" \
 	  "True"
   }
 
@@ -80,85 +80,85 @@
   gdb_py_test_silent_cmd "print st" "print value" 1
   gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value from history" 1
   gdb_py_test_silent_cmd "python fields = st.type.fields()" "get fields" 1
-  gdb_test "python print len(fields)" "2" "Check number of fields"
-  gdb_test "python print fields\[0\].name" "a" "Check structure field a name"
-  gdb_test "python print fields\[1\].name" "b" "Check structure field b name"
+  gdb_test "python print (len(fields))" "2" "Check number of fields"
+  gdb_test "python print (fields\[0\].name)" "a" "Check structure field a name"
+  gdb_test "python print (fields\[1\].name)" "b" "Check structure field b name"
 
   # Regression test for
   # http://sourceware.org/bugzilla/show_bug.cgi?id=12070.
-  gdb_test "python print 'type' in dir(fields\[0\])" "True" \
+  gdb_test "python print ('type' in dir(fields\[0\]))" "True" \
     "Check that dir includes name"
 
   # Test Python mapping behavior of gdb.Type for structs/classes
-  gdb_test "python print len(st.type)" "2" "Check number of fields"
-  gdb_test "python print st.type\['a'\].name" "a" "Check fields lookup by name"
-    gdb_test "python print \[v.bitpos for v in st.type.itervalues()\]" {\[0L, 32L\]} "Check fields iteration over values"
-    gdb_test "python print \[(n, v.bitpos) for (n, v) in st.type.items()\]" {\[\('a', 0L\), \('b', 32L\)\]} "Check fields items list"
-  gdb_test "python print 'a' in st.type" "True" "Check field name exists test"
-  gdb_test "python print 'nosuch' in st.type" "False" "Check field name nonexists test"
-  gdb_test "python print not not st.type" "True" "Check conversion to bool"
+  gdb_test "python print (len(st.type))" "2" "Check number of fields"
+  gdb_test "python print (st.type\['a'\].name)" "a" "Check fields lookup by name"
+    gdb_test "python print (\[v.bitpos for v in st.type.itervalues()\])" {\[0L?, 32L?\]} "Check fields iteration over values"
+    gdb_test "python print (\[(n, v.bitpos) for (n, v) in st.type.items()\])" {\[\('a', 0L?\), \('b', 32L?\)\]} "Check fields items list"
+  gdb_test "python print ('a' in st.type)" "True" "Check field name exists test"
+  gdb_test "python print ('nosuch' in st.type)" "False" "Check field name nonexists test"
+  gdb_test "python print (not not st.type)" "True" "Check conversion to bool"
 
   # Test rejection of mapping operations on scalar types
-  gdb_test "python print len (st.type\['a'\].type)" "TypeError: Type is not a structure, union, or enum type.*"
-  gdb_test "python print st.type\['a'\].type.has_key ('x')" "TypeError: Type is not a structure, union, or enum type.*"
-  gdb_test "python print st.type\['a'\].type.keys ()" "TypeError: Type is not a structure, union, or enum type.*"
-  gdb_test "python print st.type\['a'\].type\['x'\]" "TypeError: Type is not a structure, union, or enum type.*"
+  gdb_test "python print (len (st.type\['a'\].type))" "TypeError: Type is not a structure, union, or enum type.*"
+  gdb_test "python print (st.type\['a'\].type.has_key ('x'))" "TypeError: Type is not a structure, union, or enum type.*"
+  gdb_test "python print (st.type\['a'\].type.keys ())" "TypeError: Type is not a structure, union, or enum type.*"
+  gdb_test "python print (st.type\['a'\].type\['x'\])" "TypeError: Type is not a structure, union, or enum type.*"
 
   # Test conversion to bool on scalar types
-  gdb_test "python print not not st.type\['a'\].type" "True"
+  gdb_test "python print (not not st.type\['a'\].type)" "True"
   
   # Test regression PR python/10805
   gdb_py_test_silent_cmd "print ar" "print value" 1
   gdb_py_test_silent_cmd "python ar = gdb.history (0)" "get value from  history" 1
   gdb_test "python fields = ar.type.fields()"
-  gdb_test "python print len(fields)" "1" "Check the number of fields"
-  gdb_test "python print fields\[0\].type" "<range type>" "Check array field type"
+  gdb_test "python print (len(fields))" "1" "Check the number of fields"
+  gdb_test "python print (fields\[0\].type)" "<range type>" "Check array field type"
 
   # Test gdb.Type.array.
-  gdb_test "python print ar\[0\].cast(ar\[0\].type.array(1))" \
+  gdb_test "python print (ar\[0\].cast(ar\[0\].type.array(1)))" \
       ".1, 2." "cast to array with one argument"
-  gdb_test "python print ar\[0\].cast(ar\[0\].type.array(0, 1))" \
+  gdb_test "python print (ar\[0\].cast(ar\[0\].type.array(0, 1)))" \
       ".1, 2." "cast to array with two arguments"
 
-  gdb_test "python print ar\[0\].type == ar\[0\].type" "True"
+  gdb_test "python print (ar\[0\].type == ar\[0\].type)" "True"
 
   # Test gdb.Type.vector.
   # Note: vectors cast differently than arrays.  Here ar[0] is replicated
   # for the size of the vector.
   gdb_py_test_silent_cmd \
       "python vec1 = ar\[0\].cast(ar\[0\].type.vector(1))" "set vec1" 1
-  gdb_test "python print vec1" ".1, 1." "cast to vector with one argument"
+  gdb_test "python print (vec1)" ".1, 1." "cast to vector with one argument"
   gdb_py_test_silent_cmd \
       "python vec2 = ar\[0\].cast(ar\[0\].type.vector(0, 1))" "set vec2" 1
-  gdb_test "python print vec2" ".1, 1." "cast to vector with two arguments"
-  gdb_test "python print vec1 == vec2" "True"
+  gdb_test "python print (vec2)" ".1, 1." "cast to vector with two arguments"
+  gdb_test "python print (vec1 == vec2)" "True"
   gdb_py_test_silent_cmd \
       "python vec3 = ar\[1\].cast(ar\[1\].type.vector(1))" "set vec3" 1
-  gdb_test "python print vec1 == vec3" "False"
+  gdb_test "python print (vec1 == vec3)" "False"
 }
 
 proc test_enums {} {
   gdb_py_test_silent_cmd "print e" "print value" 1
   gdb_py_test_silent_cmd "python e = gdb.history (0)" "get value from  history" 1
   gdb_py_test_silent_cmd "python fields = e.type.fields()" "get value from history" 1
-  gdb_test "python print len(fields)" "3" "Check the number of enum fields"
-  gdb_test "python print fields\[0\].name" "v1" "Check enum field name"
-  gdb_test "python print fields\[1\].name" "v2" "Check enum field name"
+  gdb_test "python print (len(fields))" "3" "Check the number of enum fields"
+  gdb_test "python print (fields\[0\].name)" "v1" "Check enum field name"
+  gdb_test "python print (fields\[1\].name)" "v2" "Check enum field name"
 
   # Ditto but by mapping operations
-  gdb_test "python print len(e.type)" "3" "Check the number of enum fields"
-  gdb_test "python print e.type\['v1'\].name" "v1" "Check enum field lookup by name"
-  gdb_test "python print e.type\['v3'\].name" "v3" "Check enum field lookup by name"
-    gdb_test "python print \[v.enumval for v in e.type.itervalues()\]" {\[0L, 1L, 2L\]} "Check num fields iteration over values"
-    gdb_test "python print \[(n, v.enumval) for (n, v) in e.type.items()\]" {\[\('v1', 0L\), \('v2', 1L\), \('v3', 2L\)\]} "Check enum fields items list"
+  gdb_test "python print (len(e.type))" "3" "Check the number of enum fields"
+  gdb_test "python print (e.type\['v1'\].name)" "v1" "Check enum field lookup by name"
+  gdb_test "python print (e.type\['v3'\].name)" "v3" "Check enum field lookup by name"
+    gdb_test "python print (\[v.enumval for v in e.type.itervalues()\])" {\[0L?, 1L?, 2L?\]} "Check num fields iteration over values"
+    gdb_test "python print (\[(n, v.enumval) for (n, v) in e.type.items()\])" {\[\('v1', 0L?\), \('v2', 1L?\), \('v3', 2L?\)\]} "Check enum fields items list"
 }
 proc test_base_class {} {
   gdb_py_test_silent_cmd "print d" "print value" 1
   gdb_py_test_silent_cmd "python d = gdb.history (0)" "get value from  history" 1
   gdb_py_test_silent_cmd "python fields = d.type.fields()" "get value from history" 1
-  gdb_test "python print len(fields)" "3" "Check the number of fields"
-  gdb_test "python print fields\[0\].is_base_class" "True" "Check base class"
-  gdb_test "python print fields\[1\].is_base_class" "False" "Check base class"
+  gdb_test "python print (len(fields))" "3" "Check the number of fields"
+  gdb_test "python print (fields\[0\].is_base_class)" "True" "Check base class"
+  gdb_test "python print (fields\[1\].is_base_class)" "False" "Check base class"
 }
 
 proc test_range {} {
@@ -166,21 +166,21 @@
   # Test a valid range request.
   gdb_py_test_silent_cmd "print ar" "print value" 1
   gdb_py_test_silent_cmd "python ar = gdb.history (0)" "get value from history" 1
-  gdb_test "python print len(ar.type.range())" "2" "Check correct tuple length"
-  gdb_test "python print ar.type.range()\[0\]" "0" "Check low range"
-  gdb_test "python print ar.type.range()\[1\]" "1" "Check high range"
+  gdb_test "python print (len(ar.type.range()))" "2" "Check correct tuple length"
+  gdb_test "python print (ar.type.range()\[0\])" "0" "Check low range"
+  gdb_test "python print (ar.type.range()\[1\])" "1" "Check high range"
 
   # Test a range request on a ranged type.
   gdb_py_test_silent_cmd "print ar" "print value" 1
   gdb_py_test_silent_cmd "python ar = gdb.history (0)" "get value from  history" 1
   gdb_py_test_silent_cmd "python fields = ar.type.fields()" "get fields" 1
-  gdb_test "python print fields\[0\].type.range()\[0\]" "0" "Check range type low bound"
-  gdb_test "python print fields\[0\].type.range()\[1\]" "1" "Check range type high bound"
+  gdb_test "python print (fields\[0\].type.range()\[0\])" "0" "Check range type low bound"
+  gdb_test "python print (fields\[0\].type.range()\[1\])" "1" "Check range type high bound"
 
   # Test where a range does not exist.
   gdb_py_test_silent_cmd "print st" "print value" 1
   gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value from history" 1
-  gdb_test "python print st.type.range()" "RuntimeError: This type does not have a range.*" "Check range for non ranged type."
+  gdb_test "python print (st.type.range())" "RuntimeError: This type does not have a range.*" "Check range for non ranged type."
 }
 
 # Some tests of template arguments.
@@ -190,8 +190,8 @@
 	"get type of temvar" \
 	1
 
-    gdb_test "python print ttype.template_argument(0)" "D"
-    gdb_test "python print isinstance(ttype.template_argument(0), gdb.Type)" \
+    gdb_test "python print (ttype.template_argument(0))" "D"
+    gdb_test "python print (isinstance(ttype.template_argument(0), gdb.Type))" \
 	"True"
 
     # The next two tests require a GCC that emits DW_TAG_template_*.
@@ -202,16 +202,16 @@
 	set have_older_gcc 1
     }
     if $have_older_gcc { setup_xfail *-*-* }
-    gdb_test "python print ttype.template_argument(1)" "23"
+    gdb_test "python print (ttype.template_argument(1))" "23"
     if $have_older_gcc { setup_xfail *-*-* }
-    gdb_test "python print isinstance(ttype.template_argument(1), gdb.Value)" \
+    gdb_test "python print (isinstance(ttype.template_argument(1), gdb.Value))" \
 	"True"
 
     if {[test_compiler_info {gcc-[0-3]-*}]
 	|| [test_compiler_info {gcc-4-[0-5]-*}]} {
 	setup_xfail "gcc/46955" *-*-*
     }
-    gdb_test "python print ttype.template_argument(2)" "&C::c"
+    gdb_test "python print (ttype.template_argument(2))" "&C::c"
 }
 
 # Perform C Tests.
Index: gdb/testsuite/gdb.python/py-value-cc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-value-cc.exp,v
retrieving revision 1.2
diff -u -r1.2 py-value-cc.exp
--- gdb/testsuite/gdb.python/py-value-cc.exp	22 Jun 2012 17:59:33 -0000	1.2
+++ gdb/testsuite/gdb.python/py-value-cc.exp	9 Nov 2012 22:26:56 -0000
@@ -34,13 +34,13 @@
 gdb_breakpoint [gdb_get_line_number "Break here."]
 gdb_continue_to_breakpoint "Break here" ".*Break here.*"
 
-gdb_test "python print str(gdb.parse_and_eval(\"a\").type)" "const A &"
-gdb_test "python print str(gdb.parse_and_eval(\"a\").referenced_value().type)" "const A"
-gdb_test "python print str(gdb.parse_and_eval(\"int_ref\").type)" "int &"
-gdb_test "python print str(gdb.parse_and_eval(\"int_ref\").referenced_value().type)" "int"
-gdb_test "python print str(gdb.parse_and_eval(\"int_ref\").referenced_value())" "10"
+gdb_test "python print (str(gdb.parse_and_eval(\"a\").type))" "const A &"
+gdb_test "python print (str(gdb.parse_and_eval(\"a\").referenced_value().type))" "const A"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ref\").type))" "int &"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ref\").referenced_value().type))" "int"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ref\").referenced_value()))" "10"
 
-gdb_test "python print str(gdb.parse_and_eval(\"int_ptr_ref\").dereference().type)" "int"
-gdb_test "python print str(gdb.parse_and_eval(\"int_ptr_ref\").referenced_value().type)" "int_ptr"
-gdb_test "python print str(gdb.parse_and_eval(\"int_ptr_ref\").referenced_value().dereference())" "10"
-gdb_test "python print str(gdb.parse_and_eval(\"int_ptr_ref\").referenced_value().referenced_value())" "10"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ptr_ref\").dereference().type))" "int"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ptr_ref\").referenced_value().type))" "int_ptr"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ptr_ref\").referenced_value().dereference()))" "10"
+gdb_test "python print (str(gdb.parse_and_eval(\"int_ptr_ref\").referenced_value().referenced_value()))" "10"
Index: gdb/testsuite/gdb.python/py-value.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-value.exp,v
retrieving revision 1.31
diff -u -r1.31 py-value.exp
--- gdb/testsuite/gdb.python/py-value.exp	6 Sep 2012 17:57:41 -0000	1.31
+++ gdb/testsuite/gdb.python/py-value.exp	9 Nov 2012 22:26:57 -0000
@@ -32,20 +32,25 @@
 
 proc test_value_creation {} {
   global gdb_prompt
+  global gdb_py_is_py3k
 
   gdb_py_test_silent_cmd "python i = gdb.Value (True)" "create boolean value" 1
   gdb_py_test_silent_cmd "python i = gdb.Value (5)" "create integer value" 1
-  gdb_py_test_silent_cmd "python i = gdb.Value (5L)" "create long value" 1
+  if { $gdb_py_is_py3k == 0 } {
+    gdb_py_test_silent_cmd "python i = gdb.Value (5L)" "create long value" 1
+  }
   gdb_py_test_silent_cmd "python f = gdb.Value (1.25)" "create double value" 1
   gdb_py_test_silent_cmd "python a = gdb.Value ('string test')" "create 8-bit string value" 1
-  gdb_test "python print a" "\"string test\"" "print 8-bit string"
-  gdb_test "python print a.__class__" "<type 'gdb.Value'>" "verify type of 8-bit string"
-  gdb_py_test_silent_cmd "python a = gdb.Value (u'unicode test')" "create unicode value" 1
-  gdb_test "python print a" "\"unicode test\"" "print Unicode string"
-  gdb_test "python print a.__class__" "<type 'gdb.Value'>" "verify type of unicode string"
+  gdb_test "python print (a)" "\"string test\"" "print 8-bit string"
+  gdb_test "python print (a.__class__)" "<(type|class) 'gdb.Value'>" "verify type of 8-bit string"
+  if { $gdb_py_is_py3k == 0 } {
+    gdb_py_test_silent_cmd "python a = gdb.Value (u'unicode test')" "create unicode value" 1
+    gdb_test "python print (a)" "\"unicode test\"" "print Unicode string"
+    gdb_test "python print (a.__class__)" "<(type|class) 'gdb.Value'>" "verify type of unicode string"
+  }
 
   # Test address attribute is None in a non-addressable value
-  gdb_test "python print 'result =', i.address" "= None" "Test address attribute in non-addressable value"
+  gdb_test "python print ('result = %s' % i.address)" "= None" "Test address attribute in non-addressable value"
 }
 
 proc test_value_numeric_ops {} {
@@ -55,42 +60,42 @@
   gdb_py_test_silent_cmd "python j = gdb.Value (2)" "create second integer value" 0
   gdb_py_test_silent_cmd "python f = gdb.Value (1.25)" "create first double value" 0
   gdb_py_test_silent_cmd "python g = gdb.Value (2.5)" "create second double value" 0
-  gdb_test "python print 'result = ' + str(i+j)" " = 7" "add two integer values"
-  gdb_test "python print (i+j).__class__" "<type 'gdb.Value'>" "verify type of integer add result"
+  gdb_test "python print ('result = ' + str(i+j))" " = 7" "add two integer values"
+  gdb_test "python print ((i+j).__class__)" "<(type|class) 'gdb.Value'>" "verify type of integer add result"
 
-  gdb_test "python print 'result = ' + str(f+g)" " = 3.75" "add two double values"
-  gdb_test "python print 'result = ' + str(i-j)" " = 3" "subtract two integer values"
-  gdb_test "python print 'result = ' + str(f-g)" " = -1.25" "subtract two double values"
-  gdb_test "python print 'result = ' + str(i*j)" " = 10" "multiply two integer values"
-  gdb_test "python print 'result = ' + str(f*g)" " = 3.125" "multiply two double values"
-  gdb_test "python print 'result = ' + str(i/j)" " = 2" "divide two integer values"
-  gdb_test "python print 'result = ' + str(f/g)" " = 0.5" "divide two double values"
-  gdb_test "python print 'result = ' + str(i%j)" " = 1" "take remainder of two integer values"
+  gdb_test "python print ('result = ' + str(f+g))" " = 3.75" "add two double values"
+  gdb_test "python print ('result = ' + str(i-j))" " = 3" "subtract two integer values"
+  gdb_test "python print ('result = ' + str(f-g))" " = -1.25" "subtract two double values"
+  gdb_test "python print ('result = ' + str(i*j))" " = 10" "multiply two integer values"
+  gdb_test "python print ('result = ' + str(f*g))" " = 3.125" "multiply two double values"
+  gdb_test "python print ('result = ' + str(i/j))" " = 2" "divide two integer values"
+  gdb_test "python print ('result = ' + str(f/g))" " = 0.5" "divide two double values"
+  gdb_test "python print ('result = ' + str(i%j))" " = 1" "take remainder of two integer values"
   # Remainder of float is implemented in Python but not in GDB's value system.
 
-  gdb_test "python print 'result = ' + str(i**j)" " = 25" "integer value raised to the power of another integer value"
-  gdb_test "python print 'result = ' + str(g**j)" " = 6.25" "double value raised to the power of integer value"
+  gdb_test "python print ('result = ' + str(i**j))" " = 25" "integer value raised to the power of another integer value"
+  gdb_test "python print ('result = ' + str(g**j))" " = 6.25" "double value raised to the power of integer value"
 
-  gdb_test "python print 'result = ' + str(-i)" " = -5" "negated integer value"
-  gdb_test "python print 'result = ' + str(+i)" " = 5" "positive integer value"
-  gdb_test "python print 'result = ' + str(-f)" " = -1.25" "negated double value"
-  gdb_test "python print 'result = ' + str(+f)" " = 1.25" "positive double value"
-  gdb_test "python print 'result = ' + str(abs(j-i))" " = 3" "absolute of integer value"
-  gdb_test "python print 'result = ' + str(abs(f-g))" " = 1.25" "absolute of double value"
+  gdb_test "python print ('result = ' + str(-i))" " = -5" "negated integer value"
+  gdb_test "python print ('result = ' + str(+i))" " = 5" "positive integer value"
+  gdb_test "python print ('result = ' + str(-f))" " = -1.25" "negated double value"
+  gdb_test "python print ('result = ' + str(+f))" " = 1.25" "positive double value"
+  gdb_test "python print ('result = ' + str(abs(j-i)))" " = 3" "absolute of integer value"
+  gdb_test "python print ('result = ' + str(abs(f-g)))" " = 1.25" "absolute of double value"
 
   # Test gdb.Value mixed with Python types.
 
-  gdb_test "python print 'result = ' + str(i-1)" " = 4" "subtract integer value from python integer"
-  gdb_test "python print (i-1).__class__" "<type 'gdb.Value'>" "verify type of mixed integer subtraction result"
-  gdb_test "python print 'result = ' + str(f+1.5)" " = 2.75" "add double value with python float"
+  gdb_test "python print ('result = ' + str(i-1))" " = 4" "subtract integer value from python integer"
+  gdb_test "python print ((i-1).__class__)" "<(type|class) 'gdb.Value'>" "verify type of mixed integer subtraction result"
+  gdb_test "python print ('result = ' + str(f+1.5))" " = 2.75" "add double value with python float"
 
-  gdb_test "python print 'result = ' + str(1-i)" " = -4" "subtract python integer from integer value"
-  gdb_test "python print 'result = ' + str(1.5+f)" " = 2.75" "add python float with double value"
+  gdb_test "python print ('result = ' + str(1-i))" " = -4" "subtract python integer from integer value"
+  gdb_test "python print ('result = ' + str(1.5+f))" " = 2.75" "add python float with double value"
 
   # Conversion test.
   gdb_test "print evalue" " = TWO"
   gdb_test_no_output "python evalue = gdb.history (0)"
-  gdb_test "python print int (evalue)" "2"
+  gdb_test "python print (int (evalue))" "2"
 
   # Test pointer arithmethic
 
@@ -100,19 +105,19 @@
   gdb_test "print (void *) 5" ".*" ""
   gdb_test_no_output "python b = gdb.history (0)" ""
 
-  gdb_test "python print 'result = ' + str(a+5)" " = 0x7( <.*>)?" "add pointer value with python integer"
-  gdb_test "python print 'result = ' + str(b-2)" " = 0x3( <.*>)?" "subtract python integer from pointer value"
-  gdb_test "python print 'result = ' + str(b-a)" " = 3" "subtract two pointer values"
+  gdb_test "python print ('result = ' + str(a+5))" " = 0x7( <.*>)?" "add pointer value with python integer"
+  gdb_test "python print ('result = ' + str(b-2))" " = 0x3( <.*>)?" "subtract python integer from pointer value"
+  gdb_test "python print ('result = ' + str(b-a))" " = 3" "subtract two pointer values"
 
   # Test some invalid operations.
 
-  gdb_test_multiple "python print 'result = ' + str(i+'foo')" "catch error in python type conversion" {
+  gdb_test_multiple "python print ('result = ' + str(i+'foo'))" "catch error in python type conversion" {
       -re "Argument to arithmetic operation not a number or boolean.*$gdb_prompt $"   {pass "catch error in python type conversion"}
       -re "result = .*$gdb_prompt $"		      {fail "catch error in python type conversion"}
       -re "$gdb_prompt $"			      {fail "catch error in python type conversion"}
   }
 
-  gdb_test_multiple "python print 'result = ' + str(i+gdb.Value('foo'))" "catch throw of GDB error" {
+  gdb_test_multiple "python print ('result = ' + str(i+gdb.Value('foo')))" "catch throw of GDB error" {
       -re "Traceback.*$gdb_prompt $"  {pass "catch throw of GDB error"}
       -re "result = .*$gdb_prompt $"  {fail "catch throw of GDB error"}
       -re "$gdb_prompt $"	      {fail "catch throw of GDB error"}
@@ -125,9 +130,9 @@
     "python" "" \
     "def test_bool (val):" "" \
     "  if val:" "" \
-    "    print 'yay'" "" \
+    "    print ('yay')" "" \
     "  else:" "" \
-    "    print 'nay'" "" \
+    "    print ('nay')" "" \
     "end" ""
 
   gdb_test "py test_bool (gdb.Value (True))" "yay" "check evaluation of true boolean value in expression"
@@ -144,40 +149,41 @@
 }
 
 proc test_value_compare {} {
-  gdb_test "py print gdb.Value (1) < gdb.Value (1)" "False" "less than, equal"
-  gdb_test "py print gdb.Value (1) < gdb.Value (2)" "True" "less than, less"
-  gdb_test "py print gdb.Value (2) < gdb.Value (1)" "False" "less than, greater"
-  gdb_test "py print gdb.Value (2) < None" "False" "less than, None"
-
-  gdb_test "py print gdb.Value (1) <= gdb.Value (1)" "True" "less or equal, equal"
-  gdb_test "py print gdb.Value (1) <= gdb.Value (2)" "True" "less or equal, less"
-  gdb_test "py print gdb.Value (2) <= gdb.Value (1)" "False" "less or equal, greater"
-  gdb_test "py print gdb.Value (2) <= None" "False" "less or equal, None"
-
-  gdb_test "py print gdb.Value (1) == gdb.Value (1)" "True" "equality of gdb.Values"
-  gdb_test "py print gdb.Value (1) == gdb.Value (2)" "False" "inequality of gdb.Values"
-  gdb_test "py print gdb.Value (1) == 1.0" "True" "equality of gdb.Value with Python value"
-  gdb_test "py print gdb.Value (1) == 2" "False" "inequality of gdb.Value with Python value"
-  gdb_test "py print gdb.Value (1) == None" "False" "inequality of gdb.Value with None"
-
-  gdb_test "py print gdb.Value (1) != gdb.Value (1)" "False" "inequality, false"
-  gdb_test "py print gdb.Value (1) != gdb.Value (2)" "True" "inequality, true"
-  gdb_test "py print gdb.Value (1) != None" "True" "inequality, None"
-
-  gdb_test "py print gdb.Value (1) > gdb.Value (1)" "False" "greater than, equal"
-  gdb_test "py print gdb.Value (1) > gdb.Value (2)" "False" "greater than, less"
-  gdb_test "py print gdb.Value (2) > gdb.Value (1)" "True" "greater than, greater"
-  gdb_test "py print gdb.Value (2) > None" "True" "greater than, None"
-
-  gdb_test "py print gdb.Value (1) >= gdb.Value (1)" "True" "greater or equal, equal"
-  gdb_test "py print gdb.Value (1) >= gdb.Value (2)" "False" "greater or equal, less"
-  gdb_test "py print gdb.Value (2) >= gdb.Value (1)" "True" "greater or equal, greater"
-  gdb_test "py print gdb.Value (2) >= None" "True" "greater or equal, None"
+  gdb_test "py print (gdb.Value (1) < gdb.Value (1))" "False" "less than, equal"
+  gdb_test "py print (gdb.Value (1) < gdb.Value (2))" "True" "less than, less"
+  gdb_test "py print (gdb.Value (2) < gdb.Value (1))" "False" "less than, greater"
+  gdb_test "py print (gdb.Value (2) < None)" "False" "less than, None"
+
+  gdb_test "py print (gdb.Value (1) <= gdb.Value (1))" "True" "less or equal, equal"
+  gdb_test "py print (gdb.Value (1) <= gdb.Value (2))" "True" "less or equal, less"
+  gdb_test "py print (gdb.Value (2) <= gdb.Value (1))" "False" "less or equal, greater"
+  gdb_test "py print (gdb.Value (2) <= None)" "False" "less or equal, None"
+
+  gdb_test "py print (gdb.Value (1) == gdb.Value (1))" "True" "equality of gdb.Values"
+  gdb_test "py print (gdb.Value (1) == gdb.Value (2))" "False" "inequality of gdb.Values"
+  gdb_test "py print (gdb.Value (1) == 1.0)" "True" "equality of gdb.Value with Python value"
+  gdb_test "py print (gdb.Value (1) == 2)" "False" "inequality of gdb.Value with Python value"
+  gdb_test "py print (gdb.Value (1) == None)" "False" "inequality of gdb.Value with None"
+
+  gdb_test "py print (gdb.Value (1) != gdb.Value (1))" "False" "inequality, false"
+  gdb_test "py print (gdb.Value (1) != gdb.Value (2))" "True" "inequality, true"
+  gdb_test "py print (gdb.Value (1) != None)" "True" "inequality, None"
+
+  gdb_test "py print (gdb.Value (1) > gdb.Value (1))" "False" "greater than, equal"
+  gdb_test "py print (gdb.Value (1) > gdb.Value (2))" "False" "greater than, less"
+  gdb_test "py print (gdb.Value (2) > gdb.Value (1))" "True" "greater than, greater"
+  gdb_test "py print (gdb.Value (2) > None)" "True" "greater than, None"
+
+  gdb_test "py print (gdb.Value (1) >= gdb.Value (1))" "True" "greater or equal, equal"
+  gdb_test "py print (gdb.Value (1) >= gdb.Value (2))" "False" "greater or equal, less"
+  gdb_test "py print (gdb.Value (2) >= gdb.Value (1))" "True" "greater or equal, greater"
+  gdb_test "py print (gdb.Value (2) >= None)" "True" "greater or equal, None"
 }
 
 proc test_value_in_inferior {} {
   global gdb_prompt
   global testfile
+  global gdb_py_is_py3k
 
   gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
 
@@ -188,8 +194,10 @@
 
   gdb_py_test_silent_cmd "python s = gdb.history (0)" "get value from history" 1
 
-  gdb_test "python print 'result = ' + str(s\['a'\])" " = 3" "access element inside struct using 8-bit string name"
-  gdb_test "python print 'result = ' + str(s\[u'a'\])" " = 3" "access element inside struct using unicode name"
+  gdb_test "python print ('result = ' + str(s\['a'\]))" " = 3" "access element inside struct using 8-bit string name"
+  if { $gdb_py_is_py3k == 0 } {
+    gdb_test "python print ('result = ' + str(s\[u'a'\]))" " = 3" "access element inside struct using unicode name"
+  }
 
   # Test dereferencing the argv pointer
 
@@ -201,14 +209,14 @@
 
   # Check that the dereferenced value is sane
   if { ! [target_info exists noargs] } {
-    gdb_test "python print arg0" "0x.*$testfile\"" "verify dereferenced value"
+    gdb_test "python print (arg0)" "0x.*$testfile\"" "verify dereferenced value"
   }
 
   # Smoke-test is_optimized_out attribute
-  gdb_test "python print 'result =', arg0.is_optimized_out" "= False" "Test is_optimized_out attribute"
+  gdb_test "python print ('result = %s' % arg0.is_optimized_out)" "= False" "Test is_optimized_out attribute"
 
   # Test address attribute
-  gdb_test "python print 'result =', arg0.address" "= 0x\[\[:xdigit:\]\]+" "Test address attribute"
+  gdb_test "python print ('result = %s' % arg0.address)" "= 0x\[\[:xdigit:\]\]+" "Test address attribute"
 
   # Test displaying a variable that is temporarily at a bad address.
   # But if we can examine what's at memory address 0, then we'll also be
@@ -227,7 +235,7 @@
   if {$can_read_0} {
     untested $test
   } else {
-    gdb_test "python print gdb.parse_and_eval('*(int*)0')" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
+    gdb_test "python print (gdb.parse_and_eval('*(int*)0'))" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
   }
 
   # Test Python lazy value handling
@@ -236,40 +244,40 @@
     untested $test
   } else {
     gdb_test "python inval = gdb.parse_and_eval('*(int*)0')"
-    gdb_test "python print inval.is_lazy" "True"
+    gdb_test "python print (inval.is_lazy)" "True"
     gdb_test "python inval2 = inval+1" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
     gdb_test "python inval.fetch_lazy ()" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
   }
   gdb_test "python argc_lazy = gdb.parse_and_eval('argc')"
   gdb_test "python argc_notlazy = gdb.parse_and_eval('argc')"
   gdb_test "python argc_notlazy.fetch_lazy()"
-  gdb_test "python print argc_lazy.is_lazy" "True"
-  gdb_test "python print argc_notlazy.is_lazy" "False"
+  gdb_test "python print (argc_lazy.is_lazy)" "True"
+  gdb_test "python print (argc_notlazy.is_lazy)" "False"
   gdb_test "print argc" " = 1" "sanity check argc"
-  gdb_test "python print argc_lazy.is_lazy" "\r\nTrue"
+  gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue"
   gdb_test_no_output "set argc=2"
-  gdb_test "python print argc_notlazy" "\r\n1"
-  gdb_test "python print argc_lazy" "\r\n2"
-  gdb_test "python print argc_lazy.is_lazy" "False"
+  gdb_test "python print (argc_notlazy)" "\r\n1"
+  gdb_test "python print (argc_lazy)" "\r\n2"
+  gdb_test "python print (argc_lazy.is_lazy)" "False"
 
   # Test string fetches,  both partial and whole.
   gdb_test "print st" "\"divide et impera\""
   gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value from history" 1
-  gdb_test "python print st.string ()"  "divide et impera"  "Test string with no length"
-  gdb_test "python print st.string (length = -1)" "divide et impera" "Test string (length = -1) is all of the string"
-  gdb_test "python print st.string (length = 6)" "divide"
-  gdb_test "python print \"---\"+st.string (length = 0)+\"---\"" "------" "Test string (length = 0) is empty"
-  gdb_test "python print len(st.string (length = 0))" "0" "Test length is 0"
+  gdb_test "python print (st.string ())"  "divide et impera"  "Test string with no length"
+  gdb_test "python print (st.string (length = -1))" "divide et impera" "Test string (length = -1) is all of the string"
+  gdb_test "python print (st.string (length = 6))" "divide"
+  gdb_test "python print (\"---\"+st.string (length = 0)+\"---\")" "------" "Test string (length = 0) is empty"
+  gdb_test "python print (len(st.string (length = 0)))" "0" "Test length is 0"
 
 
   # Fetch a string that has embedded nulls.
   gdb_test "print nullst" "\"divide\\\\000et\\\\000impera\".*"
   gdb_py_test_silent_cmd "python nullst = gdb.history (0)" "get value from history" 1
-  gdb_test "python print nullst.string ()" "divide" "Test string to first null"
+  gdb_test "python print (nullst.string ())" "divide" "Test string to first null"
   # Python cannot print strings that contain the null (\0) character.
   # For the purposes of this test, use repr()
   gdb_py_test_silent_cmd "python nullst = nullst.string (length = 9)" "get string beyond null" 1
-  gdb_test "python print repr(nullst)" "u'divide\\\\x00et'"
+  gdb_test "python print (repr(nullst))" "u?'divide\\\\x00et'"
 }
 
 proc test_lazy_strings {} {
@@ -280,14 +288,14 @@
   gdb_py_test_silent_cmd "python sptr = gdb.history (0)" "Get value from history" 1
 
   gdb_py_test_silent_cmd "python lstr = sptr.lazy_string()" "Aquire lazy string" 1
-  gdb_test "python print lstr.type" "const char \*." "Test type name equality"
-  gdb_test "python print sptr.type" "const char \*." "Test type name equality"
+  gdb_test "python print (lstr.type)" "const char \*." "Test type name equality"
+  gdb_test "python print (sptr.type)" "const char \*." "Test type name equality"
   gdb_test "print sn" "0x0"
   gdb_py_test_silent_cmd "python snptr = gdb.history (0)" "Get value from history" 1
   gdb_test "python snstr = snptr.lazy_string(length=5)" ".*Cannot create a lazy string with address.*" "Test lazy string"
   gdb_py_test_silent_cmd "python snstr = snptr.lazy_string(length=0)" "Succesfully create a lazy string" 1
-  gdb_test "python print snstr.length" "0" "Test lazy string length"
-  gdb_test "python print snstr.address" "0" "Test lazy string address"
+  gdb_test "python print (snstr.length)" "0" "Test lazy string length"
+  gdb_test "python print (snstr.address)" "0" "Test lazy string address"
 }
 
 
@@ -299,14 +307,14 @@
     gdb_py_test_silent_cmd "python fp1 = gdb.history (0)" "get value from history" 1
     gdb_test "python fp1 = fp1.dereference()" ""
     gdb_test "python result = fp1()" ""
-    gdb_test "python print result" "void"
+    gdb_test "python print (result)" "void"
 
     # Correct inferior call with arguments.
     gdb_test "p/x fp2" " = $hex.*"
     gdb_py_test_silent_cmd "python fp2 = gdb.history (0)" "get value from history" 1
     gdb_test "python fp2 = fp2.dereference()" ""
     gdb_test "python result2 = fp2(10,20)" ""
-    gdb_test "python print result2" "30"
+    gdb_test "python print (result2)" "30"
 
     # Incorrect to call an int value.
     gdb_test "p i" " = $decimal.*"
@@ -322,10 +330,10 @@
 
 # A few objfile tests.
 proc test_objfiles {} {
-    gdb_test "python\nok=False\nfor file in gdb.objfiles():\n  if 'py-value' in file.filename:\n    ok=True\nprint ok\nend" "True" \
+    gdb_test "python\nok=False\nfor file in gdb.objfiles():\n  if 'py-value' in file.filename:\n    ok=True\nprint (ok)\nend" "True" \
 	     "py-value in file.filename"
 
-    gdb_test "python print gdb.objfiles()\[0\].pretty_printers" "\\\[\\\]"
+    gdb_test "python print (gdb.objfiles()\[0\].pretty_printers)" "\\\[\\\]"
 
     gdb_test "python gdb.objfiles()\[0\].pretty_printers = 0" \
       "pretty_printers attribute must be a list.*Error while executing Python code."
@@ -354,7 +362,7 @@
     "delete PTR type" 1
 
   # Now see if the value's type is still valid.
-  gdb_test "python print castval.type" "PTR ." \
+  gdb_test "python print (castval.type)" "PTR ." \
     "print value's type"
 }
 
@@ -379,18 +387,18 @@
 	 "Obtain address" 1
      gdb_py_test_silent_cmd "python rptr = gdb.history(0)" \
 	 "Obtains value from GDB" 1
-     gdb_test "python print rptr\[0\]" "2" "Check pointer passed as reference"
+     gdb_test "python print (rptr\[0\])" "2" "Check pointer passed as reference"
 
      # Just the most basic test of dynamic_cast -- it is checked in
      # the C++ tests.
-     gdb_test "python print bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer()))" \
+     gdb_test "python print (bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer())))" \
 	 True
 
      # Likewise.
-     gdb_test "python print gdb.parse_and_eval('base').dynamic_type" \
+     gdb_test "python print (gdb.parse_and_eval('base').dynamic_type)" \
 	 "Derived \[*\]"
      # A static type case.
-     gdb_test "python print gdb.parse_and_eval('5').dynamic_type" \
+     gdb_test "python print (gdb.parse_and_eval('5').dynamic_type)" \
 	 "int"
  }
 
@@ -403,40 +411,40 @@
      "Create a value for subscript test" 1
 
  # Try to access an int with a subscript.  This should fail.
- gdb_test "python print intv" "1" "Baseline print of a Python value"
- gdb_test "python print intv\[0\]" "gdb.error: Cannot subscript requested type.*" \
+ gdb_test "python print (intv)" "1" "Baseline print of a Python value"
+ gdb_test "python print (intv\[0\])" "gdb.error: Cannot subscript requested type.*" \
      "Attempt to access an integer with a subscript"
 
  # Try to access a string with a subscript.  This should pass.
- gdb_test "python print stringv" "foo." "Baseline print of a Python value"
- gdb_test "python print stringv\[0\]" "f." "Attempt to access a string with a subscript"
+ gdb_test "python print (stringv)" "foo." "Baseline print of a Python value"
+ gdb_test "python print (stringv\[0\])" "f." "Attempt to access a string with a subscript"
 
  # Try to access an int array via a pointer with a subscript.  This should pass.
  gdb_py_test_silent_cmd "print p" "Build pointer to array" 1
  gdb_py_test_silent_cmd "python pointer = gdb.history(0)" "" 1
- gdb_test "python print pointer\[0\]" "1" "Access array via pointer with int subscript"
- gdb_test "python print pointer\[intv\]" "2" "Access array via pointer with value subscript"
+ gdb_test "python print (pointer\[0\])" "1" "Access array via pointer with int subscript"
+ gdb_test "python print (pointer\[intv\])" "2" "Access array via pointer with value subscript"
 
  # Try to access a single dimension array with a subscript to the
  # result.  This should fail.
- gdb_test "python print pointer\[intv\]\[0\]" "gdb.error: Cannot subscript requested type.*" \
+ gdb_test "python print (pointer\[intv\]\[0\])" "gdb.error: Cannot subscript requested type.*" \
      "Attempt to access an integer with a subscript"
 
  # Lastly, test subscript access to an array with multiple
  # dimensions.  This should pass.
  gdb_py_test_silent_cmd "print {\"fu \",\"foo\",\"bar\"}" "Build array" 1
  gdb_py_test_silent_cmd "python marray = gdb.history(0)" "" 1
- gdb_test "python print marray\[1\]\[2\]" "o." "Test multiple subscript"
+ gdb_test "python print (marray\[1\]\[2\])" "o." "Test multiple subscript"
 }
 
 # A few tests of gdb.parse_and_eval.
 proc test_parse_and_eval {} {
-  gdb_test "python print gdb.parse_and_eval ('23')" "23" \
+  gdb_test "python print (gdb.parse_and_eval ('23'))" "23" \
     "parse_and_eval constant test"
-  gdb_test "python print gdb.parse_and_eval ('5 + 7')" "12" \
+  gdb_test "python print (gdb.parse_and_eval ('5 + 7'))" "12" \
     "parse_and_eval simple expression test"
-  gdb_test "python print type(gdb.parse_and_eval ('5 + 7'))" \
-    ".type 'gdb.Value'."\
+  gdb_test "python print (type(gdb.parse_and_eval ('5 + 7')))" \
+    ".(type|class) 'gdb.Value'."\
     "parse_and_eval type test"
 }
 
@@ -449,10 +457,10 @@
     "three = gdb.Value(3)" "" \
     "vdict = {one:\"one str\",two:\"two str\",three:\"three str\"}" "" \
     "end"
-    gdb_test "python print vdict\[one\]" "one str" "Test dictionary hash"
-    gdb_test "python print vdict\[two\]" "two str" "Test dictionary hash"
-    gdb_test "python print vdict\[three\]" "three str" "Test dictionary hash"
-    gdb_test "python print one.__hash__() == hash(one)" "True" "Test inbuilt hash"
+    gdb_test "python print (vdict\[one\])" "one str" "Test dictionary hash"
+    gdb_test "python print (vdict\[two\])" "two str" "Test dictionary hash"
+    gdb_test "python print (vdict\[three\])" "three str" "Test dictionary hash"
+    gdb_test "python print (one.__hash__() == hash(one))" "True" "Test inbuilt hash"
 }
 
 # Build C and C++ versions of executable
Index: gdb/testsuite/gdb.python/python.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/python.exp,v
retrieving revision 1.37
diff -u -r1.37 python.exp
--- gdb/testsuite/gdb.python/python.exp	20 Sep 2012 20:54:11 -0000	1.37
+++ gdb/testsuite/gdb.python/python.exp	9 Nov 2012 22:26:57 -0000
@@ -33,7 +33,7 @@
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
-gdb_test_multiple "python print 23" "verify python support" {
+gdb_test_multiple "python print (23)" "verify python support" {
     -re "not supported.*$gdb_prompt $"	{
       unsupported "python support is disabled"
 
@@ -49,21 +49,21 @@
 
 gdb_py_test_multiple "multi-line python command" \
   "python" "" \
-  "print 23" "" \
+  "print (23)" "" \
   "end" "23"
 
 gdb_py_test_multiple "show python command" \
   "define zzq" "Type commands for definition of .* just \"end\"\\.*" \
   "python" "" \
-  "print 23" "" \
+  "print (23)" "" \
   "end" "" \
   "end" "" \
-  "show user zzq" "User command \"zzq\":.*  python.*print 23.*  end"
+  "show user zzq" "User command \"zzq\":.*  python.*print \\(23\\).*  end"
 
 gdb_py_test_multiple "indented multi-line python command" \
   "python" "" \
   "def foo ():" "" \
-  "  print 'hello, world!'" "" \
+  "  print ('hello, world!')" "" \
   "foo ()" "" \
   "end" "hello, world!"
 
@@ -71,15 +71,15 @@
 
 gdb_test "source -s source2.py" "yes" "source -s source2.py"
 
-gdb_test "python print gdb.current_objfile()" "None"
-gdb_test "python print gdb.objfiles()" "\\\[\\\]"
+gdb_test "python print (gdb.current_objfile())" "None"
+gdb_test "python print (gdb.objfiles())" "\\\[\\\]"
 
 # Test http://bugs.python.org/issue4434 workaround in configure.ac
-gdb_test "python import itertools; print 'IMPOR'+'TED'" "IMPORTED" "pythonX.Y/lib-dynload/*.so"
+gdb_test "python import itertools; print ('IMPOR'+'TED')" "IMPORTED" "pythonX.Y/lib-dynload/*.so"
 
 gdb_test_no_output \
     "python x = gdb.execute('printf \"%d\", 23', to_string = True)"
-gdb_test "python print x" "23"
+gdb_test "python print (x)" "23"
 
 # Test post_event.
 gdb_py_test_multiple "post event insertion" \
@@ -92,7 +92,7 @@
   "gdb.post_event(Foo())" "" \
   "end" ""
 
-gdb_test "python print someVal" "1" "test post event execution"
+gdb_test "python print (someVal)" "1" "test post event execution"
 gdb_test "python gdb.post_event(str(1))" "RuntimeError: Posted event is not callable.*" "Test non callable class"
 
 # Test (no) pagination of the executed command.
@@ -101,7 +101,7 @@
 gdb_test_no_output "set height $lines"
 
 set test "verify pagination beforehand"
-gdb_test_multiple "python print \"\\n\" * $lines" $test {
+gdb_test_multiple "python print (\"\\n\" * $lines)" $test {
     -re "---Type <return>" {
 	exp_continue
     }
@@ -114,10 +114,10 @@
 }
 gdb_test "q" "Quit.*Error while executing Python.*" "verify pagination beforehand: q"
 
-gdb_test "python if gdb.execute('python print \"\\\\n\" * $lines', to_string=True) == \"\\n\" * [expr $lines + 1]: print \"yes\"" "yes" "gdb.execute does not page"
+gdb_test "python if gdb.execute('python print (\"\\\\n\" * $lines)', to_string=True) == \"\\n\" * [expr $lines + 1]: print (\"yes\")" "yes" "gdb.execute does not page"
 
 set test "verify pagination afterwards"
-gdb_test_multiple "python print \"\\n\" * $lines" $test {
+gdb_test_multiple "python print (\"\\n\" * $lines)" $test {
     -re "---Type <return>" {
 	exp_continue
     }
@@ -134,18 +134,18 @@
 
 gdb_test_no_output "python a = gdb.execute('help', to_string=True)" "collect help from uiout"
 
-gdb_test "python print a" ".*aliases -- Aliases of other commands.*" "verify help to uiout"
+gdb_test "python print (a)" ".*aliases -- Aliases of other commands.*" "verify help to uiout"
 
 # Test PR 12212, using InfThread.selected_thread() when no inferior is
 # loaded.
 gdb_py_test_silent_cmd "python nothread = gdb.selected_thread()" "Attempt to aquire thread with no inferior" 1
-gdb_test "python print nothread == None" "True" "Ensure that no threads are returned"
+gdb_test "python print (nothread == None)" "True" "Ensure that no threads are returned"
 
 gdb_py_test_multiple "register atexit function" \
     "python" "" \
     "import atexit" "" \
     "def printit(arg):" "" \
-    "  print arg" "" \
+    "  print (arg)" "" \
     "atexit.register(printit, 'good bye world')" "" \
     "end" ""
 
@@ -176,33 +176,33 @@
     "gdb.error: No source file named main.c.*" "test decode_line no source named main"
 
 gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location" 1
-gdb_test "python print len(symtab)" "2" "Test decode_line current location"
-gdb_test "python print symtab\[0\]" "None" "Test decode_line expression parse"
-gdb_test "python print len(symtab\[1\])" "1" "Test decode_line current location"
-gdb_test "python print symtab\[1\]\[0\].symtab" ".*gdb.python/python.c.*" "Test decode_line current locationn filename"
-gdb_test "python print symtab\[1\]\[0\].line" "22" "Test decode_line current location line number"
+gdb_test "python print (len(symtab))" "2" "Test decode_line current location"
+gdb_test "python print (symtab\[0\])" "None" "Test decode_line expression parse"
+gdb_test "python print (len(symtab\[1\]))" "1" "Test decode_line current location"
+gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*gdb.python/python.c.*" "Test decode_line current locationn filename"
+gdb_test "python print (symtab\[1\]\[0\].line)" "22" "Test decode_line current location line number"
 
 gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26" 1
-gdb_test "python print len(symtab)" "2" "Test decode_line python.c:26 length"
-gdb_test "python print symtab\[0\]" "if foo" "Test decode_line expression parse"
-gdb_test "python print len(symtab\[1\])" "1" "Test decode_line python.c:26 length"
-gdb_test "python print symtab\[1\]\[0\].symtab" ".*gdb.python/python.c.*" "Test decode_line python.c:26 filename"
-gdb_test "python print symtab\[1\]\[0\].line" "26" "Test decode_line python.c:26 line number"
+gdb_test "python print (len(symtab))" "2" "Test decode_line python.c:26 length"
+gdb_test "python print (symtab\[0\])" "if foo" "Test decode_line expression parse"
+gdb_test "python print (len(symtab\[1\]))" "1" "Test decode_line python.c:26 length"
+gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*gdb.python/python.c.*" "Test decode_line python.c:26 filename"
+gdb_test "python print (symtab\[1\]\[0\].line)" "26" "Test decode_line python.c:26 line number"
 
 gdb_test "python gdb.decode_line(\"randomfunc\")" \
     "gdb.error: Function \"randomfunc\" not defined.*" "test decode_line randomfunc"
 gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"func1\")" "test decode_line func1()" 1
-gdb_test "python print len(symtab)" "2" "Test decode_line func1 length"
-gdb_test "python print len(symtab\[1\])" "1" "Test decode_line func1 length"
-gdb_test "python print symtab\[1\]\[0\].symtab" ".*gdb.python/python-1.c.*" "Test decode_line func1 filename"
-gdb_test "python print symtab\[1\]\[0\].line" "19" "Test decode_line func1 line number"
+gdb_test "python print (len(symtab))" "2" "Test decode_line func1 length"
+gdb_test "python print (len(symtab\[1\]))" "1" "Test decode_line func1 length"
+gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*gdb.python/python-1.c.*" "Test decode_line func1 filename"
+gdb_test "python print (symtab\[1\]\[0\].line)" "19" "Test decode_line func1 line number"
 gdb_py_test_silent_cmd {python symtab = gdb.decode_line ("func1,func2")} \
     "test decode_line func1,func2" 1
-gdb_test {python print symtab[0]} ",func2" "stop at comma in linespec"
+gdb_test {python print (symtab[0])} ",func2" "stop at comma in linespec"
 
 # gdb.write
-gdb_test "python print sys.stderr" ".*gdb.GdbOutputErrorFile instance at.*" "Test stderr location"
-gdb_test "python print sys.stdout" ".*gdb.GdbOutputFile instance at.*" "Test stdout location"
+gdb_test "python print (sys.stderr)" ".*gdb.GdbOutputErrorFile (instance|object) at.*" "Test stderr location"
+gdb_test "python print (sys.stdout)" ".*gdb.GdbOutputFile (instance|object) at.*" "Test stdout location"
 gdb_test "python gdb.write(\"Foo\\n\")" "Foo" "Test default write"
 gdb_test "python gdb.write(\"Error stream\\n\", stream=gdb.STDERR)" "Error stream" "Test stderr write"
 gdb_test "python gdb.write(\"Normal stream\\n\", stream=gdb.STDOUT)" "Normal stream" "Test stdout write"
@@ -362,7 +362,7 @@
   "end" ""
 
 gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {
-    -re "Python Exception <type 'exceptions.RuntimeError'> Python exception called.*" {
+    -re "Python Exception <(type 'exceptions.|class ')RuntimeError'> Python exception called.*" {
 	pass "set hook"
     }
 }
@@ -395,9 +395,9 @@
 runto [gdb_get_line_number "Break at func2 call site."]
 
 gdb_py_test_silent_cmd "python line = gdb.selected_frame().find_sal().line" "Get line number of func2 call site" 1
-gdb_test "python print gdb.find_pc_line(gdb.selected_frame().pc()).line == line" "True" "Test find_pc_line at func2 call site"
+gdb_test "python print (gdb.find_pc_line(gdb.selected_frame().pc()).line == line)" "True" "Test find_pc_line at func2 call site"
 
 gdb_py_test_silent_cmd "step" "Step into func2" 1
 gdb_py_test_silent_cmd "up" "Step out of func2" 1
 
-gdb_test "python print gdb.find_pc_line(gdb.selected_frame().pc()).line > line" "True" "Test find_pc_line with resume address"
+gdb_test "python print (gdb.find_pc_line(gdb.selected_frame().pc()).line > line)" "True" "Test find_pc_line with resume address"
Index: gdb/testsuite/gdb.python/source2.py
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/source2.py,v
retrieving revision 1.3
diff -u -r1.3 source2.py
--- gdb/testsuite/gdb.python/source2.py	4 Jan 2012 08:27:49 -0000	1.3
+++ gdb/testsuite/gdb.python/source2.py	9 Nov 2012 22:26:57 -0000
@@ -15,4 +15,4 @@
 #  You should have received a copy of the GNU General Public License
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-print 'y%ss' % 'e'
+print ('y%ss' % 'e')
Index: gdb/testsuite/lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.222
diff -u -r1.222 gdb.exp
--- gdb/testsuite/lib/gdb.exp	6 Nov 2012 15:21:24 -0000	1.222
+++ gdb/testsuite/lib/gdb.exp	9 Nov 2012 22:26:57 -0000
@@ -1541,13 +1541,30 @@
 
 proc skip_python_tests {} {
     global gdb_prompt
-    gdb_test_multiple "python print 'test'" "verify python support" {
+    global gdb_py_is_py3k
+    global gdb_py_is_py24
+
+    gdb_test_multiple "python print ('test')" "verify python support" {
 	-re "not supported.*$gdb_prompt $"	{
 	    unsupported "Python support is disabled."
 	    return 1
 	}
 	-re "$gdb_prompt $"	{}
     }
+    gdb_py_is_py3k = 0
+    gdb_py_is_py24 = 0
+    gdb_test_multiple "python print (sys.version_info\[0\])" "get python version" {
+	-re "3.*$gdb_prompt $"	{
+            set gdb_py_is_py3k 1
+        }
+    }
+    if { gdb_py_is3k == 0 } {
+        gdb_test_multiple "python print (sys.version_info\[1\])" "get python version" {
+	    -re "\[45\].*$gdb_prompt $" {
+                set gdb_py_is_py24 1
+            }
+        }
+    }
 
     return 0
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]