[hibernate-commits] Hibernate SVN: r11411 - in trunk/HibernateExt/shards/src/test/org/hibernate/shards: util and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Apr 17 03:32:39 EDT 2007


Author: max.ross
Date: 2007-04-17 03:32:39 -0400 (Tue, 17 Apr 2007)
New Revision: 11411

Added:
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/NonPermutedTests.java
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTests.java.template
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTestsScraper.java
Modified:
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllFastTests.java
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllTests.java
Log:
AllTests generation.
This cl adds an ant task that generates a class that adds all non-permuted tests to a suite.

Modified: trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllFastTests.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllFastTests.java	2007-04-17 06:00:45 UTC (rev 11410)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllFastTests.java	2007-04-17 07:32:39 UTC (rev 11411)
@@ -18,14 +18,12 @@
 
 package org.hibernate.shards;
 
-import org.hibernate.shards.integration.PermutedIntegrationTests;
-
 import junit.framework.Test;
-import junit.framework.TestSuite;
 import junit.framework.TestCase;
+import junit.framework.TestSuite;
 
-import java.util.List;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author maxr at google.com (Max Ross)
@@ -42,10 +40,9 @@
 
   private static List<Class<? extends TestCase>> getAllFastTestClasses() {
     List<Class<? extends TestCase>> allFastTestClasses = new ArrayList<Class<? extends TestCase>>();
-    for(Class<? extends TestCase> testClass : AllTests.CLASSES) {
+    for(Class<? extends TestCase> testClass : NonPermutedTests.CLASSES) {
       allFastTestClasses.add(testClass);
     }
-    allFastTestClasses.removeAll(PermutedIntegrationTests.CLASSES);
     return allFastTestClasses;
   }
 }

Modified: trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllTests.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllTests.java	2007-04-17 06:00:45 UTC (rev 11410)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/AllTests.java	2007-04-17 07:32:39 UTC (rev 11411)
@@ -22,190 +22,20 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
-import org.hibernate.shards.criteria.AddCriterionEventTest;
-import org.hibernate.shards.criteria.AddOrderEventTest;
-import org.hibernate.shards.criteria.CreateAliasEventTest;
-import org.hibernate.shards.criteria.CreateSubcriteriaEventTest;
-import org.hibernate.shards.criteria.CriteriaFactoryImplTest;
-import org.hibernate.shards.criteria.SetFetchModeEventTest;
-import org.hibernate.shards.criteria.SetProjectionEventTest;
-import org.hibernate.shards.criteria.ShardedSubcriteriaImplTest;
-import org.hibernate.shards.criteria.SubcriteriaFactoryImplTest;
-import org.hibernate.shards.id.ShardedTableHiLoGeneratorTest;
-import org.hibernate.shards.id.ShardedUUIDGeneratorTest;
 import org.hibernate.shards.integration.PermutedIntegrationTests;
