1*795d594fSAndroid Build Coastguard Worker#!/bin/bash 2*795d594fSAndroid Build Coastguard Worker 3*795d594fSAndroid Build Coastguard Workerset -e 4*795d594fSAndroid Build Coastguard Worker 5*795d594fSAndroid Build Coastguard Workerskip_build= 6*795d594fSAndroid Build Coastguard Workerskip_host= 7*795d594fSAndroid Build Coastguard Workerskip_target= 8*795d594fSAndroid Build Coastguard Workerskip_cleanup= 9*795d594fSAndroid Build Coastguard Workerfor arg; do 10*795d594fSAndroid Build Coastguard Worker case "$arg" in 11*795d594fSAndroid Build Coastguard Worker --skip-build) skip_build=true ;; 12*795d594fSAndroid Build Coastguard Worker --skip-host) skip_host=true ;; 13*795d594fSAndroid Build Coastguard Worker --skip-target) skip_target=true ;; 14*795d594fSAndroid Build Coastguard Worker --skip-cleanup) skip_cleanup=true ;; 15*795d594fSAndroid Build Coastguard Worker *) break ;; 16*795d594fSAndroid Build Coastguard Worker esac 17*795d594fSAndroid Build Coastguard Worker shift 18*795d594fSAndroid Build Coastguard Workerdone 19*795d594fSAndroid Build Coastguard Worker 20*795d594fSAndroid Build Coastguard Workerecho_and_run() { 21*795d594fSAndroid Build Coastguard Worker echo "$@" 22*795d594fSAndroid Build Coastguard Worker eval "$@" 23*795d594fSAndroid Build Coastguard Worker} 24*795d594fSAndroid Build Coastguard Worker 25*795d594fSAndroid Build Coastguard Workerdevice_test_root=/data/local/tmp/libnativebridge-test 26*795d594fSAndroid Build Coastguard Worker 27*795d594fSAndroid Build Coastguard Workervars="$(build/soong/soong_ui.bash --dumpvars-mode --vars='HOST_OUT PRODUCT_OUT TARGET_ARCH')" 28*795d594fSAndroid Build Coastguard Worker# Assign to a variable and eval that, since bash ignores any error status 29*795d594fSAndroid Build Coastguard Worker# from the command substitution if it's directly on the eval line. 30*795d594fSAndroid Build Coastguard Workereval $vars 31*795d594fSAndroid Build Coastguard Worker 32*795d594fSAndroid Build Coastguard Workerif [ -z "$skip_build" ]; then 33*795d594fSAndroid Build Coastguard Worker rm -rf $HOST_OUT/nativetest{,64} $PRODUCT_OUT/data/nativetest{,64}/art/$TARGET_ARCH 34*795d594fSAndroid Build Coastguard Worker echo_and_run build/soong/soong_ui.bash --make-mode MODULES-IN-art-libnativebridge-tests 35*795d594fSAndroid Build Coastguard Workerfi 36*795d594fSAndroid Build Coastguard Worker 37*795d594fSAndroid Build Coastguard Workerif [ -z "$skip_host" ]; then 38*795d594fSAndroid Build Coastguard Worker for build_dir in $HOST_OUT/nativetest{,64}/ ; do 39*795d594fSAndroid Build Coastguard Worker if [ ! -d $build_dir ]; then 40*795d594fSAndroid Build Coastguard Worker echo "Skipping missing $build_dir" 41*795d594fSAndroid Build Coastguard Worker else 42*795d594fSAndroid Build Coastguard Worker for test_path in $build_dir/*/* ; do 43*795d594fSAndroid Build Coastguard Worker echo_and_run LD_LIBRARY_PATH=$build_dir $test_path $* 44*795d594fSAndroid Build Coastguard Worker done 45*795d594fSAndroid Build Coastguard Worker fi 46*795d594fSAndroid Build Coastguard Worker done 47*795d594fSAndroid Build Coastguard Workerfi 48*795d594fSAndroid Build Coastguard Worker 49*795d594fSAndroid Build Coastguard Workerif [ -z "$skip_target" ]; then 50*795d594fSAndroid Build Coastguard Worker adb root 51*795d594fSAndroid Build Coastguard Worker adb wait-for-device 52*795d594fSAndroid Build Coastguard Worker 53*795d594fSAndroid Build Coastguard Worker for build_dir in $PRODUCT_OUT/data/nativetest{,64}/art/$TARGET_ARCH ; do 54*795d594fSAndroid Build Coastguard Worker if [ ! -d $build_dir ]; then 55*795d594fSAndroid Build Coastguard Worker echo "Skipping missing $build_dir" 56*795d594fSAndroid Build Coastguard Worker else 57*795d594fSAndroid Build Coastguard Worker test_dir=$device_test_root/$TARGET_ARCH 58*795d594fSAndroid Build Coastguard Worker 59*795d594fSAndroid Build Coastguard Worker echo_and_run adb shell rm -rf $test_dir 60*795d594fSAndroid Build Coastguard Worker echo_and_run adb push $build_dir $test_dir 61*795d594fSAndroid Build Coastguard Worker 62*795d594fSAndroid Build Coastguard Worker for test_path in $build_dir/*/* ; do 63*795d594fSAndroid Build Coastguard Worker test_rel_path=${test_path#${build_dir}/} 64*795d594fSAndroid Build Coastguard Worker echo_and_run adb shell cd $test_dir '\;' LD_LIBRARY_PATH=. $test_rel_path $* 65*795d594fSAndroid Build Coastguard Worker done 66*795d594fSAndroid Build Coastguard Worker fi 67*795d594fSAndroid Build Coastguard Worker done 68*795d594fSAndroid Build Coastguard Worker 69*795d594fSAndroid Build Coastguard Worker if [ -z "$skip_cleanup" ]; then 70*795d594fSAndroid Build Coastguard Worker echo_and_run adb shell rm -rf $device_test_root 71*795d594fSAndroid Build Coastguard Worker fi 72*795d594fSAndroid Build Coastguard Workerfi 73*795d594fSAndroid Build Coastguard Worker 74*795d594fSAndroid Build Coastguard Workerecho "No errors" 75