1# Copyright (C) 2014 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the 'License'); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an 'AS IS' BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15source $ANDROID_BUILD_TOP/build/envsetup.sh >/dev/null 16 17root_dir=`realpath \`dirname $0\`/../../` 18 19if [ -z "$ANDROID_SERIAL" ]; then 20 echo "Please set up ANDORID_SERAL enviroment variable" 21 exit -1 22fi 23 24if [ -z "$1" ]; then 25 echo "Usage runtest.sh test-name [64]" 26 exit -1; 27fi 28 29test_name=$1 30product_out=$(cd $ANDROID_BUILD_TOP;get_build_var PRODUCT_OUT 2>/dev/null) 31test_local=$product_out/data/nativetest$2/$test_name/$test_name 32test_target=/data/nativetest$2/$test_name/$test_name 33 34cd $root_dir 35adb push $test_local $test_target 36 37logfile_native=$test_name.stdout.log 38logfile_valgrind=$test_name.stdout.vlog 39 40# reference point 41echo "Creating reference point log (run without valgrind)..." 42adb shell $test_target > $logfile_native 43# valgrind run 44echo "Running test under valgrind..." 45adb shell valgrind $test_target > $logfile_valgrind 46 47echo "Checking results..." 48dos2unix $logfile_native 49dos2unix $logfile_valgrind 50# TODO: remove last 3 grep -v; they are added to work around linker warning about unsupported DT_FLAGS_1 51diff $logfile_native $logfile_valgrind | grep -v "^> ==" | grep -v -e "^[0-9]" | grep -v "WARNING: linker: Unsupported flags" | grep -v "^> $" | grep -v "^> 0x421==" > $test_name.diff.log 52 53if [ -s $test_name.diff.log ]; then 54 echo "Test $test_name FAILED, please check the diff below" 55 cat $test_name.diff.log | sed "s/^< /expected: /" | sed "s/^> /actual : /" 56 exit -2 57fi 58 59echo "Test $test_name PASSED" 60 61