Commit: 8109993cf22f3c4e297e2f0027c33b6aa96243c4 Author: Matt Ficken <v-maf...@microsoft.com> Thu, 26 Sep 2013 14:49:43 -0700 Parents: 143b2ffcd2d3f5df587df0adf451b07abd645506 Branches: master
Link: http://git.php.net/?p=pftt2.git;a=commitdiff;h=8109993cf22f3c4e297e2f0027c33b6aa96243c4 Log: MSSQL Scenario (Windows only) Former-commit-id: 00331004b9073fc961fdecbd8923fce097d3d777 Changed paths: M .classpath M bin/pftt.cmd M bin/pftt_auto.cmd M bin/pftt_shell.cmd D conf/internal_example/central_mssql.groovy D conf/internal_example/central_mssqlodbc.groovy D conf/internal_example/central_mysql.groovy D conf/internal_example/central_postgresql.groovy A conf/internal_example/mssql10.groovy A conf/internal_example/mssql11.groovy A lib/sqljdbc4.jar M src/com/mostc/pftt/scenario/MSSQLScenario.java
diff --git a/.classpath b/.classpath index c1e6204..c3e3644 100644 --- a/.classpath +++ b/.classpath @@ -53,5 +53,6 @@ <classpathentry kind="lib" path="lib/mysql-connector-java-5.1.25-bin.jar"/> <classpathentry kind="lib" path="lib/activation-1.1-rev-1.jar"/> <classpathentry kind="lib" path="lib/jcifs-1.3.17.jar"/> + <classpathentry kind="lib" path="lib/sqljdbc4.jar"/> <classpathentry kind="output" path="build"/> </classpath> diff --git a/bin/pftt.cmd b/bin/pftt.cmd index 1c0188e..e5607cb 100644 --- a/bin/pftt.cmd +++ b/bin/pftt.cmd @@ -9,7 +9,7 @@ SET PFTT_LIB=%PFTT_HOME%\lib -SET CLASSPATH=%PFTT_HOME%\build;%PFTT_LIB%\javax.servlet.jar;%PFTT_LIB%\mysql-connector-java-5.1.25-bin.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%\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%\jzlib-1.1.1.jar;%PFTT_LIB%\nekohtml-1.9.17.jar;%PFTT_LIB%\phantomjsdriver-1.0.1.jar;%PFTT_LIB%\selenium-java-2.31.0.jar;%PFTT_LIB%\htmlcleaner-2.2.jar;%PFTT_LIB%\groovy-1.8.6.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%\php_parser.jar;%PFTT_LIB%\log4j-1.2.17.jar;%PFTT_LIB%\j2ssh-common-0.2.9.jar;%PFTT_LIB%\j2ssh-core-0.2.9.jar +SET CLASSPATH=%PFTT_HOME%\build;%PFTT_LIB%\sqljdbc4.jar;%PFTT_LIB%\javax.servlet.jar;%PFTT_LIB%\mysql-connector-java-5.1.25-bin.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%\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%\jzlib-1.1.1.jar;%PFTT_LIB%\nekohtml-1.9.17.jar;%PFTT_LIB%\phantomjsdriver-1.0.1.jar;%PFTT_LIB%\selenium-java-2.31.0.jar;%PFTT_LIB%\htmlcleaner-2.2.jar;%PFTT_LIB%\groovy-1.8.6.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%\php_parser.jar;%PFTT_LIB%\log4j-1.2.17.jar;%PFTT_LIB%\j2ssh-common-0.2.9.jar;%PFTT_LIB%\j2ssh-core-0.2.9.jar REM if user added -uac -auto -debug* console options or setup or stop commands, run elevated in UAC @@ -115,7 +115,7 @@ 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% -agentpath:"C:\Program Files (x86)\YourKit Java Profiler 12.0.5\bin\win64\yjpagent.dll" -classpath %CLASSPATH% com.mostc.pftt.main.PfttMain %ELEVATOR_OPTS%%* + %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% -classpath %CLASSPATH% com.mostc.pftt.main.PfttMain %ELEVATOR_OPTS%%* + %ELEVATOR% %JAVA_EXE% -Xmx512M -Xms256M -classpath %CLASSPATH% com.mostc.pftt.main.PfttMain %ELEVATOR_OPTS%%* ) diff --git a/bin/pftt_auto.cmd b/bin/pftt_auto.cmd index 9ebe9ca..b8a6a88 100644 --- a/bin/pftt_auto.cmd +++ b/bin/pftt_auto.cmd @@ -5,7 +5,7 @@ REM set important env vars CALL \php-sdk\PFTT\current\bin\set_env SET PFTT_LIB=%PFTT_HOME%\lib -SET CLASSPATH=%PFTT_HOME%\build;%PFTT_LIB%\javax.servlet.jar;%PFTT_LIB%\mysql-connector-java-5.1.25-bin.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%\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%\jzlib-1.1.1.jar;%PFTT_LIB%\nekohtml-1.9.17.jar;%PFTT_LIB%\phantomjsdriver-1.0.1.jar;%PFTT_LIB%\selenium-java-2.31.0.jar;%PFTT_LIB%\htmlcleaner-2.2.jar;%PFTT_LIB%\groovy-1.8.6.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%\php_parser.jar;%PFTT_LIB%\log4j-1.2.17.jar +SET CLASSPATH=%PFTT_HOME%\build;%PFTT_LIB%\sqljdbc4.jar;%PFTT_LIB%\javax.servlet.jar;%PFTT_LIB%\mysql-connector-java-5.1.25-bin.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%\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%\jzlib-1.1.1.jar;%PFTT_LIB%\nekohtml-1.9.17.jar;%PFTT_LIB%\phantomjsdriver-1.0.1.jar;%PFTT_LIB%\selenium-java-2.31.0.jar;%PFTT_LIB%\htmlcleaner-2.2.jar;%PFTT_LIB%\groovy-1.8.6.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%\php_parser.jar;%PFTT_LIB%\log4j-1.2.17.jar REM if user added -uac or -auto or -debug* console options, run elevated in UAC diff --git a/bin/pftt_shell.cmd b/bin/pftt_shell.cmd index e6e4202..4060449 100644 --- a/bin/pftt_shell.cmd +++ b/bin/pftt_shell.cmd @@ -45,7 +45,7 @@ ECHO Cleanup: ECHO tka_apache tka_php tka_windbg `net use` stop @ECHO. ECHO Useful: -ECHO ls `start .` windbg npp clear +ECHO ls `start .` windbg npp clear taskmgr ECHO php_sdk sleep pftt cat info @ECHO. @prompt $t %COMPUTERNAME% $M$p$g diff --git a/conf/internal_example/central_mssql.groovy b/conf/internal_example/central_mssql.groovy deleted file mode 100644 index 827ceb9..0000000 --- a/conf/internal_example/central_mssql.groovy +++ /dev/null @@ -1,6 +0,0 @@ - -def scenarios() { - evaluate(new File("$__DIR__/CommonConfig.groovy")); - - new MSSQLScenario(CommonConfig.getDatabaseServerHost()) -} diff --git a/conf/internal_example/central_mssqlodbc.groovy b/conf/internal_example/central_mssqlodbc.groovy deleted file mode 100644 index 5f83b6f..0000000 --- a/conf/internal_example/central_mssqlodbc.groovy +++ /dev/null @@ -1,6 +0,0 @@ - -def scenarios() { - evaluate(new File("$__DIR__/CommonConfig.groovy")); - - new MSSQLODBCScenario(CommonConfig.getDatabaseServerHost()) -} diff --git a/conf/internal_example/central_mysql.groovy b/conf/internal_example/central_mysql.groovy deleted file mode 100644 index 7b3b1a5..0000000 --- a/conf/internal_example/central_mysql.groovy +++ /dev/null @@ -1,6 +0,0 @@ - -def scenarios() { - evaluate(new File("$__DIR__/CommonConfig.groovy")); - - new MySQLScenario(CommonConfig.getDatabaseServerHost()) -} diff --git a/conf/internal_example/central_postgresql.groovy b/conf/internal_example/central_postgresql.groovy deleted file mode 100644 index f19f83d..0000000 --- a/conf/internal_example/central_postgresql.groovy +++ /dev/null @@ -1,6 +0,0 @@ - -def scenarios() { - evaluate(new File("$__DIR__/CommonConfig.groovy")); - - new PostgresSQLScenario(CommonConfig.getDatabaseServerHost()) -} diff --git a/conf/internal_example/mssql10.groovy b/conf/internal_example/mssql10.groovy new file mode 100644 index 0000000..429bc8b --- /dev/null +++ b/conf/internal_example/mssql10.groovy @@ -0,0 +1,15 @@ + +def describe() { + """Uses MSSQL Server 2008r2""" +} + +def scenarios() { + new MSSQLScenario( + MSSQLScenario.EMSSQLVersion.DRIVER10, + '10.200.48.76', + // note: this login MUST have authorization to create databases, drop those + // databases and perform all operations within those databases + 'pftt', + 'password01!' + ) +} diff --git a/conf/internal_example/mssql11.groovy b/conf/internal_example/mssql11.groovy new file mode 100644 index 0000000..600c872 --- /dev/null +++ b/conf/internal_example/mssql11.groovy @@ -0,0 +1,15 @@ + +def describe() { + """Uses MSSQL Server 2012 or 2012sp1""" +} + +def scenarios() { + new MSSQLScenario( + MSSQLScenario.EMSSQLVersion.DRIVER11, + '10.200.48.76', + // note: this login MUST have authorization to create databases, drop those + // databases and perform all operations within those databases + 'pftt', + 'password01!' + ) +} diff --git a/lib/sqljdbc4.jar b/lib/sqljdbc4.jar new file mode 100644 index 0000000..d6b7f6d Binary files /dev/null and b/lib/sqljdbc4.jar differ diff --git a/src/com/mostc/pftt/scenario/MSSQLScenario.java b/src/com/mostc/pftt/scenario/MSSQLScenario.java index 3b4df71..0b51738 100644 --- a/src/com/mostc/pftt/scenario/MSSQLScenario.java +++ b/src/com/mostc/pftt/scenario/MSSQLScenario.java @@ -20,7 +20,6 @@ import com.mostc.pftt.results.ConsoleManager; * */ -// TODO need to install sqlncli2008r2-x64.msi or sqlncli2012sp1-x64.msi or -x86 (need -x64 for php-x86 builds on Windows-x64) public class MSSQLScenario extends DatabaseScenario { public static final int DEFAULT_MSSQL_PORT = 1433; protected final String host_address; @@ -45,6 +44,10 @@ public class MSSQLScenario extends DatabaseScenario { public String getODBCDriverName() { return "SQL Server Native Client 10.0"; } + @Override + public boolean isAny() { + return false; + } }, DRIVER11 { @Override @@ -55,6 +58,10 @@ public class MSSQLScenario extends DatabaseScenario { public String getODBCDriverName() { return "SQL Server Native Client 11.0"; } + @Override + public boolean isAny() { + return false; + } }; public abstract String getNameWithVersionInfo(); @@ -91,16 +98,6 @@ public class MSSQLScenario extends DatabaseScenario { } @Override - public boolean ignoreForShortName(EScenarioSetPermutationLayer layer) { - // make sure version is always included in the name of the ScenarioSet - return false; - } - - public boolean isPlaceholder(EScenarioSetPermutationLayer layer) { - return false; // TODO sometimes should return true? - } - - @Override protected DatabaseScenarioSetup createScenarioSetup(boolean is_production_server) { return new MSSQLDatabaseScenarioSetup(); } @@ -114,8 +111,8 @@ public class MSSQLScenario extends DatabaseScenario { String dll1 = ((EMSSQLVersion)version).getPhpPdoDllName(build.getVersionBranch(cm, host), build.getBuildType(host), base_dir); String dll2 = ((EMSSQLVersion)version).getPhpDllName(build.getVersionBranch(cm, host), build.getBuildType(host), base_dir); - host.copy(dll1, build.getDefaultExtensionDir()+"/php_pdo_sqlsrv.dll"); - host.copy(dll2, build.getDefaultExtensionDir()+"/php_sqlsrv.dll"); + host.copy(host.joinIntoOnePath(base_dir, dll1), build.getDefaultExtensionDir()+"/php_pdo_sqlsrv.dll"); + host.copy(host.joinIntoOnePath(base_dir, dll2), build.getDefaultExtensionDir()+"/php_sqlsrv.dll"); } @Override @@ -167,7 +164,7 @@ public class MSSQLScenario extends DatabaseScenario { protected Connection createConnection() throws SQLException { // @see http://jtds.sourceforge.net/faq.html final String url_str = "jdbc:sqlserver://"+getHostname()+":"+getPort()+";user="+getUsername()+";password="+getPassword()+";integratedSecurity=false"; - System.out.println("url_str "+url_str); + return DriverManager.getConnection(url_str); } @@ -201,12 +198,6 @@ public class MSSQLScenario extends DatabaseScenario { } // end public class MSSQLDatabaseScenarioSetup @Override - public String getName() { - // TODO temp DatabaseScenario should do this for all subclasses - return version.getNameWithVersionInfo(); - } - - @Override public boolean isImplemented() { return true; }