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;
        }

Reply via email to