* lib/gdb.exp (run_on_host): Moved here from gnu-debugdata.exp.
authorDoug Evans <dje@google.com>
Mon, 26 Aug 2013 18:30:02 +0000 (18:30 +0000)
committerDoug Evans <dje@google.com>
Mon, 26 Aug 2013 18:30:02 +0000 (18:30 +0000)
* gdb.base/gnu-debugdata.exp (run): Moved to gdb.exp and renamed to
run_on_host.  All callers updated.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/gnu-debugdata.exp
gdb/testsuite/lib/gdb.exp

index f1b114d..8d8f075 100644 (file)
@@ -1,3 +1,9 @@
+2013-08-26  Doug Evans  <dje@google.com>
+
+       * lib/gdb.exp (run_on_host): Moved here from gnu-debugdata.exp.
+       * gdb.base/gnu-debugdata.exp (run): Moved to gdb.exp and renamed to
+       run_on_host.  All callers updated.
+
 2013-08-24  Yao Qi  <yao@codesourcery.com>
 
        * gdb.trace/entry-values.c (end): New
index 55aa3c6..e4e42cd 100644 (file)
@@ -19,40 +19,16 @@ if [build_executable ${testfile}.exp $testfile] {
     return -1
 }
 
-# A wrapper for 'remote_exec host' that passes or fails a test.
-# Returns 0 if all went well, nonzero on failure.
-# TEST is the name of the test, other arguments are as for
-# remote_exec.
-proc run {test program args} {
-    verbose "cmdline is remote_exec host $program $args"
-    # remote_exec doesn't work properly if the output is set but the
-    # input is the empty string -- so replace an empty input with
-    # /dev/null.
-    if {[llength $args] > 1 && [lindex $args 1] == ""} {
-       set args [lreplace $args 1 1 "/dev/null"]
-    }
-    set result [eval remote_exec host [list $program] $args]
-    verbose "result is $result"
-    set status [lindex $result 0]
-    set output [lindex $result 1]
-    if {$status == 0} {
-       pass $test
-       return 0
-    } else {
-       fail $test
-       return -1
-    }
-}
-
 set pipeline_counter 0
 
-# Run a pipeline of processes through 'run'.
-# TEST is the base name of the test, it is modified and passed to 'run'.
+# Run a pipeline of processes through 'run_on_host'.
+# TEST is the base name of the test, it is modified and passed to 'run_on_host'.
 # Each subsequent argument is a list of the form {PROGRAM [ARG]...}.
-# It is passed to 'run'.  However, before being passed, if input and output
-# files are not specified in the list, then this proc provides them.
+# It is passed to 'run_on_host'.  However, before being passed, if input and
+# output files are not specified in the list, then this proc provides them.
 # Each program in the pipeline takes its input from the previous
 # program's output.
+
 proc pipeline {test args} {
     global pipeline_counter
 
@@ -74,7 +50,7 @@ proc pipeline {test args} {
        }
        verbose "cooked args are [list $program $arguments $input $output]"
 
-       if {[run "$test - invoke $program" $program $arguments \
+       if {[run_on_host "$test - invoke $program" $program $arguments \
                 $input $output]} {
            return -1
        }
@@ -108,7 +84,7 @@ if {[pipeline "nm" \
 # Keep all the function symbols not already in the dynamic symbol
 # table.
 remote_file host delete ${binfile}.keep_symbols
-if {[run "comm" "comm" "-13 ${binfile}.dynsyms ${binfile}.funcsyms" "" \
+if {[run_on_host "comm" "comm" "-13 ${binfile}.dynsyms ${binfile}.funcsyms" "" \
         "${binfile}.keep_symbols"]} {
     return -1
 }
@@ -116,20 +92,20 @@ if {[run "comm" "comm" "-13 ${binfile}.dynsyms ${binfile}.funcsyms" "" \
 # Copy the full debuginfo, keeping only a minimal set of symbols and
 # removing some unnecessary sections.
 remote_file host delete ${binfile}.mini_debuginfo
-if {[run "objcopy 1" [transform objcopy] "-S --remove-section .gdb_index --remove-section .comment --keep-symbols=${binfile}.keep_symbols ${binfile} ${binfile}.mini_debuginfo"]} {
+if {[run_on_host "objcopy 1" [transform objcopy] "-S --remove-section .gdb_index --remove-section .comment --keep-symbols=${binfile}.keep_symbols ${binfile} ${binfile}.mini_debuginfo"]} {
     return -1
 }
 
 # GDB specific - we do not have split executable in advance.
 remote_file host delete ${binfile}.strip
-if {[run "strip" [transform strip] \
+if {[run_on_host "strip" [transform strip] \
         "--strip-all -o ${binfile}.strip ${binfile}"]} {
     return -1
 }
 
 # Separate full debug info into ${binfile}.debug.
 remote_file host delete ${binfile}.debug
-if {[run "copydebug" [transform objcopy] \
+if {[run_on_host "copydebug" [transform objcopy] \
         "--only-keep-debug ${binfile} ${binfile}.debug"]} {
     return -1
 }
@@ -138,7 +114,7 @@ if {[run "copydebug" [transform objcopy] \
 # .gnu_debuglink is normally not present in the .gnu_debugdata section but in
 # some files there may be PT_NOTE with NT_GNU_BUILD_ID and GDB could look up
 # the .debug file from it.
-if {[run "addlink" [transform objcopy] \
+if {[run_on_host "addlink" [transform objcopy] \
         "--add-gnu-debuglink=${binfile}.debug ${binfile}.mini_debuginfo ${binfile}.mini_debuginfo-debuglink"]} {
     return -1
 }
@@ -146,11 +122,11 @@ if {[run "addlink" [transform objcopy] \
 # Inject the compressed data into the .gnu_debugdata section of the
 # original binary.
 remote_file host delete ${binfile}.mini_debuginfo-debuglink.xz
-if {[run "xz" "xz" "-k ${binfile}.mini_debuginfo-debuglink"]} {
+if {[run_on_host "xz" "xz" "-k ${binfile}.mini_debuginfo-debuglink"]} {
     return -1
 }
 remote_file host delete ${binfile}.test
-if {[run "objcopy 2" [transform objcopy] "--add-section .gnu_debugdata=${binfile}.mini_debuginfo-debuglink.xz ${binfile}.strip ${binfile}.test"]} {
+if {[run_on_host "objcopy 2" [transform objcopy] "--add-section .gnu_debugdata=${binfile}.mini_debuginfo-debuglink.xz ${binfile}.strip ${binfile}.test"]} {
     return -1
 }
 
index f1f56a6..8054485 100644 (file)
@@ -4443,5 +4443,30 @@ proc gdb_target_symbol_prefix_flags {} {
     }
 }
 
+# A wrapper for 'remote_exec host' that passes or fails a test.
+# Returns 0 if all went well, nonzero on failure.
+# TEST is the name of the test, other arguments are as for remote_exec.
+
+proc run_on_host { test program args } {
+    verbose -log "run_on_host: $program $args"
+    # remote_exec doesn't work properly if the output is set but the
+    # input is the empty string -- so replace an empty input with
+    # /dev/null.
+    if {[llength $args] > 1 && [lindex $args 1] == ""} {
+       set args [lreplace $args 1 1 "/dev/null"]
+    }
+    set result [eval remote_exec host [list $program] $args]
+    verbose "result is $result"
+    set status [lindex $result 0]
+    set output [lindex $result 1]
+    if {$status == 0} {
+       pass $test
+       return 0
+    } else {
+       fail $test
+       return -1
+    }
+}
+
 # Always load compatibility stuff.
 load_lib future.exp