mirror of
https://github.com/php/pftt2.git
synced 2026-03-24 01:02:11 +01:00
183 lines
6.1 KiB
Batchfile
183 lines
6.1 KiB
Batchfile
@ECHO OFF
|
|
REM script for running PFTT on Windows
|
|
|
|
REM set important env vars
|
|
IF DEFINED PFTT_SHELL GOTO :skip_set_env
|
|
CALL %~dp0set_env.cmd
|
|
:skip_set_env
|
|
SET PFTT_LIB=%PFTT_HOME%\lib
|
|
|
|
SET CLASSPATH=^
|
|
%PFTT_LIB%\htmlcleaner-2.2.jar;^
|
|
%PFTT_LIB%\icu4j-49_1.jar;^
|
|
%PFTT_LIB%\icudata.jar;^
|
|
%PFTT_LIB%\icutzdata.jar;^
|
|
%PFTT_LIB%\jansi-1.7.jar;^
|
|
%PFTT_LIB%\jline-0.9.94.jar;^
|
|
%PFTT_LIB%\xercesImpl.jar;^
|
|
%PFTT_LIB%\xmlpull-1.1.3.1.jar;^
|
|
%PFTT_LIB%\commons-cli-1.2.jar;^
|
|
%PFTT_LIB%\antlr-2.7.7.jar;^
|
|
%PFTT_LIB%\asm-3.2.jar;^
|
|
%PFTT_LIB%\asm-analysis-3.2.jar;^
|
|
%PFTT_LIB%\asm-commons-3.2.jar;^
|
|
%PFTT_LIB%\asm-tree-3.2.jar;^
|
|
%PFTT_LIB%\asm-util-3.2.jar;^
|
|
%PFTT_LIB%\winp-1.14.jar;^
|
|
%PFTT_LIB%\commons-net-3.1.jar;^
|
|
%PFTT_LIB%\commons-codec-1.6.jar;^
|
|
%PFTT_LIB%\commons-lang-2.6.jar;^
|
|
%PFTT_LIB%\commons-logging-1.1.1.jar;^
|
|
%PFTT_LIB%\jzlib-1.1.1.jar;^
|
|
%PFTT_LIB%\mina-core-2.0.7.jar;^
|
|
%PFTT_LIB%\mina-statemachine-2.0.7.jar;^
|
|
%PFTT_LIB%\slf4j-api-1.7.2.jar;^
|
|
%PFTT_LIB%\slf4j-log4j12-1.7.2.jar;^
|
|
%PFTT_LIB%\log4j-1.2.17.jar;^
|
|
%PFTT_LIB%\php_parser.jar;^
|
|
%PFTT_LIB%\selenium-java-2.31.0.jar;^
|
|
%PFTT_LIB%\apache-mime4j-0.6.jar;^
|
|
%PFTT_LIB%\commons-exec-1.1.jar;^
|
|
%PFTT_LIB%\cssparser-0.9.8.jar;^
|
|
%PFTT_LIB%\guava-14.0.jar;^
|
|
%PFTT_LIB%\hamcrest-core-1.3.jar;^
|
|
%PFTT_LIB%\hamcrest-library-1.3.jar;^
|
|
%PFTT_LIB%\httpclient-4.2.1.jar;^
|
|
%PFTT_LIB%\httpcore-4.2.1.jar;^
|
|
%PFTT_LIB%\httpmime-4.2.1.jar;^
|
|
%PFTT_LIB%\jna-3.4.0.jar;^
|
|
%PFTT_LIB%\jna-platform-3.4.0.jar;^
|
|
%PFTT_LIB%\json-20080701.jar;^
|
|
%PFTT_LIB%\nekohtml-1.9.17.jar;^
|
|
%PFTT_LIB%\phantomjsdriver-1.0.1.jar;^
|
|
%PFTT_LIB%\serializer-2.7.1.jar;^
|
|
%PFTT_LIB%\j2ssh-common-0.2.9.jar;^
|
|
%PFTT_LIB%\j2ssh-core-0.2.9.jar;^
|
|
%PFTT_LIB%\javax.servlet.jar;^
|
|
%PFTT_LIB%\mysql-connector-java-5.1.25-bin.jar;^
|
|
%PFTT_LIB%\activation-1.1-rev-1.jar;^
|
|
%PFTT_LIB%\jcifs-1.3.17.jar;^
|
|
%PFTT_LIB%\sqljdbc4.jar;^
|
|
%PFTT_LIB%\groovy-all-2.4.15.jar;^
|
|
%PFTT_LIB%\sshd-core-1.1.1.jar;^
|
|
%PFTT_LIB%\windowsazure-core-0.5.0.jar;^
|
|
%PFTT_LIB%\windowsazure-websites-0.5.0.jar;^
|
|
%PFTT_LIB%\java-diff-1.1.2.jar;^
|
|
%PFTT_LIB%\kxml2-2.3.0.jar;^
|
|
%PFTT_LIB%\jsr305-3.0.0.jar
|
|
|
|
REM this might be also controlled by environment, if needed
|
|
IF EXIST %PFTT_LIB%\pftt2.jar (
|
|
SET CLASSPATH=%PFTT_LIB%\pftt2.jar;%CLASSPATH%
|
|
) else (
|
|
SET CLASSPATH=%PFTT_HOME%\build;%CLASSPATH%
|
|
)
|
|
|
|
REM if user added -uac -auto -debug* console options or setup or stop commands, run elevated in UAC
|
|
REM user will get at most 1 UAC popup dialog
|
|
REM UAC popups break unattended automation because there is no way to automate clicking on them
|
|
REM having 1 UAC popup at start when -auto is used will hopefully get the user to realize
|
|
REM pftt must be run automatically with elevated privileges or automated testing will fail
|
|
REM
|
|
REM unfortunately, elevation will open a 2nd command processor window for the PFTT console
|
|
REM
|
|
REM search console options for -uac or -auto or -debug_all or -debug_list or stop or setup
|
|
|
|
REM if running in PFTT shell, can assume already running under UAC, so don't run with elevate (stay in pftt shell)
|
|
IF DEFINED PFTT_SHELL GOTO :run_it
|
|
|
|
SET pftt_args="str %*"
|
|
SET pftt_temp=%pftt_args:uac=%
|
|
IF NOT %pftt_args% EQU %pftt_temp% ( GOTO set_elevator )
|
|
SET pftt_args="str %*"
|
|
SET pftt_temp=%pftt_args:debug=%
|
|
IF NOT %pftt_args% EQU %pftt_temp% ( GOTO set_elevator )
|
|
SET pftt_args="str %*"
|
|
SET pftt_temp=%pftt_args:auto=%
|
|
IF NOT %pftt_args% EQU %pftt_temp% ( GOTO set_elevator )
|
|
SET pftt_args="str %*"
|
|
SET pftt_temp=%pftt_args:setup=%
|
|
IF NOT %pftt_args% EQU %pftt_temp% ( GOTO set_elevator )
|
|
SET pftt_args="str %*"
|
|
SET pftt_temp=%pftt_args:stop=%
|
|
IF NOT %pftt_args% EQU %pftt_temp% ( GOTO set_elevator )
|
|
|
|
|
|
REM not using elevate, clear these vars!
|
|
SET ELEVATOR=
|
|
SET ELEVATOR_OPTS=
|
|
GOTO :run_it
|
|
|
|
:set_elevator
|
|
SET ELEVATOR=%PFTT_HOME%\bin\elevate.exe
|
|
REM pass -pause to pftt (IMPORTANT: trailing space must be present or this will break everything)
|
|
SET ELEVATOR_OPTS="-pause "
|
|
ECHO see other new command prompt Window for PFTT output
|
|
|
|
:run_it
|
|
|
|
REM find java.exe
|
|
IF EXIST %JAVA_HOME%\lib\tools.jar (
|
|
SET JAVA_EXE=%JAVA_HOME%\bin\java.exe
|
|
) ELSE (
|
|
REM prefer the JRE bundled with PFTT
|
|
IF EXIST "%PFTT_HOME%\jre\bin\java.exe" (
|
|
SET JAVA_EXE="%PFTT_HOME%\jre\bin\java.exe"
|
|
SET JAVA_HOME="%PFTT_HOME%\jre"
|
|
) ELSE (
|
|
IF EXIST "%ProgramFiles%\java\jre6\bin\java.exe" (
|
|
SET JAVA_EXE="%ProgramFiles%\java\jre6\bin\java.exe"
|
|
SET JAVA_HOME="%ProgramFiles%\java\jre6"
|
|
) ELSE (
|
|
IF EXIST "%ProgramW6432%\java\jre6\bin\java.exe" (
|
|
SET JAVA_EXE="%ProgramW6432%\java\jre6\bin\java.exe"
|
|
SET JAVA_HOME="%ProgramW6432%\java\jre6"
|
|
) ELSE (
|
|
IF EXIST "%ProgramFiles(x86)%\java\jre6\bin\java.exe" (
|
|
SET JAVA_EXE="%ProgramFiles(x86)%\java\jre6\bin\java.exe"
|
|
SET JAVA_HOME="%ProgramFiles(x86)%\java\jre6"
|
|
) ELSE (
|
|
IF EXIST "%ProgramFiles%\java\jre7\bin\java.exe" (
|
|
SET JAVA_EXE="%ProgramFiles%\java\jre7\bin\java.exe"
|
|
SET JAVA_HOME="%ProgramFiles%\java\jre7"
|
|
) ELSE (
|
|
IF EXIST "%ProgramFiles(x86)%\java\jre7\bin\java.exe" (
|
|
SET JAVA_EXE="%ProgramFiles(x86)%\java\jre7\bin\java.exe"
|
|
SET JAVA_HOME="%ProgramFiles(x86)%\java\jre7"
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
IF "%JAVA_EXE%" == "" (
|
|
REM check PATH last. it might find java.exe in \Windows\System32\java
|
|
REM which elevate.exe can't find/execute for some weird reason
|
|
WHERE java > pftt_cmd.tmp 2> NUL
|
|
|
|
IF %ERRORLEVEL% EQU 0 (
|
|
REM found java.exe in PATH
|
|
SET /p JAVA_EXE= < pftt_cmd.tmp
|
|
) ELSE (
|
|
REM can't find java jre
|
|
ECHO java may not be installed. Must Install Sun Java JRE 6 or 7.
|
|
ECHO user error set JAVA_HOME or add java to PATH and try again
|
|
ECHO searched "%ProgramFiles%" "%Programfiles(x86)%" "%ProgramW6432%"
|
|
DEL /Q pftt_cmd.tmp
|
|
EXIT /B 200
|
|
)
|
|
DEL /Q pftt_cmd.tmp
|
|
)
|
|
REM finally execute PFTT
|
|
REM
|
|
REM run with yjp if -pftt_profile console option is used
|
|
SET pftt_args="str %*"
|
|
SET pftt_temp=%pftt_args:pftt_profile=%
|
|
IF NOT %pftt_args% EQU %pftt_temp% (
|
|
%ELEVATOR% "%JAVA_EXE%" -Xmx512M -Xms256M -agentpath:"C:\Program Files (x86)\YourKit Java Profiler 12.0.5\bin\win64\yjpagent.dll" -classpath %CLASSPATH% com.mostc.pftt.main.PfttMain %ELEVATOR_OPTS%%*
|
|
) ELSE (
|
|
%ELEVATOR% "%JAVA_EXE%" -Xmx512M -Xms256M -classpath %CLASSPATH% com.mostc.pftt.main.PfttMain %ELEVATOR_OPTS%%*
|
|
)
|