135 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| 
 | |
| # Copyright (C) 2019 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.
 | |
| 
 | |
| # launcher script for vts-tradefed harness
 | |
| # can be used from an Android build environment, or a standalone vts zip
 | |
| 
 | |
| checkFile() {
 | |
|     if [ ! -f "$1" ]; then
 | |
|         echo "Unable to locate $1"
 | |
|         exit
 | |
|     fi;
 | |
| }
 | |
| 
 | |
| checkPath() {
 | |
|     if ! type -P $1 &> /dev/null; then
 | |
|         echo "Unable to find $1 in path."
 | |
|         exit
 | |
|     fi;
 | |
| }
 | |
| 
 | |
| # readlink does not work on MacOS so rely on our own realpath
 | |
| realpath() {
 | |
|     [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
 | |
| }
 | |
| 
 | |
| checkPath aapt
 | |
| checkPath adb
 | |
| checkPath java
 | |
| 
 | |
| # check java version
 | |
| JAVA_VERSION=$(java -version 2>&1 | grep 'version [ "]\(1\.8\|9\|11\|17\).*[ "]' | head -n 1)
 | |
| if [ "${JAVA_VERSION}" == "" ]; then
 | |
|     echo "Wrong java version. 1.8, 9, 11 or 17 is required."
 | |
|     exit
 | |
| fi
 | |
| 
 | |
| # check debug flag and set up remote debugging
 | |
| if [ -n "${TF_DEBUG}" ]; then
 | |
|   if [ -z "${TF_DEBUG_PORT}" ]; then
 | |
|     TF_DEBUG_PORT=10088
 | |
|   fi
 | |
|   RDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=${TF_DEBUG_PORT}
 | |
| fi
 | |
| 
 | |
| # get OS
 | |
| HOST=`uname`
 | |
| if [ "$HOST" == "Linux" ]; then
 | |
|     OS="linux-x86"
 | |
| elif [ "$HOST" == "Darwin" ]; then
 | |
|     OS="darwin-x86"
 | |
|     # Bundled java is for linux so use host JDK on Darwin
 | |
|     JAVA_BINARY=java
 | |
| else
 | |
|     echo "Unrecognized OS"
 | |
|     exit
 | |
| fi
 | |
| 
 | |
| # check if in Android build env
 | |
| if [ ! -z "${ANDROID_BUILD_TOP}" ]; then
 | |
|     if [ ! -z "${ANDROID_HOST_OUT}" ]; then
 | |
|       VTS_ROOT=${ANDROID_HOST_OUT}/vts
 | |
|     else
 | |
|       VTS_ROOT=${ANDROID_BUILD_TOP}/${OUT_DIR:-out}/host/${OS}/vts
 | |
|     fi
 | |
|     if [ ! -d ${VTS_ROOT} ]; then
 | |
|         echo "Could not find $VTS_ROOT in Android build environment. Try 'make vts'"
 | |
|         exit
 | |
|     fi;
 | |
| fi;
 | |
| 
 | |
| if [ -z ${VTS_ROOT} ]; then
 | |
|     # assume we're in an extracted vts install
 | |
|     VTS_ROOT="$(dirname $(realpath $0))/../.."
 | |
| fi;
 | |
| 
 | |
| if [ -z ${JAVA_BINARY} ]; then
 | |
|       JAVA_BINARY=${VTS_ROOT}/android-vts/jdk/bin/java
 | |
| fi;
 | |
| 
 | |
| if [ ! -f "${JAVA_BINARY}" ]; then
 | |
|       JAVA_BINARY=java
 | |
| fi
 | |
| 
 | |
| JAR_DIR=${VTS_ROOT}/android-vts/tools
 | |
| 
 | |
| for JAR in ${JAR_DIR}/*.jar; do
 | |
|     JAR_PATH=${JAR_PATH}:${JAR}
 | |
| done
 | |
| JAR_PATH=${JAR_PATH:1} # Strip off leading ':'
 | |
| 
 | |
| OPTIONAL_JARS="
 | |
|   google-tradefed
 | |
|   google-tradefed-tests
 | |
|   google-tf-prod-tests"
 | |
| 
 | |
| STANDALONE_JAR_DIR=${ANDROID_HOST_OUT}/framework
 | |
| for JAR in $OPTIONAL_JARS; do
 | |
|     if [ -f "${JAR_DIR}/${JAR}.jar" ]; then
 | |
|         JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}.jar
 | |
|     elif [ -f "${STANDALONE_JAR_DIR}/${JAR}.jar" ]; then
 | |
|         JAR_PATH=${JAR_PATH}:${STANDALONE_JAR_DIR}/${JAR}.jar
 | |
|     fi;
 | |
| done
 | |
| 
 | |
| # load any shared libraries for host-side executables
 | |
| LIB_DIR=${VTS_ROOT}/android-vts/lib
 | |
| if [ "$HOST" == "Linux" ]; then
 | |
|     LD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${LD_LIBRARY_PATH}
 | |
|     export LD_LIBRARY_PATH
 | |
| elif [ "$HOST" == "Darwin" ]; then
 | |
|     DYLD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${DYLD_LIBRARY_PATH}
 | |
|     export DYLD_LIBRARY_PATH
 | |
| fi
 | |
| 
 | |
| # include any host-side test jars
 | |
| for j in $(find ${VTS_ROOT}/android-vts/testcases -type f -name '*.jar'); do
 | |
|     JAR_PATH=${JAR_PATH}:$j
 | |
| done
 | |
| 
 | |
| VTS_TESTCASES=${VTS_ROOT}/android-vts/testcases/
 | |
| VTS_TESTCASES=${VTS_TESTCASES} ${JAVA_BINARY} $RDBG_FLAG -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -cp ${JAR_PATH} -DVTS_ROOT=${VTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"
 |