442 |
if [board_info $dest exists name] { |
if [board_info $dest exists name] { |
443 |
set dest [board_info $dest name]; |
set dest [board_info $dest name]; |
444 |
} |
} |
445 |
|
verbose "In call_remote with $dest, $args" |
446 |
|
|
447 |
if { $dest != "host" && $dest != "build" && $dest != "target" } { |
if { $dest != "host" && $dest != "build" && $dest != "target" } { |
448 |
if { ![board_info $dest exists name] } { |
if { ![board_info $dest exists name] } { |
782 |
proc standard_spawn { dest commandline } { |
proc standard_spawn { dest commandline } { |
783 |
global board_info |
global board_info |
784 |
|
|
785 |
|
if ![board_info $dest exists rsh_prog] { |
786 |
|
if { [which remsh] != 0 } { |
787 |
|
set RSH remsh |
788 |
|
} else { |
789 |
|
set RSH rsh |
790 |
|
} |
791 |
|
} else { |
792 |
|
set RSH [board_info $dest rsh_prog]; |
793 |
|
} |
794 |
|
|
795 |
|
if ![board_info $dest exists username] { |
796 |
|
set rsh_useropts "" |
797 |
|
} else { |
798 |
|
set rsh_useropts "-l $username" |
799 |
|
} |
800 |
|
|
801 |
if [board_info $dest exists hostname] { |
if [board_info $dest exists hostname] { |
802 |
set remote [board_info $dest hostname]; |
set remote [board_info $dest hostname]; |
803 |
} else { |
} else { |
804 |
set remote $dest; |
set remote $dest; |
805 |
} |
} |
806 |
spawn rsh $remote $commandline; |
|
807 |
|
spawn $RSH $rsh_useropts $remote $commandline; |
808 |
set board_info($dest,fileid) $spawn_id; |
set board_info($dest,fileid) $spawn_id; |
809 |
return $spawn_id; |
return $spawn_id; |
810 |
} |
} |
1068 |
proc check_for_board_status { variable } { |
proc check_for_board_status { variable } { |
1069 |
upvar $variable output; |
upvar $variable output; |
1070 |
|
|
1071 |
|
# If all programs of this board have a wrapper that always outputs a |
1072 |
|
# status message, then the absence of it means that the program |
1073 |
|
# crashed, regardless of status found elsewhere (e.g. simulator exit |
1074 |
|
# code). |
1075 |
|
if { [target_info needs_status_wrapper] != "" } then { |
1076 |
|
set nomatch_return 2 |
1077 |
|
} else { |
1078 |
|
set nomatch_return -1 |
1079 |
|
} |
1080 |
|
|
1081 |
if [regexp "(^|\[\r\n\])\\*\\*\\* EXIT code" $output] { |
if [regexp "(^|\[\r\n\])\\*\\*\\* EXIT code" $output] { |
1082 |
regsub "^.*\\*\\*\\* EXIT code " $output "" result; |
regsub "^.*\\*\\*\\* EXIT code " $output "" result; |
1083 |
regsub "\[\r\n\].*$" $result "" result; |
regsub "\[\r\n\].*$" $result "" result; |
1087 |
verbose "got board status $result" 3 |
verbose "got board status $result" 3 |
1088 |
verbose "output is $output" 3 |
verbose "output is $output" 3 |
1089 |
if { $result == "" } { |
if { $result == "" } { |
1090 |
return -1; |
return $nomatch_return; |
1091 |
} else { |
} else { |
1092 |
return [expr $result]; |
return [expr $result]; |
1093 |
} |
} |
1094 |
} else { |
} else { |
1095 |
return -1; |
return $nomatch_return; |
1096 |
} |
} |
1097 |
} |
} |
1098 |
|
|