Commit:    00443ccd7d12429eb88f2d76531105bcde7dc578
Author:    Matt Ficken <v-maf...@microsoft.com>         Fri, 18 Oct 2013 
17:30:30 -0700
Parents:   9696ac26c694c0061677535fe56ee5ad41c769a4
Branches:  master

Link:       
http://git.php.net/?p=pftt2.git;a=commitdiff;h=00443ccd7d12429eb88f2d76531105bcde7dc578

Log:
fixing ScenarioSet isSupported bug

bug if loading application scenarios and not loading mysql scenario and
running PHPT tests - #isSupported returns false for PHPT tests (caused
by ZipDbApplication)


Former-commit-id: ff9589c739c5d5f0df251f6e871a298a2a522e85

Changed paths:
  M  src/com/mostc/pftt/scenario/Scenario.java
  M  src/com/mostc/pftt/scenario/ScenarioSet.java
  M  src/com/mostc/pftt/scenario/app/ZipDbApplication.java


Diff:
diff --git a/src/com/mostc/pftt/scenario/Scenario.java 
b/src/com/mostc/pftt/scenario/Scenario.java
index 62997a0..60c0ca2 100644
--- a/src/com/mostc/pftt/scenario/Scenario.java
+++ b/src/com/mostc/pftt/scenario/Scenario.java
@@ -51,7 +51,7 @@ public abstract class Scenario {
                return getClass();
        }
        
-       /** Provide directories and files containing debugging symbols to 
Symbolic Debugger.
+       /** Provide DIRECTORIES containing debugging symbols to Symbolic 
Debugger.
         * 
         * Ex: this is used to provide Apache debug symbols to WinDebug(on 
Windows).
         * 
@@ -155,13 +155,18 @@ public abstract class Scenario {
         * @param host
         * @param build
         * @param scenario_set
+        * @param layer TODO
         * @return
         */
        @Overridable
-       public boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build, ScenarioSet scenario_set) {
+       public boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build, ScenarioSet scenario_set, EScenarioSetPermutationLayer layer) {
                return true;
        }
        
+       public final boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build, ScenarioSet scenario_set) {
+               return isSupported(cm, host, build, scenario_set, null);
+       }
+       
        @Override
        public String toString() {
                return getName();
diff --git a/src/com/mostc/pftt/scenario/ScenarioSet.java 
b/src/com/mostc/pftt/scenario/ScenarioSet.java
index 80dba2f..83a6f3c 100644
--- a/src/com/mostc/pftt/scenario/ScenarioSet.java
+++ b/src/com/mostc/pftt/scenario/ScenarioSet.java
@@ -11,6 +11,7 @@ import java.util.List;
 import com.mostc.pftt.host.Host;
 import com.mostc.pftt.model.core.PhpBuild;
 import com.mostc.pftt.results.ConsoleManager;
+import com.mostc.pftt.results.EPrintType;
 
 /** A Set of Scenarios to test PHP under.
  * 
@@ -191,16 +192,25 @@ public class ScenarioSet extends ArrayList<Scenario> {
         * @param cm
         * @param host
         * @param build
+        * @param layer
         * @return
         */
-       public boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build) {
+       public boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build, EScenarioSetPermutationLayer layer) {
                for (Scenario s :this) {
-                       if (!s.isSupported(cm, host, build, this))
+                       if (!s.isSupported(cm, host, build, this, layer)) {
+                               if (cm!=null) {
+                                       cm.println(EPrintType.CLUE, getClass(), 
"Not Supported");
+                               }
                                return false;
+                       }
                }
                return true;
        }
        
+       public final boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build) {
+               return isSupported(cm, host, build, null);
+       }
+       
        @Override
        public ScenarioSet clone() {
                return (ScenarioSet) super.clone();
@@ -284,7 +294,7 @@ public class ScenarioSet extends ArrayList<Scenario> {
                ScenarioSet ss;
                while (ss_it.hasNext()) {
                        ss = ss_it.next();
-                       if (!ss.isSupported(cm, host, build))
+                       if (!ss.isSupported(cm, host, build, layer))
                                ss_it.remove();
                }
                return scenario_sets;
diff --git a/src/com/mostc/pftt/scenario/app/ZipDbApplication.java 
b/src/com/mostc/pftt/scenario/app/ZipDbApplication.java
index 4e20dfa..813afb2 100644
--- a/src/com/mostc/pftt/scenario/app/ZipDbApplication.java
+++ b/src/com/mostc/pftt/scenario/app/ZipDbApplication.java
@@ -13,8 +13,17 @@ import com.mostc.pftt.scenario.ScenarioSet;
 public abstract class ZipDbApplication extends ZipApplication {
        
        @Override
-       public boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build, ScenarioSet scenario_set) {
-               return null != scenario_set.getScenario(MySQLScenario.class); 
+       public boolean isSupported(ConsoleManager cm, Host host, PhpBuild 
build, ScenarioSet scenario_set, EScenarioSetPermutationLayer layer) {
+               if (layer==EScenarioSetPermutationLayer.FUNCTIONAL_TEST_CORE)
+                       // for using `core_all,app_all` commands together (fe 
`caaa`)
+                       return true;
+               if (!scenario_set.contains(MySQLScenario.class)) {
+                       if (cm!=null) {
+                               cm.println(EPrintType.CLUE, getClass(), 
"Requires MySQL Scenario. Try adding `local_mysql` to your -config.");
+                       }
+                       return false;
+               }
+               return true;
        }
        
        protected MySQLScenario requireMySQLScenario(ConsoleManager cm, 
ScenarioSet scenario_set) {

Reply via email to