#!/bin/bash
#
# Copyright 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
serial_no=$1
if [ -z "$serial_no" ]
then
echo "Must provide serial number of the testing device."
exit
fi
local_trace_dir=$2
if [ -z "$local_trace_dir" ]
then
local_trace_dir=/usr/local/backup/cts-traces
fi
test_list=$3
if [ -z "$test_list" ]
then
test_list=${ANDROID_BUILD_TOP}/test/vts/script/cts_test_list.txt
fi
# allow write to /vendor partition
adb -s $serial_no root
adb -s $serial_no disable-verity
adb -s $serial_no reboot
adb -s $serial_no wait-for-device
adb -s $serial_no root
adb -s $serial_no remount
adb -s $serial_no shell setenforce 0
adb -s $serial_no shell chmod 777 -R data/local/tmp
# push profiler libs
adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib64/*-vts.profiler.so vendor/lib64/
adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib/*-vts.profiler.so vendor/lib/
adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib64/libvts_* vendor/lib64/
adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib/libvts_* vendor/lib/
# push vts_profiling_configure
adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/bin/vts_profiling_configure /data/local/tmp/
# get cts testcases
tests=()
while read -r test
do
tests+=($test)
done < "$test_list"
# run cts testcases
for i in ${tests[@]}
do
echo Running $i
adb -s $serial_no shell rm /data/local/tmp/*.vts.trace
adb -s $serial_no shell ./data/local/tmp/vts_profiling_configure enable /vendor/lib/ /vendor/lib64/
cts-tradefed run commandAndExit cts -s $serial_no --primary-abi-only --skip-device-info \
--skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker \
--skip-system-status-check com.android.tradefed.suite.checker.KeyguardStatusChecker -m $i
# In case device restart during the test run.
adb -s $serial_no root
adb -s $serial_no shell setenforce 0
adb -s $serial_no shell ls /data/local/tmp/*.vts.trace > temp
trace_path=$local_trace_dir/$i
rm -rf $trace_path
mkdir -p $trace_path
while read -r trace
do
adb -s $serial_no pull $trace $trace_path
done < "temp"
done
echo "done"