-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
set libfile "py-events-shlib"
set libsrc $srcdir/$subdir/$libfile.c
-set lib_sl $objdir/$subdir/$libfile-nodebug.so
+set lib_sl [standard_output_file $libfile-nodebug.so]
set lib_opts ""
-set testfile "py-finish-breakpoint"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
+standard_testfile
set exec_opts [list debug shlib=$lib_sl]
-if [get_compiler_info ${binfile}] {
+if [get_compiler_info] {
return -1
}
# Start with a fresh gdb.
clean_restart ${testfile}
-set python_file ${srcdir}/${subdir}/${testfile}.py
+if { [skip_python_tests] } { continue }
+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
+}
# Skip all tests if Python scripting is not enabled.
if { [skip_python_tests] } { continue }
return 0
}
+set python_file [gdb_remote_download host \
+ ${srcdir}/${subdir}/${testfile}.py]
+
gdb_test_no_output "set confirm off" "disable confirmation"
gdb_test "source $python_file" "Python script imported.*" \
"import python scripts"
"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
"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
"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"
#