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]

Re: [PATCH] Copy .py files to remote host


On 8/12/14, 10:15 AM, Doug Evans wrote:
> Yao Qi writes:
>  > Some gdb.python/*.exp tests fail because the .py files aren't copied
>  > to the (remote) host.  This patch is to copy needed .py files to host.
>  > Most of gdb.python/*.exp tests do this.
>  > 
>  > gdb/testsuite:
>  > 
>  > 2014-08-12  Yao Qi  <yao@codesourcery.com>
>  > 
>  > 	* gdb.python/py-finish-breakpoint.exp: Copy .py file to host.
>  > 	Delete the .py file on host when test is finished.
>  > 	* gdb.python/py-finish-breakpoint2.exp: Likewise.
>  > 	* gdb.python/python.exp: Likewise.  Use .py file on the host
>  > 	instead of the build.
>  > [...]
>  > ---
>  >  gdb/testsuite/gdb.python/py-finish-breakpoint.exp  | 15 ++++++++++++---
>  >  gdb/testsuite/gdb.python/py-finish-breakpoint2.exp |  6 +++++-
>  >  gdb/testsuite/gdb.python/python.exp                | 13 +++++++++++--
>  >  3 files changed, 28 insertions(+), 6 deletions(-)
>  > 
>  > diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
>  > index 43d0d81..45aa231 100644
>  > --- a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
>  > +++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
>  > @@ -53,9 +53,6 @@ if { $gdb_py_is_py24 == 1 } {
>  >      return 0
>  >  }
>  >  
>  > -set python_file ${srcdir}/${subdir}/${testfile}.py
>  > -
>  > -
>  >  # Skip all tests if Python scripting is not enabled.
>  >  if { [skip_python_tests] } { continue }
>  >  
>  > @@ -71,6 +68,9 @@ if ![runto_main] then {
>  >      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"
>  > @@ -115,6 +115,7 @@ gdb_test "source $python_file" "Python script imported.*" \
>  >  set cond_line [gdb_get_line_number "Condition Break."]
>  >  
>  >  if ![runto_main] then {
>  > +    remote_file host delete ${python_file}
>  >      fail "Cannot run to main."
>  >      return 0
>  >  }
>  > @@ -141,6 +142,7 @@ gdb_test "source $python_file" "Python script imported.*" \
>  >           "import python scripts"
>  >  
>  >  if ![runto call_longjmp_1] then {
>  > +    remote_file host delete ${python_file}
>  >      perror "couldn't run to breakpoint call_longjmp"
>  >      continue
>  >  }
>  > [...]
> 
> Hi.
> 
> I still have an outstanding question on this topic,
> and before this gets checked in I'd like to get it resolved.
> Do we delete other files downloaded to the remote target?

Going by instances of remote_file delete in the testsuite,
it's at least semi-standard to do so.  It certainly reduces
the chances of confusion for any functionality that is based
on searching for a matching file to load/process.

> If we really did want to fully clean up after each test,
> and we should first establish that that is indeed what we want to do,
> instead of filling every test exit point with explicit code to delete
> only one kind of downloaded file, how about instead keep a list of all
> downloaded files and call a routine to delete the files in that list
> from some central cleanup point?

I could go for that.  The existing deletions seem to be in a variety
of styles, and it would be useful to have standard failure handling
and such.

Stan
stan@codesourcery.com



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