-import org.hibernate.shards.integration.model.MemoryLeakTest;
-import org.hibernate.shards.loadbalance.RoundRobinShardLoadBalancerTest;
-import org.hibernate.shards.query.SetBigDecimalEventTest;
-import org.hibernate.shards.query.SetBigIntegerEventTest;
-import org.hibernate.shards.query.SetBinaryEventTest;
-import org.hibernate.shards.query.SetBooleanEventTest;
-import org.hibernate.shards.query.SetByteEventTest;
-import org.hibernate.shards.query.SetCalendarDateEventTest;
-import org.hibernate.shards.query.SetCalendarEventTest;
-import org.hibernate.shards.query.SetCharacterEventTest;
-import org.hibernate.shards.query.SetDateEventTest;
-import org.hibernate.shards.query.SetDoubleEventTest;
-import org.hibernate.shards.query.SetEntityEventTest;
-import org.hibernate.shards.query.SetFloatEventTest;
-import org.hibernate.shards.query.SetIntegerEventTest;
-import org.hibernate.shards.query.SetLocaleEventTest;
-import org.hibernate.shards.query.SetLongEventTest;
-import org.hibernate.shards.query.SetParameterEventTest;
-import org.hibernate.shards.query.SetParameterListEventTest;
-import org.hibernate.shards.query.SetParametersEventTest;
-import org.hibernate.shards.query.SetPropertiesEventTest;
-import org.hibernate.shards.query.SetReadOnlyEventTest;
-import org.hibernate.shards.query.SetSerializableEventTest;
-import org.hibernate.shards.query.SetShortEventTest;
-import org.hibernate.shards.query.SetStringEventTest;
-import org.hibernate.shards.query.SetTextEventTest;
-import org.hibernate.shards.query.SetTimeEventTest;
-import org.hibernate.shards.query.SetTimestampEventTest;
-import org.hibernate.shards.session.CrossShardRelationshipDetectingInterceptorDecoratorTest;
-import org.hibernate.shards.session.CrossShardRelationshipDetectingInterceptorTest;
-import org.hibernate.shards.session.DisableFilterOpenSessionEventTest;
-import org.hibernate.shards.session.EnableFilterOpenSessionEventTest;
-import org.hibernate.shards.session.SetCacheModeOpenSessionEventTest;
-import org.hibernate.shards.session.SetFlushModeOpenSessionEventTest;
-import org.hibernate.shards.session.SetReadOnlyOpenSessionEventTest;
-import org.hibernate.shards.session.SetSessionOnRequiresSessionEventTest;
-import org.hibernate.shards.session.ShardedSessionFactoryImplTest;
-import org.hibernate.shards.session.ShardedSessionImplTest;
-import org.hibernate.shards.strategy.access.ParallelShardAccessStrategyTest;
-import org.hibernate.shards.strategy.access.ParallelShardOperationCallableTest;
-import org.hibernate.shards.strategy.access.StartAwareFutureTaskTest;
-import org.hibernate.shards.strategy.exit.AggregateExitOperationTest;
-import org.hibernate.shards.strategy.exit.ExitOperationUtilsTest;
-import org.hibernate.shards.strategy.exit.FirstResultExitOperationTest;
-import org.hibernate.shards.strategy.exit.MaxResultExitOperationTest;
-import org.hibernate.shards.strategy.exit.OrderExitOperationTest;
-import org.hibernate.shards.strategy.exit.ProjectionExitOperationFactoryTest;
-import org.hibernate.shards.strategy.exit.RowCountExitOperationTest;
-import org.hibernate.shards.strategy.selection.LoadBalancedShardSelectionStrategyTest;
-import org.hibernate.shards.transaction.ShardedTransactionImplTest;
-import org.hibernate.shards.util.Lists;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
 /**
  * This class is really just here for IDE users who want to run their tests
- * directly instead of through Ant.  Almost guaranteed to fall out of
- * synch.
- * TODO(maxr) destroy
+ * directly instead of through Ant.
  *
  * @author Max Ross <maxr at google.com>
  */
 public class AllTests extends TestSuite {
 
-  public static final List<Class<? extends TestCase>> CLASSES = Collections.unmodifiableList(buildListOfClasses());
 
-  private static List<Class<? extends TestCase>> buildListOfClasses() {
-    Set<Class<? extends TestCase>> classes = new HashSet<Class<? extends TestCase>>();
-    add(classes, BaseHasShardIdListTest.class);
-    add(classes, ShardImplTest.class);
-    add(classes, SetBigDecimalEventTest.class);
-    add(classes, SetBigIntegerEventTest.class);
-    add(classes, SetBinaryEventTest.class);
-    add(classes, SetBooleanEventTest.class);
-    add(classes, SetByteEventTest.class);
-    add(classes, org.hibernate.shards.query.SetCacheModeEventTest.class);
-    add(classes, org.hibernate.shards.query.SetCacheRegionEventTest.class);
-    add(classes, org.hibernate.shards.query.SetCacheableEventTest.class);
-    add(classes, SetCalendarDateEventTest.class);
-    add(classes, SetCalendarEventTest.class);
-    add(classes, SetCharacterEventTest.class);
-    add(classes, SetSessionOnRequiresSessionEventTest.class);
-    add(classes, org.hibernate.shards.query.SetCommentEventTest.class);
-    add(classes, SetDateEventTest.class);
-    add(classes, SetDoubleEventTest.class);
-    add(classes, SetEntityEventTest.class);
-    add(classes, org.hibernate.shards.query.SetFetchSizeEventTest.class);
-    add(classes, org.hibernate.shards.query.SetFirstResultEventTest.class);
-    add(classes, SetFloatEventTest.class);
-    add(classes, org.hibernate.shards.query.SetFlushModeEventTest.class);
-    add(classes, SetIntegerEventTest.class);
-    add(classes, SetLocaleEventTest.class);
-    add(classes, org.hibernate.shards.query.SetLockModeEventTest.class);
-    add(classes, SetLongEventTest.class);
-    add(classes, org.hibernate.shards.query.SetMaxResultsEventTest.class);
-    add(classes, SetParameterEventTest.class);
-    add(classes, SetParameterListEventTest.class);
-    add(classes, SetParametersEventTest.class);
-    add(classes, SetPropertiesEventTest.class);
-    add(classes, SetReadOnlyEventTest.class);
-    add(classes, org.hibernate.shards.query.SetResultTransformerEventTest.class);
-    add(classes, SetSerializableEventTest.class);
-    add(classes, SetShortEventTest.class);
-    add(classes, SetStringEventTest.class);
-    add(classes, SetTextEventTest.class);
-    add(classes, SetTimeEventTest.class);
-    add(classes, org.hibernate.shards.query.SetTimeoutEventTest.class);
-    add(classes, SetTimestampEventTest.class);
-    add(classes, ShardedConfigurationTest.class);
-    add(classes, ShardedSessionFactoryImplTest.class);
-    add(classes, AddCriterionEventTest.class);
-    add(classes, AddOrderEventTest.class);
-    add(classes, CreateAliasEventTest.class);
-    add(classes, CriteriaFactoryImplTest.class);
-    add(classes, org.hibernate.shards.criteria.SetCacheModeEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetCacheRegionEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetCacheableEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetCommentEventTest.class);
-    add(classes, SetFetchModeEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetFetchSizeEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetFirstResultEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetFlushModeEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetLockModeEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetMaxResultsEventTest.class);
-    add(classes, SetProjectionEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetResultTransformerEventTest.class);
-    add(classes, org.hibernate.shards.criteria.SetTimeoutEventTest.class);
-    add(classes, CreateSubcriteriaEventTest.class);
-    add(classes, SubcriteriaFactoryImplTest.class);
-    add(classes, ShardedSubcriteriaImplTest.class);
-    add(classes, ShardedUUIDGeneratorTest.class);
-    add(classes, ShardedTableHiLoGeneratorTest.class);
-    add(classes, MemoryLeakTest.class);
-    add(classes, RoundRobinShardLoadBalancerTest.class);
-    add(classes, DisableFilterOpenSessionEventTest.class);
-    add(classes, EnableFilterOpenSessionEventTest.class);
-    add(classes, SetCacheModeOpenSessionEventTest.class);
-    add(classes, SetFlushModeOpenSessionEventTest.class);
-    add(classes, SetReadOnlyOpenSessionEventTest.class);
-    add(classes, ShardedSessionImplTest.class);
-    add(classes, CrossShardRelationshipDetectingInterceptorDecoratorTest.class);
-    add(classes, CrossShardRelationshipDetectingInterceptorTest.class);
-    add(classes, ParallelShardAccessStrategyTest.class);
-    add(classes, StartAwareFutureTaskTest.class);
-    add(classes, ParallelShardOperationCallableTest.class);
-    add(classes, AggregateExitOperationTest.class);
-    add(classes, FirstResultExitOperationTest.class);
-    add(classes, MaxResultExitOperationTest.class);
-    add(classes, ProjectionExitOperationFactoryTest.class);
-    add(classes, RowCountExitOperationTest.class);
-    add(classes, ExitOperationUtilsTest.class);
-    add(classes, OrderExitOperationTest.class);
-    add(classes, LoadBalancedShardSelectionStrategyTest.class);
-    add(classes, ShardedTransactionImplTest.class);
-    add(classes, InstanceShardStrategyImplTest.class);
-
-    return Lists.newArrayList(classes);
-  }
-
-  private static void add(Set<Class<? extends TestCase>> classes,
-      Class<? extends TestCase> aClass) {
-    if(!classes.add(aClass)) {
-      throw new RuntimeException("Class " + aClass.getName() + " is listed more than once.");
-    }
-  }
-
   public static Test suite() {
     TestSuite suite = new TestSuite();
-    for(Class<? extends TestCase> testClass : CLASSES) {
+    for(Class<? extends TestCase> testClass : NonPermutedTests.CLASSES) {
       suite.addTestSuite(testClass);
     }
     suite.addTest(PermutedIntegrationTests.suite());

Added: trunk/HibernateExt/shards/src/test/org/hibernate/shards/NonPermutedTests.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/NonPermutedTests.java	                        (rev 0)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/NonPermutedTests.java	2007-04-17 07:32:39 UTC (rev 11411)
@@ -0,0 +1,135 @@
+/**
+ * Copyright (C) 2007 Google Inc.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+package org.hibernate.shards;
+
+import junit.framework.TestCase;
+
+import org.hibernate.shards.util.Lists;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Generated using NonPermutedTestsGenerator
+ *
+ * @author maxr at google.com (Max Ross)
+ */
+public final class NonPermutedTests {
+  private NonPermutedTests() {}
+
+  public static final List<Class<? extends TestCase>> CLASSES = Collections.unmodifiableList(buildListOfClasses());
+
+  private static List<Class<? extends TestCase>> buildListOfClasses() {
+    List<Class<? extends TestCase>> classes = Lists.newArrayList();
+
+    // begin generated code
+    classes.add(org.hibernate.shards.BaseHasShardIdListTest.class);
+    classes.add(org.hibernate.shards.InstanceShardStrategyImplTest.class);
+    classes.add(org.hibernate.shards.ShardImplTest.class);
+    classes.add(org.hibernate.shards.ShardedConfigurationTest.class);
+    classes.add(org.hibernate.shards.criteria.AddCriterionEventTest.class);
+    classes.add(org.hibernate.shards.criteria.AddOrderEventTest.class);
+    classes.add(org.hibernate.shards.criteria.CreateAliasEventTest.class);
+    classes.add(org.hibernate.shards.criteria.CreateSubcriteriaEventTest.class);
+    classes.add(org.hibernate.shards.criteria.CriteriaFactoryImplTest.class);
+    classes.add(org.hibernate.shards.criteria.SetCacheModeEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetCacheRegionEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetCacheableEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetCommentEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetFetchModeEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetFetchSizeEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetFirstResultEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetFlushModeEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetLockModeEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetMaxResultsEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetProjectionEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetResultTransformerEventTest.class);
+    classes.add(org.hibernate.shards.criteria.SetTimeoutEventTest.class);
+    classes.add(org.hibernate.shards.criteria.ShardedSubcriteriaImplTest.class);
+    classes.add(org.hibernate.shards.criteria.SubcriteriaFactoryImplTest.class);
+    classes.add(org.hibernate.shards.id.ShardedTableHiLoGeneratorTest.class);
+    classes.add(org.hibernate.shards.id.ShardedUUIDGeneratorTest.class);
+    classes.add(org.hibernate.shards.integration.model.MemoryLeakTest.class);
+    classes.add(org.hibernate.shards.loadbalance.RoundRobinShardLoadBalancerTest.class);
+    classes.add(org.hibernate.shards.query.SetBigDecimalEventTest.class);
+    classes.add(org.hibernate.shards.query.SetBigIntegerEventTest.class);
+    classes.add(org.hibernate.shards.query.SetBinaryEventTest.class);
+    classes.add(org.hibernate.shards.query.SetBooleanEventTest.class);
+    classes.add(org.hibernate.shards.query.SetByteEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCacheModeEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCacheRegionEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCacheableEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCalendarDateEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCalendarEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCharacterEventTest.class);
+    classes.add(org.hibernate.shards.query.SetCommentEventTest.class);
+    classes.add(org.hibernate.shards.query.SetDateEventTest.class);
+    classes.add(org.hibernate.shards.query.SetDoubleEventTest.class);
+    classes.add(org.hibernate.shards.query.SetEntityEventTest.class);
+    classes.add(org.hibernate.shards.query.SetFetchSizeEventTest.class);
+    classes.add(org.hibernate.shards.query.SetFirstResultEventTest.class);
+    classes.add(org.hibernate.shards.query.SetFloatEventTest.class);
+    classes.add(org.hibernate.shards.query.SetFlushModeEventTest.class);
+    classes.add(org.hibernate.shards.query.SetIntegerEventTest.class);
+    classes.add(org.hibernate.shards.query.SetLocaleEventTest.class);
+    classes.add(org.hibernate.shards.query.SetLockModeEventTest.class);
+    classes.add(org.hibernate.shards.query.SetLongEventTest.class);
+    classes.add(org.hibernate.shards.query.SetMaxResultsEventTest.class);
+    classes.add(org.hibernate.shards.query.SetParameterEventTest.class);
+    classes.add(org.hibernate.shards.query.SetParameterListEventTest.class);
+    classes.add(org.hibernate.shards.query.SetParametersEventTest.class);
+    classes.add(org.hibernate.shards.query.SetPropertiesEventTest.class);
+    classes.add(org.hibernate.shards.query.SetReadOnlyEventTest.class);
+    classes.add(org.hibernate.shards.query.SetResultTransformerEventTest.class);
+    classes.add(org.hibernate.shards.query.SetSerializableEventTest.class);
+    classes.add(org.hibernate.shards.query.SetShortEventTest.class);
+    classes.add(org.hibernate.shards.query.SetStringEventTest.class);
+    classes.add(org.hibernate.shards.query.SetTextEventTest.class);
+    classes.add(org.hibernate.shards.query.SetTimeEventTest.class);
+    classes.add(org.hibernate.shards.query.SetTimeoutEventTest.class);
+    classes.add(org.hibernate.shards.query.SetTimestampEventTest.class);
+    classes.add(org.hibernate.shards.session.CrossShardRelationshipDetectingInterceptorDecoratorTest.class);
+    classes.add(org.hibernate.shards.session.CrossShardRelationshipDetectingInterceptorTest.class);
+    classes.add(org.hibernate.shards.session.DisableFilterOpenSessionEventTest.class);
+    classes.add(org.hibernate.shards.session.EnableFilterOpenSessionEventTest.class);
+    classes.add(org.hibernate.shards.session.SetCacheModeOpenSessionEventTest.class);
+    classes.add(org.hibernate.shards.session.SetFlushModeOpenSessionEventTest.class);
+    classes.add(org.hibernate.shards.session.SetReadOnlyOpenSessionEventTest.class);
+    classes.add(org.hibernate.shards.session.SetSessionOnRequiresSessionEventTest.class);
+    classes.add(org.hibernate.shards.session.ShardedSessionFactoryImplTest.class);
+    classes.add(org.hibernate.shards.session.ShardedSessionImplTest.class);
+    classes.add(org.hibernate.shards.strategy.access.ParallelShardAccessStrategyTest.class);
+    classes.add(org.hibernate.shards.strategy.access.ParallelShardOperationCallableTest.class);
+    classes.add(org.hibernate.shards.strategy.access.StartAwareFutureTaskTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.AggregateExitOperationTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.ExitOperationUtilsTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.FirstNonNullResultExitStrategyTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.FirstResultExitOperationTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.MaxResultExitOperationTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.OrderExitOperationTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.ProjectionExitOperationFactoryTest.class);
+    classes.add(org.hibernate.shards.strategy.exit.RowCountExitOperationTest.class);
+    classes.add(org.hibernate.shards.strategy.selection.LoadBalancedShardSelectionStrategyTest.class);
+    classes.add(org.hibernate.shards.transaction.ShardedTransactionImplTest.class);
+
+    // end generated code
+
+    return classes;
+  }
+
+}

Added: trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTests.java.template
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTests.java.template	                        (rev 0)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTests.java.template	2007-04-17 07:32:39 UTC (rev 11411)
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2007 Google Inc.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+package org.hibernate.shards;
+
+import junit.framework.TestCase;
+
+import org.hibernate.shards.util.Sets;
+import org.hibernate.shards.util.Lists;
+import java.util.List;
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * Generated using NonPermutedTestsGenerator
+ *
+ * @author maxr at google.com (Max Ross)
+ */
+public final class NonPermutedTests {
+  private NonPermutedTests() {}
+
+  public static final List<Class<? extends TestCase>> CLASSES = Collections.unmodifiableList(buildListOfClasses());
+
+  private static List<Class<? extends TestCase>> buildListOfClasses() {
+    List<Class<? extends TestCase>> classes = Lists.newArrayList();
+
+    // begin generated code
+@@@CLASSES@@@
+    // end generated code
+
+    return classes;
+  }
+
+}

Added: trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTestsScraper.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTestsScraper.java	                        (rev 0)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/util/NonPermutedTestsScraper.java	2007-04-17 07:32:39 UTC (rev 11411)
@@ -0,0 +1,76 @@
+/**
+ * Copyright (C) 2007 Google Inc.
+ *
+ * This library 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 library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+package org.hibernate.shards.util;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.optional.junit.JUnitTask;
+import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+/**
+ * Extension to the Junit ant task that, instead of actually executing tests,
+ * generates code that adds all the tests that would have been executed to
+ * a list of classes.  Used in conjunction with
+ * org.hibernate.shards.util.NonPermutedTests.java.template
+ *
+ * @author maxr at google.com (Max Ross)
+ */
+public class NonPermutedTestsScraper extends JUnitTask {
+
+  private String propertyToSet;
+
+  public NonPermutedTestsScraper() throws Exception {
+  }
+
+  public void setPropertyToSet(String propertyToSet) {
+    this.propertyToSet = propertyToSet;
+  }
+
+  public void execute() throws BuildException {
+    List<String> testClasses = scrapeNonPermutedTestClasses();
+    String testClassCode = testClassesToCode(testClasses);
+    getProject().setProperty(propertyToSet, testClassCode);
+  }
+
+  private String testClassesToCode(List<String> testClasses) {
+    StringBuilder sb = new StringBuilder();
+    for(String testClass : testClasses) {
+      sb.append("    classes.add(").append(testClass).append(".class);\n");
+    }
+    return sb.toString();
+  }
+
+  private List<String> scrapeNonPermutedTestClasses() {
+    List<String> testClasses = new ArrayList<String>();
+
+    for(Enumeration iTests = getIndividualTests(); iTests.hasMoreElements(); ) {
+      Object obj = iTests.nextElement();
+      if(obj instanceof JUnitTest) {
+        JUnitTest test = (JUnitTest) obj;
+        if(test.getName().endsWith("Test") &&
+            !test.getName().endsWith("PermutedIntegrationTest")) {
+          testClasses.add(test.getName());
+        }
+      }
+    }
+    return testClasses;
+  }
+}




More information about the hibernate-commits mailing list