aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Elliston <bje@gnu.org>2013-12-10 16:46:15 +1100
committerBen Elliston <bje@gnu.org>2013-12-10 16:46:15 +1100
commit93f2fec5947c3e4ff764e9b92f60647847eeb690 (patch)
treee87bebfadf40a045c5faeed4e6dd2f71b2f1a639
parenta78bb783097d8a32dbaa0fe4f3a0d20297e5da15 (diff)
parentbcc1f7e6ef8d1cb497f69924c39f454b9ea3583c (diff)
downloaddejagnu-93f2fec5947c3e4ff764e9b92f60647847eeb690.zip
dejagnu-93f2fec5947c3e4ff764e9b92f60647847eeb690.tar.gz
dejagnu-93f2fec5947c3e4ff764e9b92f60647847eeb690.tar.bz2
Merge branch 'master' of git.sv.gnu.org:/srv/git/dejagnu
-rw-r--r--ChangeLog8
-rw-r--r--baseboards/androideabi.exp29
-rw-r--r--config/adb.exp6
3 files changed, 34 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index c162568..22b5c9e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,14 @@
* doc/ref.xml (remote_reboot, standard_reboot): Document procedures.
* doc/dejagnu.texi: Regenerate.
+2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
+
+ * baseboards/androideabi.exp (process_multilib_options): Add option.
+ * config/adb.exp: Remove hardcoded -static option.
+ (adb_load): Add the possibility to change the temp directory. Also
+ handle permission potential problems.
+ (adb_exec): Do cd to android_tmp_dir first.
+
2013-10-05 Jose E. Marchesi <jose.marchesi@oracle.com>
* baseboards/unix.exp: Add gdb settings to not use hardware
diff --git a/baseboards/androideabi.exp b/baseboards/androideabi.exp
index 4ba2d63..e84d150 100644
--- a/baseboards/androideabi.exp
+++ b/baseboards/androideabi.exp
@@ -16,6 +16,8 @@
# along with DejaGnu; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+process_multilib_options ""
+
load_generic_config "adb"
# We need this for find_gcc and *_include_flags/*_link_flags.
@@ -25,18 +27,21 @@ set_board_info compiler "[find_gcc]"
# We may need -mandroid.
set_board_info cflags "-mandroid"
-
-# Currently the dynamic linker does not support weak-references in
-# shared libraries. So we need to workaround using -static
-set_board_info ldflags "-mandroid -static"
+set_board_info ldflags "-mandroid"
#
# load PROG to DEST and run it with ARGS using adb
#
proc adb_load { dest prog args } {
- # This directory uses tmpfs, so it is the best place to run
+ # Default directory uses tmpfs, so it is the best place to run
# tests to avoid excessive wear of flash.
- set android_tmp_dir "/mnt/sdcard/.android_secure"
+ global android_tmp_dir
+ if { $android_tmp_dir != "" } {
+ verbose -log "android temporary directory is set to $android_tmp_dir" 3
+ } else {
+ set android_tmp_dir "/mnt/sdcard/.android_secure"
+ verbose -log "android temporary directory will be used by default $android_tmp_dir" 3
+ }
if { [llength $args] > 0 } {
set pargs [lindex $args 0]
@@ -58,12 +63,22 @@ proc adb_load { dest prog args } {
}
if [is_remote $dest] {
+ set localfile "./[file tail $prog].[pid]"
set remotefile "$android_tmp_dir/[file tail $prog].[pid]"
set remotefile [remote_download $dest $prog $remotefile]
if { $remotefile == "" } {
verbose -log "Download of $prog to [board_info $dest name] failed." 3
return "unresolved"
}
+ set retval [remote_exec $dest "test -x $remotefile"]
+ if { $retval != "0 {}" } {
+ # Android doesn't support symbolic input for chmod, therefore set executable permission by number
+ set retval [remote_exec $dest "chmod 755 $remotefile"]
+ if { $retval != "0 {}" } {
+ verbose -log "Setting executable permissions of $prog on [board_info $dest name] failed." 3
+ return "unresolved"
+ }
+ }
if [board_info $dest exists remote_link] {
if [[board_info $dest remote_link] $remotefile] {
verbose -log "Couldn't do remote link"
@@ -73,7 +88,7 @@ proc adb_load { dest prog args } {
return "unresolved"
}
}
- set status [remote_exec $dest $remotefile $pargs $inp]
+ set status [remote_exec $dest $localfile $pargs $inp]
remote_exec $dest rm $remotefile
} else {
set status [remote_exec $dest $prog $pargs $inp]
diff --git a/config/adb.exp b/config/adb.exp
index a679e6a..b5e5d6c 100644
--- a/config/adb.exp
+++ b/config/adb.exp
@@ -128,7 +128,7 @@ proc adb_file {dest op args} {
}
proc adb_upload {desthost srcfile destfile} {
- set status [catch "exec adb [adb_serial] pull $srcfile $destfile" output]
+ set status [catch "exec adb [adb_serial] pull $srcfile $destfile |& cat" output]
if { $status == 0 } {
verbose "Copied $srcfile to $destfile" 2
return $destfile
@@ -165,7 +165,9 @@ proc adb_exec { boardname cmd args } {
verbose "Executing $boardname:$cmd $pargs < $inp "
- set status [catch "exec cat $inp | adb [adb_serial] shell \( $cmd $pargs \) \\; echo XYZ\\\$\\\{\?\\\}ZYX |& cat" output]
+ # Execute commands only from temporary folder, therefore do "cd" first
+ global android_tmp_dir
+ set status [catch "exec cat $inp | adb [adb_serial] shell cd $android_tmp_dir \&\& \( $cmd $pargs \) \\; echo XYZ\\\$\\\{\?\\\}ZYX |& cat" output]
# `status' doesn't mean much here other than adb worked ok.
# What we want is whether $cmd ran ok.