Change method of loading .py files in Python tests
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 26 Jan 2017 21:12:12 +0000 (16:12 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Thu, 26 Jan 2017 21:12:12 +0000 (16:12 -0500)
With my debug build of Python (--with-pydebug), many tests fails because
of the same issue.  Python scripts are loaded by the tests using this
pattern:

  (gdb) python exec (open ('file.py').read ())

This causes Python to output this warning:

  __main__:1: ResourceWarning: unclosed file <_io.TextIOWrapper name='file.py' mode='r' encoding='ANSI_X3.4-1968'>

and the test to fail because of that extra output.  Instead of using the
open + read + exec trick which leaks the file and causes the warning,
why not just source the files?

  (gdb) source file.py

This patch changes this, and standardizes the test names of the tests I
touched to "load python file" (some of them were empty, others were
overly complicated).

gdb/testsuite/ChangeLog:

* gdb.python/py-bad-printers.exp: Load python file using "source".
* gdb.python/py-events.exp: Likewise.
* gdb.python/py-evsignal.exp: Likewise.
* gdb.python/py-evthreads.exp: Likewise.
* gdb.python/py-frame-args.exp: Likewise.
* gdb.python/py-framefilter-invalidarg.exp: Likewise.
* gdb.python/py-framefilter-mi.exp: Likewise.
* gdb.python/py-framefilter.exp: Likewise.
* gdb.python/py-mi.exp: Likewise.
* gdb.python/py-pp-maint.exp: Likewise.
* gdb.python/py-pp-registration.exp: Likewise.
* gdb.python/py-prettyprint.exp: Likewise.
(run_lang_tests): Likewise.
* gdb.python/py-typeprint.exp: Likewise.

14 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-bad-printers.exp
gdb/testsuite/gdb.python/py-events.exp
gdb/testsuite/gdb.python/py-evsignal.exp
gdb/testsuite/gdb.python/py-evthreads.exp
gdb/testsuite/gdb.python/py-frame-args.exp
gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
gdb/testsuite/gdb.python/py-framefilter-mi.exp
gdb/testsuite/gdb.python/py-framefilter.exp
gdb/testsuite/gdb.python/py-mi.exp
gdb/testsuite/gdb.python/py-pp-maint.exp
gdb/testsuite/gdb.python/py-pp-registration.exp
gdb/testsuite/gdb.python/py-prettyprint.exp
gdb/testsuite/gdb.python/py-typeprint.exp

index 3427db896e3395558f22c5837431ed5c6a2cf7b7..ec5a8d752bf5dfd3885260e3a3a8d209a6f79fe5 100644 (file)
@@ -1,3 +1,20 @@
+2017-01-26  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * gdb.python/py-bad-printers.exp: Load python file using "source".
+       * gdb.python/py-events.exp: Likewise.
+       * gdb.python/py-evsignal.exp: Likewise.
+       * gdb.python/py-evthreads.exp: Likewise.
+       * gdb.python/py-frame-args.exp: Likewise.
+       * gdb.python/py-framefilter-invalidarg.exp: Likewise.
+       * gdb.python/py-framefilter-mi.exp: Likewise.
+       * gdb.python/py-framefilter.exp: Likewise.
+       * gdb.python/py-mi.exp: Likewise.
+       * gdb.python/py-pp-maint.exp: Likewise.
+       * gdb.python/py-pp-registration.exp: Likewise.
+       * gdb.python/py-prettyprint.exp: Likewise.
+       (run_lang_tests): Likewise.
+       * gdb.python/py-typeprint.exp: Likewise.
+
 2017-01-26  Luis Machado  <lgustavo@codesourcery.com>
 
        * lib/memory.exp: New file.
index ecc259edac4c4a1b9614fb30ff21c43b8e9fe735..0e39763791446e9687a662eb3a0562352a118b3e 100644 (file)
@@ -35,8 +35,7 @@ if ![runto_main ] then {
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
 
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-    "load python file"
+gdb_test_no_output "source ${remote_python_file}" "load python file"
 
 gdb_breakpoint [gdb_get_line_number "break here"]
 gdb_continue_to_breakpoint "break here" ".* break here .*"
index 12936f3609f8292011a8d49bee1e603483f5ac00..16ea110737c818ef7b5e5b8d1fa866fde40a16d0 100644 (file)
@@ -43,7 +43,7 @@ clean_restart ${testfile}
 
 if { [skip_python_tests] } { continue }
 
-gdb_test_no_output "python exec (open ('${pyfile}').read ())" ""
+gdb_test_no_output "source ${pyfile}" "load python file"
 
 gdb_test "test-objfile-events" "Object file events registered."
 
index 65a558ca5f120ff9c40ac045a2a2c0035c963b45..8a39f4eacb7efae31474d4a3af07e6e82f1dd047 100644 (file)
@@ -31,7 +31,7 @@ clean_restart $testfile
 
 if { [skip_python_tests] } { continue }
 
-gdb_test_no_output "python exec (open ('${pyfile}').read ())" ""
+gdb_test_no_output "source ${pyfile}" "load python file"
 
 gdb_test "test-events" "Event testers registered."
 gdb_test_no_output "set non-stop on"
index 1ebab40318521ec14f20b051a761fe2b63aa36ec..64b2af5fef41e42dbbb56e1e8fa7ed873404d3fd 100644 (file)
@@ -36,7 +36,7 @@ clean_restart $testfile
 
 if { [skip_python_tests] } { continue }
 
-gdb_test_no_output "python exec (open ('${pyfile}').read ())" ""
+gdb_test_no_output "source ${pyfile}" "load python file"
 
 gdb_test "test-events" "Event testers registered."
 gdb_test_no_output "set non-stop on"
index 91f200f4f3a5cefa26edc8e74249095da4eb15b6..08f21716330e98a2c2e50e322b44adc82bb8d26f 100644 (file)
@@ -29,8 +29,7 @@ if ![runto_main] {
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
 
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-    "python exec (open ('[file tail ${remote_python_file}]').read ())"
+gdb_test_no_output "source ${remote_python_file}" "load python file"
 
 gdb_breakpoint [gdb_get_line_number "break-here"]
 gdb_continue_to_breakpoint "break-here" ".* break-here .*"
index bf9d0767ad1ea76f0fecdfc0214d717b458267e9..881ebe4ed8e7d29b11fbc298e07c9374b22f673b 100644 (file)
@@ -61,7 +61,6 @@ gdb_test_no_output "set python print-stack full" \
 # Load global frame-filters
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-    "load python file"
+gdb_test_no_output "source ${remote_python_file}" "load python file"
 
 gdb_test "bt" " in niam \\(argc=<error reading variable: dwarf expression stack underflow>, argv=0x\[0-9a-f\]+\\) at py-framefilter-invalidarg.c:\[0-9\]+" "bt full with filters"
index eef7a1ea8e80b8b667da76da4b971e9dbdb6d7cf..91e07dd10ae23fa03f7f22eae431f6d96a779f8e 100644 (file)
@@ -46,8 +46,7 @@ mi_runto main
 
 set remote_python_file [gdb_remote_download host ${srcdir}/${subdir}/${pyfile}]
 
-mi_gdb_test "python exec (open ('${remote_python_file}').read ())" ".*\\^done." \
-    "Load python file"
+mi_gdb_test "source ${remote_python_file}" ".*\\^done." "load python file"
 
 # Multiple blocks test
 mi_continue_to_line [gdb_get_line_number {Inner test breakpoint} ${srcfile}] \
index 76184c0ce01bc4b850992c7309d885d4a8702155..bbec48db78134538b69eca76cd2a80c86b58ae4a 100644 (file)
@@ -63,8 +63,7 @@ gdb_test_no_output "set python print-stack full" \
 # Load global frame-filters
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-    "load python file"
+gdb_test_no_output "source ${remote_python_file}" "load python file"
 
 gdb_breakpoint [gdb_get_line_number "Backtrace end breakpoint"]
 gdb_breakpoint [gdb_get_line_number "Inner test breakpoint"]
@@ -253,7 +252,7 @@ gdb_test_no_output "set python print-stack full" \
 # Load global frame-filters
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
+gdb_test_no_output "source ${remote_python_file}" \
     "load python file for no debuginfo tests"
 
 # Disable Reverse
index 920e9d678e73ca6b4edfbfc5bf13ad2b33de4de3..736dc7a0d67292f2de0f1166f1fd9d0d1aec0a27 100644 (file)
@@ -44,7 +44,7 @@ mi_runto main
 
 set remote_python_file [gdb_remote_download host ${srcdir}/${subdir}/${pyfile}]
 
-mi_gdb_test "python exec (open ('${remote_python_file}').read ())" ""
+mi_gdb_test "source ${remote_python_file}" "load python file"
 
 mi_continue_to_line [gdb_get_line_number {MI breakpoint here} ${srcfile}] \
   "step to breakpoint"
index ba0d0f04fe6a0d813e2d141364359c104c26732a..6ca0ee6b5632839888190ba26a94b9119c176992 100644 (file)
@@ -43,7 +43,7 @@ gdb_test "continue" ".*Breakpoint.*"
 
 set python_file ${srcdir}/${subdir}/${testfile}.py
 
-gdb_test_no_output "python exec (open ('${python_file}').read ())" ""
+gdb_test_no_output "source ${python_file}" "load python file"
 
 gdb_test "info pretty-printer" \
     {.*function_lookup_test.*pp-test.*struct ss.*}
index def44160acef958c2df4b155b85ae7a7ba4ad5d2..0bd6d871db80b475f394a58380b97b71cc482e50 100644 (file)
@@ -46,8 +46,7 @@ proc prepare_test { } {
        return 0
     }
 
-    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-       "read file"
+    gdb_test_no_output "source ${remote_python_file}" "read file"
 
     gdb_test_no_output "py progspace = gdb.current_progspace()"
     gdb_test_no_output "py my_pretty_printer1 = build_pretty_printer1()"
index 2ba2a8f6ce37c339c2f3307179a23ab15931470a..b0a9e32df6af6f2ea0dc79bc8e05a02af646a0bd 100644 (file)
@@ -56,8 +56,7 @@ proc run_lang_tests {exefile lang} {
     set remote_python_file [gdb_remote_download host \
                                ${srcdir}/${subdir}/${testfile}.py]
 
-    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-       "python exec (open ('[file tail ${remote_python_file}]').read ())"
+    gdb_test_no_output "source ${remote_python_file}" "load python file"
     
     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>>"
@@ -137,8 +136,7 @@ if ![runto_main ] then {
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
 
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-    "python exec (open ('[file tail ${remote_python_file}]').read ())"
+gdb_test_no_output "source ${remote_python_file}" "load python file"
 
 gdb_breakpoint [gdb_get_line_number "eval-break"]
 gdb_continue_to_breakpoint "eval-break" ".* eval-break .*"
index 73db732c3dae48de58c926650f1a8dd114786b63..28e505331f10b4db98975f4b16b33c16b1c399ce 100644 (file)
@@ -29,8 +29,7 @@ if { [skip_python_tests] } { continue }
 set remote_python_file [gdb_remote_download host \
                            ${srcdir}/${subdir}/${testfile}.py]
 
-gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
-    "python exec (open ('[file tail ${remote_python_file}]').read ())"
+gdb_test_no_output "source ${remote_python_file}" "load python file"
 
 cp_test_ptype_class s "basic test" "class" "templ<string>" {
     { field public "T x;" }