[jboss-cvs] JBossAS SVN: r99150 - projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jan 8 05:10:01 EST 2010
Author: richard.opalka at jboss.com
Date: 2010-01-08 05:10:01 -0500 (Fri, 08 Jan 2010)
New Revision: 99150
Added:
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DependenciesTopologicalOrderingUnitTestCase.java
Removed:
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/OptimizedTopologicalOrderingUnitTestCase.java
Modified:
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/AbstractDeployerFlowUnitTest.java
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DominoOrderingUnitTestCase.java
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/InOutTopologicalOrderingUnitTestCase.java
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/KahnOrderingUnitTestCase.java
Log:
[JBDEPLOY-229][JBDEPLOY-230] adding new algorithm performance test plus improving existing one test
Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/AbstractDeployerFlowUnitTest.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/AbstractDeployerFlowUnitTest.java 2010-01-08 10:06:18 UTC (rev 99149)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/AbstractDeployerFlowUnitTest.java 2010-01-08 10:10:01 UTC (rev 99150)
@@ -1237,35 +1237,139 @@
main.process();
}
+ /**
+ * Tests algorithm performance on complete oriented graph.
+ * All dependencies are specified using inputs/outputs.
+ */
public void testAlgorithmPerformance() throws Exception
{
+
DeployerClient main = createMainDeployer();
- AbstractDeployer deployer;
+ TestFlowDeployer deployer;
final int COUNT_OF_DEPLOYERS = 500;
- List<AbstractDeployer> deployers = new LinkedList<AbstractDeployer>();
+ List<TestFlowDeployer> deployers = new LinkedList<TestFlowDeployer>();
for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
{
- deployer = new TestDeployerAdapter( String.valueOf(i) );
+ deployer = new TestFlowDeployer( String.valueOf(i) );
deployer.setOutputs( String.valueOf(i) );
for (int j = 0; j < i; j++) deployer.addInput( String.valueOf(j) );
- deployer.setStage(DeploymentStages.REAL);
deployers.add(deployer);
}
long start = System.currentTimeMillis();
- for (AbstractDeployer d : deployers)
+ for (TestFlowDeployer d : deployers)
{
addDeployer(main, d);
}
long end = System.currentTimeMillis();
System.out.println("------------------------------------------------------------------------");
- System.out.println("Exhaustive deployer sorting (" + getClass().getSimpleName() + ") took: " + (end - start) + " milliseconds");
+ System.out.println("Exhaustive deployer sorting 1 (" + getClass().getSimpleName() + ") took: " + (end - start) + " milliseconds");
System.out.println("------------------------------------------------------------------------");
+
+ // test proper deployers order
+ Deployment deployment = createSimpleDeployment( "exhaustiveDeployersOrderTest" );
+
+ main.addDeployment(deployment);
+ main.process();
+
+ for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
+ {
+ deployer = deployers.get(i);
+ assertEquals(i + 1, deployer.getDeployOrder());
+ assertEquals(-1, deployer.getUndeployOrder());
+ }
+
+ main.removeDeployment(deployment);
+ main.process();
+
+ for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
+ {
+ deployer = deployers.get(i);
+ assertEquals(i + 1, deployer.getDeployOrder());
+ assertEquals(2*COUNT_OF_DEPLOYERS - i, deployer.getUndeployOrder());
+ }
}
+ /**
+ * Tests algorithm performance on complete oriented graph
+ * where vertex in this graph is represented as set of deployers.
+ * Deployers that are in specific vertex are ordered using deployer ordering feature.
+ */
+ public void testAlgorithmPerformance2() throws Exception
+ {
+ DeployerClient main = createMainDeployer();
+ TestFlowDeployer deployer;
+ final int COUNT_OF_DEPLOYERS = 1000;
+ final int MODULO = 50; // count of deployers in particular vertex
+
+ List<TestFlowDeployer> deployers = new LinkedList<TestFlowDeployer>();
+
+ for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
+ {
+ deployer = new TestFlowDeployer( String.valueOf(i) );
+ deployer.setOutputs( String.valueOf(i / MODULO) );
+ deployer.setRelativeOrder(i % MODULO);
+ for (int j = 0; j < i/MODULO; j++)
+ deployer.addInput( String.valueOf(j) );
+
+ deployers.add(deployer);
+ }
+
+ long start = System.currentTimeMillis();
+ for (TestFlowDeployer d : deployers)
+ {
+ addDeployer(main, d);
+ }
+ long end = System.currentTimeMillis();
+
+ System.out.println("------------------------------------------------------------------------");
+ System.out.println("Exhaustive deployer sorting 2 (" + getClass().getSimpleName() + ") took: " + (end - start) + " milliseconds");
+ System.out.println("------------------------------------------------------------------------");
+
+ // test proper deployers order
+ Deployment deployment = createSimpleDeployment( "exhaustiveDeployersOrderTest" );
+
+ main.addDeployment(deployment);
+ main.process();
+
+ int deployerDeployOrder;
+ int deployerUndeployOrder;
+ int deployerDeployOrderInModulo;
+ int deployerUndeployOrderInModulo;
+ int level;
+ for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
+ {
+ level = i / MODULO;
+ deployer = deployers.get(i);
+ deployerDeployOrder = deployer.getDeployOrder();
+ deployerDeployOrderInModulo = (deployerDeployOrder - 1) / MODULO;
+ deployerUndeployOrder = deployer.getUndeployOrder();
+ assertTrue("Wrong deployer(" + i + ") deploy order: " + deployerDeployOrder, level <= deployerDeployOrderInModulo && deployerDeployOrderInModulo < (level + 1));
+ assertEquals(i + 1, deployerDeployOrder); // remove if [JBDEPLOY-233] will be fixed
+ assertEquals(-1, deployerUndeployOrder);
+ }
+
+ main.removeDeployment(deployment);
+ main.process();
+
+ for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
+ {
+ level = i / MODULO;
+ deployer = deployers.get(i);
+ deployerDeployOrder = deployer.getDeployOrder();
+ deployerDeployOrderInModulo = (deployerDeployOrder - 1) / MODULO;
+ deployerUndeployOrder = deployer.getUndeployOrder();
+ deployerUndeployOrderInModulo = (deployerUndeployOrder - 1) / MODULO;
+ assertTrue("Wrong deployer(" + i + ") deploy order: " + deployerDeployOrder, level <= deployerDeployOrderInModulo && deployerDeployOrderInModulo < (level + 1));
+ assertEquals(i + 1, deployer.getDeployOrder()); // remove if [JBDEPLOY-233] will be fixed
+ assertTrue("Wrong deployer(" + i + ") undeploy order: " + deployerUndeployOrder, (2 * COUNT_OF_DEPLOYERS - level) >= deployerUndeployOrderInModulo && deployerUndeployOrderInModulo < (2 * COUNT_OF_DEPLOYERS - (level + 1)));
+ assertEquals(2 * COUNT_OF_DEPLOYERS - i, deployer.getUndeployOrder()); // remove if [JBDEPLOY-233] will be fixed
+ }
+ }
+
public void testRealWorldAS6DeployersScenario() throws Exception
{
// THIS IS REAL WORLD SCENARIO - AS deployers with their dependencies
Added: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DependenciesTopologicalOrderingUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DependenciesTopologicalOrderingUnitTestCase.java (rev 0)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DependenciesTopologicalOrderingUnitTestCase.java 2010-01-08 10:10:01 UTC (rev 99150)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright (c) 2010, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.deployers.deployer.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.deployers.plugins.sort.DeployerSorter;
+import org.jboss.deployers.plugins.sort.DependenciesTopologicalDeployerSorter;
+
+/**
+ * Tests topological sorting.
+ *
+ * @author <a href="mailto:ropalka at redhat.com">Richard Opalka</a>
+ */
+public class DependenciesTopologicalOrderingUnitTestCase extends AbstractSorterOrderingUnitTest
+{
+
+ public DependenciesTopologicalOrderingUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(DependenciesTopologicalOrderingUnitTestCase.class);
+ }
+
+ @Override
+ protected DeployerSorter createSorter()
+ {
+ return new DependenciesTopologicalDeployerSorter();
+ }
+
+}
Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DominoOrderingUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DominoOrderingUnitTestCase.java 2010-01-08 10:06:18 UTC (rev 99149)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DominoOrderingUnitTestCase.java 2010-01-08 10:10:01 UTC (rev 99150)
@@ -54,4 +54,9 @@
{
// ignored
}
+
+ public void testAlgorithmPerformance2()
+ {
+ // ignored
+ }
}
\ No newline at end of file
Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/InOutTopologicalOrderingUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/InOutTopologicalOrderingUnitTestCase.java 2010-01-08 10:06:18 UTC (rev 99149)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/InOutTopologicalOrderingUnitTestCase.java 2010-01-08 10:10:01 UTC (rev 99150)
@@ -54,10 +54,16 @@
public void testDeployersOrder1() throws Exception
{
// TODO - how much do we allow pass-through to participate in ordering?
+ // This just creates duplicit edges from vertex A to vertex B in final graph.
}
public void testAlgorithmPerformance()
{
// ignored
}
+
+ public void testAlgorithmPerformance2()
+ {
+ // ignored
+ }
}
\ No newline at end of file
Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/KahnOrderingUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/KahnOrderingUnitTestCase.java 2010-01-08 10:06:18 UTC (rev 99149)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/KahnOrderingUnitTestCase.java 2010-01-08 10:10:01 UTC (rev 99150)
@@ -54,4 +54,9 @@
{
// ignored
}
+
+ public void testAlgorithmPerformance2()
+ {
+ // ignored
+ }
}
\ No newline at end of file
Deleted: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/OptimizedTopologicalOrderingUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/OptimizedTopologicalOrderingUnitTestCase.java 2010-01-08 10:06:18 UTC (rev 99149)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/OptimizedTopologicalOrderingUnitTestCase.java 2010-01-08 10:10:01 UTC (rev 99150)
@@ -1,52 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright (c) 2010, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.deployers.deployer.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.jboss.deployers.plugins.sort.DeployerSorter;
-import org.jboss.deployers.plugins.sort.TopologicalOrderingDeployerSorter;
-
-/**
- * Tests topological sorting.
- *
- * @author <a href="mailto:ropalka at redhat.com">Richard Opalka</a>
- */
-public class OptimizedTopologicalOrderingUnitTestCase extends AbstractSorterOrderingUnitTest
-{
- public OptimizedTopologicalOrderingUnitTestCase(String name)
- {
- super(name);
- }
-
- public static Test suite()
- {
- return new TestSuite(OptimizedTopologicalOrderingUnitTestCase.class);
- }
-
- @Override
- protected DeployerSorter createSorter()
- {
- return new TopologicalOrderingDeployerSorter();
- }
-}
More information about the jboss-cvs-commits
mailing list