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 file to host if it is remote


On 07/22/2013 05:05 PM, Agovic, Sanimir wrote:
> mi_gdb_load should already trigger the download of binfile to the host,

Hi Sanimir,
mi_gdb_load has already handled the case to download binfile to the
host, you are right.  We don't have to re-download binfile in
mi-var-cmd.exp, however, we still have to download file in
mi-basics.exp, because mi_gdb_load is not used.  See the comments in it:

# In this file we want to test if the operations needed by the following
# procedures work, so it makes no sense using them here.

# mi_delete_breakpoints
# mi_gdb_reinitialize_dir $srcdir/$subdir
# mi_gdb_load ${binfile}

> re-downloading may break the tests on hosts like Windows as GDB still has
> the file opened (locked) and therefore remote_download will fail.
> You may instead expose the host version of binfile to the test, somehow =D.

I didn't see errors or fails due to this, because gdb is running
cygwin?  Anyway, the re-downloading is unnecessary, and thanks for
pointing this out.  In the updated patch, remote_download is only
invoked in mi-basics.exp.  In mi-var-cmd.exp, remote_download is not
invoked.  Is it OK to you?

-- 
Yao (éå)

gdb/testsuite:

2013-07-22  Yao Qi  <yao@codesourcery.com>

	* gdb.mi/mi-var-cmd.exp: If host is remote, use ${testfile} on
	host.
	* gdb.mi/mi-basics.exp (test_exec_and_symbol_mi_operatons):
	Likewise.  If host is remote, copy ${binfile} to host.
---
 gdb/testsuite/gdb.mi/mi-basics.exp  |   15 +++++++++++----
 gdb/testsuite/gdb.mi/mi-var-cmd.exp |    8 +++++++-
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/gdb/testsuite/gdb.mi/mi-basics.exp b/gdb/testsuite/gdb.mi/mi-basics.exp
index c8bb3f7..f4ffa05 100644
--- a/gdb/testsuite/gdb.mi/mi-basics.exp
+++ b/gdb/testsuite/gdb.mi/mi-basics.exp
@@ -71,13 +71,20 @@ proc test_mi_interpreter_selection {} {
 
 proc test_exec_and_symbol_mi_operatons {} {
     global mi_gdb_prompt
-    global binfile
+    global binfile testfile
+
+    if [is_remote host] {
+	set filename ${testfile}
+	remote_download host ${binfile} ${filename}
+    } else {
+	set filename ${binfile}
+    }
 
     # Load symbols and specify executable on a single operation
     # Tests:
     # -file-exec-and-symbols
 
-    if [mi_gdb_test "-file-exec-and-symbols ${binfile}" "\\\^done" \
+    if [mi_gdb_test "-file-exec-and-symbols ${filename}" "\\\^done" \
        "file-exec-and-symbols operation"] {
 	note "Skipping all other MI tests."
 	return 0
@@ -98,11 +105,11 @@ proc test_exec_and_symbol_mi_operatons {} {
 #            "\\\^done" \
 #            "file-clear operation"
 
-    mi_gdb_test "-file-exec-file ${binfile}" \
+    mi_gdb_test "-file-exec-file ${filename}" \
              "\\\^done" \
              "file-exec-file operation"
 
-    mi_gdb_test "-file-symbol-file ${binfile}" \
+    mi_gdb_test "-file-symbol-file ${filename}" \
              "\\\^done" \
              "file-symbol-file operation"
 
diff --git a/gdb/testsuite/gdb.mi/mi-var-cmd.exp b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
index 6addea6..731130d 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cmd.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
@@ -558,7 +558,13 @@ mi_gdb_test "-var-update selected_a" \
 	"\\^done,changelist=\\\[\{name=\"selected_a\",in_scope=\"true\",type_changed=\"true\",new_type=\"int\",new_num_children=\"0\",has_more=\"0\"\}\\\]" \
 	"update selected_a in do_special_tests"
 
-mi_gdb_test "-file-exec-and-symbols ${binfile}" "\\^done" \
+if [is_remote host] {
+    set filename ${testfile}
+} else {
+    set filename ${binfile}
+}
+
+mi_gdb_test "-file-exec-and-symbols ${filename}" "\\^done" \
     "floating varobj invalidation"
 
 mi_delete_varobj selected_a "delete selected_a"
-- 
1.7.7.6


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