aboutsummaryrefslogtreecommitdiff
path: root/deprecated/dejagnu/chromeos.exp.in
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/dejagnu/chromeos.exp.in')
-rw-r--r--deprecated/dejagnu/chromeos.exp.in175
1 files changed, 0 insertions, 175 deletions
diff --git a/deprecated/dejagnu/chromeos.exp.in b/deprecated/dejagnu/chromeos.exp.in
deleted file mode 100644
index 02fc3af2..00000000
--- a/deprecated/dejagnu/chromeos.exp.in
+++ /dev/null
@@ -1,175 +0,0 @@
-#
-# Initialize the board. The function is executed before any test.
-#
-proc __boardname___init { board } {
- set hostname [board_info $board hostname]
- set timeout [board_info $board timeout]
- set ssh_options [board_info $board ssh,options]
- set runtimes [board_info $board runtimes]
- set tmpdir [board_info $board tmpdir]
- verbose -log "Opening persistent connection ..." 1
- eval "exec ssh -N -f $ssh_options root@$hostname &"
- local_exec "ssh -n $ssh_options root@$hostname sh -c 'mkdir -p $tmpdir'" \
- {} {} $timeout
-}
-
-#
-# Remove test run by-products. The function is executed at DejaGNU exit.
-#
-proc __boardname___exit {} {
- set board "__boardname__"
- set hostname [board_info $board hostname]
- set ssh_options [board_info $board ssh,options]
- set tmpdir [board_info $board tmpdir]
- verbose -log "Closing persistent connection ..." 1
- local_exec "ssh $ssh_options -O exit root@$hostname" {} {} 10
- verbose -log "Cleaning up - executing on board 'rm -fr $tmpdir' ..." 1
- local_exec "ssh -n $ssh_options root@$hostname sh -c 'rm -fr $tmpdir'" \
- {} {} 10
-}
-
-#
-# Upload a file to the board. Uses scp over persistent SSH connection.
-#
-proc __boardname___download { board file args } {
- set hostname [board_info $board hostname]
- set tmpdir [board_info $board tmpdir]
- set timeout [board_info $board timeout]
- set ssh_options [board_info $board ssh,options]
- set destfile [lindex [file split $file] end]
- verbose -log "scp -q $ssh_options $file root@$hostname:$tmpdir/"
- set result [local_exec "scp -q $ssh_options $file root@$hostname:$tmpdir/" \
- {} {} $timeout]
- if { [lindex $result 0] != 0 } {
- verbose -log "failed to upload \'$file\' to \'$tmpdir/$destfile\'"
- } else {
- verbose -log "uploaded \"$file\' to remote board@\'$tmpdir/$destfile\'"
- return "$tmpdir/$destfile"
- }
-}
-
-#
-# Download a file to the host machine. Uses scp over persistent SSH connection.
-#
-proc __boardname___upload { board file args } {
- set hostname [board_info $board hostname]
- set tmpdir [board_info $board tmpdir]
- set timeout [board_info $board timeout]
- set ssh_options [board_info $board ssh,options]
- set filen [file tail $file]
- verbose -log "scp -q $ssh_options \"root@$hostname:$tmpdir/$filen\" ."
- set result [local_exec \
- "scp -q $ssh_options \"root@$hostname:$tmpdir/$filen\" ." \
- {} {} $timeout]
- if { [lindex $result 0] != 0 } {
- verbose -log \
- "failed to transfer \"root@$hostname:$tmpdir/$filen\" to \".\""
- } else {
- verbose -log "transferred \"root@$hostname:$tmpdir/$filen\" to \".\""
- # In case of success, always return the original file.
- return "$file"
- }
-}
-
-#
-# Cache program output within different invoking of __boardname___exec.
-# For example, the following command sequence will be executed
-# > cd /tmp/dejagnu_xxxx/ && ./xxx.x0
-# <output1 here>
-# return [0, <output1>] (a)
-# > rm /tmp/dejagnu_xxxx/xxxx.x0
-# <output2 here>
-# return [0, <output2>] (b)
-# We need <output1>, not <output2>. What we do here is to keep <output1> in
-# $program_output and in (b) we return [0, <output1>].
-#
-set program_output ""
-
-#
-# Execute a test on remote machine. Log into the target machine using
-# persistent SSH connection and run a command in modified environment.
-#
-proc __boardname___exec { board program args } {
- global program_output
- if { [llength $args] > 0 } {
- set pargs [lindex $args 0]
- } else {
- set pargs ""
- }
-
- if { [llength $args] > 1 } {
- set inp "[lindex $args 1]"
- } else {
- set inp ""
- }
-
- if { [llength $args] > 2 } {
- set outp "[lindex $args 2]"
- } else {
- set outp ""
- }
-
- if { [llength $args] > 3 } {
- set timeout "[lindex $args 3]"
- } else {
- set timeout [board_info $board timeout]
- }
-
- set hostname [board_info $board hostname]
- set tmpdir [board_info $board tmpdir]
- set other_file ""
-
- # Check if a file to be executed was copied from host machine. If so, we
- # need to run it in copied runtimes.
- set is_program "0"
- if { [string match "$tmpdir/*" $program] } {
- set path [file dirname $program]
- # "$program" would usually be like "/x/y/z.out", set command to be "z.out".
- set command [file tail $program]
- set rootname [file rootname $command]
- # TODO(shenhan): using rsync to copy all test case relatd stuff to host
- # machine in case ".o" files are different from the exe files.
- set other_file [file join $path "${rootname}.*"]
- # Change directory to "/x/y", then execute "./z.out" - we want the working
- # directory to be "/x/y". Setting GCOV_PREFIX_STRIP and GCOV_PREFIX is to
- # force generating ".gcda" file under "/x/y" instead of some host path.
- set program "cd $path && GCOV_PREFIX_STRIP=999 GCOV_PREFIX=$tmpdir/ \
- [file join "." $command]"
- set is_program "1"
- }
- verbose -log "Exec: $program"
- set ssh_options [board_info $board ssh,options]
- set retv [local_exec \
- "ssh -n $ssh_options root@$hostname sh -c '$program $pargs'" \
- $inp $outp $timeout]
- set status [lindex $retv 0]
- if { $is_program == "1" } {
- set program_output [lindex $retv 1]
- }
-
- # Before returning the execution status, we try to transfer the ".gcda"
- # (and/or other files that have the same base name as the program) file to
- # host, though for every program that runs, there is no corresponding "other"
- # file. We have no idea when such an other file will be generated for the
- # program, so every time, we assume there is an "other" file and try to do the
- # transfer.
- if { $status == 0 && $other_file != "" } {
- set upv [${board}_upload $board $other_file ""]
- if { $upv == "" } {
- verbose -log "Safely ignored - \"$other_file\" does not exist."
- }
- }
-
- return [list $status $program_output]
-}
-
-load_generic_config "unix"
-load_base_board_description "linux-libremote"
-
-set_board_info hostname "__board_hostname__"
-set_board_info tmpdir "__tmp_dir__"
-
-set_board_info isremote 1
-set_board_info timeout 60
-set_board_info ssh,options "-i __tmp_testing_rsa__ -o ControlMaster=auto \
--o ControlPath=__tmp_dir__/%r@%h:%p -o StrictHostKeyChecking=no "