| @echo off | |
| :: Copyright (C) 2014 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. | |
| :: A helper script that launches TradeFederation from the current build | |
| :: environment. | |
| setlocal EnableDelayedExpansion | |
| call:checkCommand adb | |
| call:checkCommand java | |
| :: check java version | |
| %JAVA% -version 2>&1 | findstr /R "version\ \"1*\.*[89].*\"$" || ( | |
| echo "Wrong java version. 1.8 or 9 is required." | |
| exit /B | |
| ) | |
| :: check debug flag and set up remote debugging | |
| if not "%TF_DEBUG%"=="" ( | |
| if "%TF_DEBUG_PORT%" == "" ( | |
| set TF_DEBUG_PORT=10088 | |
| ) | |
| set RDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=!TF_DEBUG_PORT! | |
| ) | |
| :: first try to find TF jars in same dir as this script | |
| set CUR_DIR=%CD% | |
| if exist "%CUR_DIR%\tradefed.jar" ( | |
| set tf_path="%CUR_DIR%\*" | |
| ) else ( | |
| if not "%ANDROID_HOST_OUT%" == "" ( | |
| if exist "%ANDROID_HOST_OUT%\tradefed\tradefed.jar" ( | |
| set tf_path="%ANDROID_HOST_OUT%\tradefed\*" | |
| ) | |
| ) | |
| ) | |
| if "%tf_path%" == "" ( | |
| echo "ERROR: Could not find tradefed jar files" | |
| exit /B | |
| ) | |
| :: set any host specific options | |
| :: file format for file at $TRADEFED_OPTS_FILE is one line per host with the following format: | |
| :: <hostname>=<options> | |
| :: for example: | |
| :: hostname.domain.com=-Djava.io.tmpdir=/location/on/disk -Danother=false ... | |
| :: hostname2.domain.com=-Djava.io.tmpdir=/different/location -Danother=true ... | |
| if exist "%TRADEFED_OPTS_FILE%" ( | |
| call:commandResult "hostname" HOST_NAME | |
| call:commandResult "findstr /i /b "%HOST_NAME%" "%TRADEFED_OPTS_FILE%"" TRADEFED_OPTS | |
| :: delete the hostname part | |
| set TRADEFED_OPTS=!TRADEFED_OPTS:%HOST_NAME%=! | |
| :: delete the first = | |
| set TRADEFED_OPTS=!TRADEFED_OPTS:~1! | |
| ) | |
| java %RDBG_FLAG% -XX:+HeapDumpOnOutOfMemoryError ^ | |
| -XX:-OmitStackTraceInFastThrow %TRADEFED_OPTS% -cp %tf_path% com.android.tradefed.command.Console %* | |
| endlocal | |
| ::end of file | |
| goto:eof | |
| :: check command exist or not | |
| :: if command not exist, exit | |
| :checkCommand | |
| for /f "delims=" %%i in ('where %~1') do ( | |
| if %%i == "" ( | |
| echo %~1 not exist | |
| exit /B | |
| ) | |
| goto:eof | |
| ) | |
| goto:eof | |
| :: get the command result | |
| :: usage: call:commandResult "command" result | |
| :commandResult | |
| for /f "delims=" %%i in ('%~1') do ( | |
| set %~2=%%i | |
| goto:eof | |
| ) | |
| goto:eof |