diff --git a/spring-aspects/src/test/java/org/springframework/scheduling/aspectj/AnnotationAsyncExecutionAspectTests.java b/spring-aspects/src/test/java/org/springframework/scheduling/aspectj/AnnotationAsyncExecutionAspectTests.java index 6bfe60205ea..b95ee6b8078 100644 --- a/spring-aspects/src/test/java/org/springframework/scheduling/aspectj/AnnotationAsyncExecutionAspectTests.java +++ b/spring-aspects/src/test/java/org/springframework/scheduling/aspectj/AnnotationAsyncExecutionAspectTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,10 +29,11 @@ import org.springframework.core.task.SimpleAsyncTaskExecutor; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.AsyncResult; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; -import static org.hamcrest.CoreMatchers.not; -import static org.hamcrest.Matchers.startsWith; - +import static org.hamcrest.CoreMatchers.*; +import static org.hamcrest.Matchers.not; import static org.junit.Assert.*; /** @@ -54,6 +55,8 @@ public class AnnotationAsyncExecutionAspectTests { @Test public void asyncMethodGetsRoutedAsynchronously() { + Assume.group(TestGroup.PERFORMANCE); + ClassWithoutAsyncAnnotation obj = new ClassWithoutAsyncAnnotation(); obj.incrementAsync(); executor.waitForCompletion(); @@ -84,6 +87,8 @@ public class AnnotationAsyncExecutionAspectTests { @Test public void voidMethodInAsyncClassGetsRoutedAsynchronously() { + Assume.group(TestGroup.PERFORMANCE); + ClassWithAsyncAnnotation obj = new ClassWithAsyncAnnotation(); obj.increment(); executor.waitForCompletion(); diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/ConcurrentBeanFactoryTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/ConcurrentBeanFactoryTests.java index 96eeb3b01f8..aae1e1073a1 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/ConcurrentBeanFactoryTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/ConcurrentBeanFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,6 @@ package org.springframework.beans.factory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import static test.util.TestResourceUtils.qualifiedResource; - import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -31,14 +27,21 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.junit.Before; import org.junit.Test; + import org.springframework.beans.PropertyEditorRegistrar; import org.springframework.beans.PropertyEditorRegistry; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.core.io.Resource; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.junit.Assert.*; +import static test.util.TestResourceUtils.*; /** * @author Guillaume Poirier @@ -72,6 +75,8 @@ public final class ConcurrentBeanFactoryTests { @Before public void setUp() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); new XmlBeanDefinitionReader(factory).loadBeanDefinitions(CONTEXT); factory.addPropertyEditorRegistrar(new PropertyEditorRegistrar() { diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java index b3516282d43..655a5a0e0fa 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,6 +44,8 @@ import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.beans.propertyeditors.CustomNumberEditor; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.UrlResource; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import test.beans.GenericBean; import test.beans.GenericIntegerBean; @@ -641,6 +643,8 @@ public class BeanFactoryGenericsTests { @Test public void testSetBean() throws Exception { + Assume.group(TestGroup.LONG_RUNNING); + DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); new XmlBeanDefinitionReader(bf).loadBeanDefinitions( new ClassPathResource("genericBeanTests.xml", getClass())); diff --git a/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java b/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java index ef036076581..481466d4281 100644 --- a/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,18 +18,28 @@ package org.springframework.beans.support; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; + +import org.junit.Test; + +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.junit.Assert.*; import test.beans.TestBean; /** * @author Juergen Hoeller * @author Jean-Pierre PAWLAK + * @author Chris Beams * @since 20.05.2003 */ -public class PagedListHolderTests extends TestCase { +public class PagedListHolderTests { + @Test public void testPagedListHolder() { + Assume.group(TestGroup.LONG_RUNNING); + TestBean tb1 = new TestBean(); tb1.setName("eva"); tb1.setAge(25); diff --git a/spring-context-support/src/test/java/org/springframework/cache/ehcache/EhCacheCacheTests.java b/spring-context-support/src/test/java/org/springframework/cache/ehcache/EhCacheCacheTests.java index 5cb15498324..63fd1546a5d 100644 --- a/spring-context-support/src/test/java/org/springframework/cache/ehcache/EhCacheCacheTests.java +++ b/spring-context-support/src/test/java/org/springframework/cache/ehcache/EhCacheCacheTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2012 the original author or authors. + * Copyright 2010-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,10 +20,13 @@ import net.sf.ehcache.CacheManager; import net.sf.ehcache.Ehcache; import net.sf.ehcache.Element; import net.sf.ehcache.config.CacheConfiguration; + import org.junit.Before; import org.junit.Test; import org.springframework.cache.Cache; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import static org.junit.Assert.*; @@ -95,6 +98,7 @@ public class EhCacheCacheTests { @Test public void testExpiredElements() throws Exception { + Assume.group(TestGroup.LONG_RUNNING); String key = "brancusi"; String value = "constantin"; Element brancusi = new Element(key, value); diff --git a/spring-context-support/src/test/java/org/springframework/scheduling/quartz/QuartzSupportTests.java b/spring-context-support/src/test/java/org/springframework/scheduling/quartz/QuartzSupportTests.java index dfe6d48aa70..79c1dfba7f7 100644 --- a/spring-context-support/src/test/java/org/springframework/scheduling/quartz/QuartzSupportTests.java +++ b/spring-context-support/src/test/java/org/springframework/scheduling/quartz/QuartzSupportTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,7 @@ import java.util.Map; import javax.sql.DataSource; +import org.junit.Ignore; import org.junit.Test; import org.quartz.CronTrigger; import org.quartz.Job; @@ -382,15 +383,19 @@ public class QuartzSupportTests { verify(scheduler).shutdown(false); } - /*public void testMethodInvocationWithConcurrency() throws Exception { + @Ignore @Test + public void testMethodInvocationWithConcurrency() throws Exception { + Assume.group(TestGroup.PERFORMANCE); methodInvokingConcurrency(true); - }*/ + } // We can't test both since Quartz somehow seems to keep things in memory // enable both and one of them will fail (order doesn't matter). - /*public void testMethodInvocationWithoutConcurrency() throws Exception { + @Ignore @Test + public void testMethodInvocationWithoutConcurrency() throws Exception { + Assume.group(TestGroup.PERFORMANCE); methodInvokingConcurrency(false); - }*/ + } private void methodInvokingConcurrency(boolean concurrent) throws Exception { // Test the concurrency flag. @@ -637,6 +642,8 @@ public class QuartzSupportTests { @Test public void testSchedulerWithTaskExecutor() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + CountingTaskExecutor taskExecutor = new CountingTaskExecutor(); DummyJob.count = 0; @@ -668,6 +675,8 @@ public class QuartzSupportTests { @Test public void testSchedulerWithRunnable() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + DummyRunnable.count = 0; JobDetail jobDetail = new JobDetailBean(); @@ -696,6 +705,8 @@ public class QuartzSupportTests { @Test public void testSchedulerWithQuartzJobBean() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + DummyJob.param = 0; DummyJob.count = 0; @@ -727,6 +738,8 @@ public class QuartzSupportTests { @Test public void testSchedulerWithSpringBeanJobFactory() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + DummyJob.param = 0; DummyJob.count = 0; @@ -760,6 +773,7 @@ public class QuartzSupportTests { @Test public void testSchedulerWithSpringBeanJobFactoryAndParamMismatchNotIgnored() throws Exception { + Assume.group(TestGroup.PERFORMANCE); DummyJob.param = 0; DummyJob.count = 0; @@ -794,6 +808,8 @@ public class QuartzSupportTests { @Test public void testSchedulerWithSpringBeanJobFactoryAndRunnable() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + DummyRunnable.param = 0; DummyRunnable.count = 0; @@ -826,6 +842,7 @@ public class QuartzSupportTests { @Test public void testSchedulerWithSpringBeanJobFactoryAndQuartzJobBean() throws Exception { + Assume.group(TestGroup.PERFORMANCE); DummyJobBean.param = 0; DummyJobBean.count = 0; @@ -858,6 +875,7 @@ public class QuartzSupportTests { @Test public void testSchedulerWithSpringBeanJobFactoryAndJobSchedulingData() throws Exception { + Assume.group(TestGroup.PERFORMANCE); DummyJob.param = 0; DummyJob.count = 0; @@ -896,6 +914,7 @@ public class QuartzSupportTests { @Test public void testWithTwoAnonymousMethodInvokingJobDetailFactoryBeans() throws InterruptedException { + Assume.group(TestGroup.PERFORMANCE); ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/org/springframework/scheduling/quartz/multipleAnonymousMethodInvokingJobDetailFB.xml"); Thread.sleep(3000); @@ -915,6 +934,7 @@ public class QuartzSupportTests { @Test public void testSchedulerAccessorBean() throws InterruptedException { + Assume.group(TestGroup.PERFORMANCE); ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/org/springframework/scheduling/quartz/schedulerAccessorBean.xml"); Thread.sleep(3000); diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/DeclareParentsTests.java b/spring-context/src/test/java/org/springframework/aop/aspectj/DeclareParentsTests.java index 59a3136fdce..059aae0b0f6 100644 --- a/spring-context/src/test/java/org/springframework/aop/aspectj/DeclareParentsTests.java +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/DeclareParentsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ package org.springframework.aop.aspectj; -import static org.junit.Assert.*; - import org.junit.Before; import org.junit.Test; import org.springframework.aop.framework.Advised; @@ -26,9 +24,13 @@ import org.springframework.beans.ITestBean; import org.springframework.beans.TestBean; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import test.mixin.Lockable; +import static org.junit.Assert.*; + /** * @author Rod Johnson * @author Chris Beams @@ -63,6 +65,8 @@ public final class DeclareParentsTests { // on the introduction, in which case this would not be a problem. @Test public void testLockingWorks() { + Assume.group(TestGroup.LONG_RUNNING); + Object introductionObject = ctx.getBean("introduction"); assertFalse("Introduction should not be proxied", AopUtils.isAopProxy(introductionObject)); diff --git a/spring-context/src/test/java/org/springframework/context/support/DefaultLifecycleProcessorTests.java b/spring-context/src/test/java/org/springframework/context/support/DefaultLifecycleProcessorTests.java index 4f4e8860e13..86c960f82f6 100644 --- a/spring-context/src/test/java/org/springframework/context/support/DefaultLifecycleProcessorTests.java +++ b/spring-context/src/test/java/org/springframework/context/support/DefaultLifecycleProcessorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ package org.springframework.context.support; import java.util.concurrent.CopyOnWriteArrayList; import org.junit.Test; - import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.config.BeanDefinition; @@ -27,6 +26,8 @@ import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.context.Lifecycle; import org.springframework.context.LifecycleProcessor; import org.springframework.context.SmartLifecycle; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import static org.junit.Assert.*; @@ -251,6 +252,8 @@ public class DefaultLifecycleProcessorTests { @Test public void smartLifecycleGroupShutdown() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + CopyOnWriteArrayList stoppedBeans = new CopyOnWriteArrayList(); TestSmartLifecycleBean bean1 = TestSmartLifecycleBean.forShutdownTests(1, 300, stoppedBeans); TestSmartLifecycleBean bean2 = TestSmartLifecycleBean.forShutdownTests(3, 100, stoppedBeans); @@ -280,6 +283,8 @@ public class DefaultLifecycleProcessorTests { @Test public void singleSmartLifecycleShutdown() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + CopyOnWriteArrayList stoppedBeans = new CopyOnWriteArrayList(); TestSmartLifecycleBean bean = TestSmartLifecycleBean.forShutdownTests(99, 300, stoppedBeans); StaticApplicationContext context = new StaticApplicationContext(); @@ -386,6 +391,8 @@ public class DefaultLifecycleProcessorTests { @Test public void dependentShutdownFirstEvenIfItsPhaseIsLower() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + CopyOnWriteArrayList stoppedBeans = new CopyOnWriteArrayList(); TestSmartLifecycleBean beanMin = TestSmartLifecycleBean.forShutdownTests(Integer.MIN_VALUE, 100, stoppedBeans); TestSmartLifecycleBean bean1 = TestSmartLifecycleBean.forShutdownTests(1, 200, stoppedBeans); @@ -458,6 +465,8 @@ public class DefaultLifecycleProcessorTests { @Test public void dependentShutdownFirstAndIsSmartLifecycle() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + CopyOnWriteArrayList stoppedBeans = new CopyOnWriteArrayList(); TestSmartLifecycleBean beanMin = TestSmartLifecycleBean.forShutdownTests(Integer.MIN_VALUE, 400, stoppedBeans); TestSmartLifecycleBean beanNegative = TestSmartLifecycleBean.forShutdownTests(-99, 100, stoppedBeans); @@ -521,6 +530,8 @@ public class DefaultLifecycleProcessorTests { @Test public void dependentShutdownFirstButNotSmartLifecycle() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + CopyOnWriteArrayList stoppedBeans = new CopyOnWriteArrayList(); TestSmartLifecycleBean bean1 = TestSmartLifecycleBean.forShutdownTests(1, 200, stoppedBeans); TestLifecycleBean simpleBean = TestLifecycleBean.forShutdownTests(stoppedBeans); diff --git a/spring-context/src/test/java/org/springframework/scheduling/annotation/AsyncExecutionTests.java b/spring-context/src/test/java/org/springframework/scheduling/annotation/AsyncExecutionTests.java index a0985345de8..f679713eb96 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/annotation/AsyncExecutionTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/annotation/AsyncExecutionTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.concurrent.Future; +import org.junit.Before; import org.junit.Test; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; @@ -28,6 +29,8 @@ import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.support.GenericApplicationContext; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import static org.junit.Assert.*; @@ -43,6 +46,10 @@ public class AsyncExecutionTests { private static int listenerConstructed = 0; + @Before + public void setUp() { + Assume.group(TestGroup.PERFORMANCE); + } @Test public void asyncMethods() throws Exception { diff --git a/spring-context/src/test/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessorTests.java b/spring-context/src/test/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessorTests.java index 4bde3261190..e100da3d47d 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessorTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import java.util.List; import java.util.Properties; import org.junit.Test; - import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.BeanCreationException; import org.springframework.beans.factory.config.BeanDefinition; @@ -37,6 +36,8 @@ import org.springframework.scheduling.config.CronTask; import org.springframework.scheduling.config.IntervalTask; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import org.springframework.scheduling.support.ScheduledMethodRunnable; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import static org.junit.Assert.*; @@ -130,6 +131,8 @@ public class ScheduledAnnotationBeanPostProcessorTests { @Test public void cronTask() throws InterruptedException { + Assume.group(TestGroup.LONG_RUNNING); + StaticApplicationContext context = new StaticApplicationContext(); BeanDefinition processorDefinition = new RootBeanDefinition(ScheduledAnnotationBeanPostProcessor.class); BeanDefinition targetDefinition = new RootBeanDefinition( diff --git a/spring-context/src/test/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBeanTests.java b/spring-context/src/test/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBeanTests.java index ee40acf24ad..4f5b69735ec 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBeanTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBeanTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,15 +16,6 @@ package org.springframework.scheduling.concurrent; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; -import static org.mockito.BDDMockito.willThrow; -import static org.mockito.Mockito.atLeast; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; - import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ThreadFactory; @@ -32,6 +23,12 @@ import java.util.concurrent.ThreadFactory; import org.junit.Ignore; import org.junit.Test; import org.springframework.core.task.NoOpRunnable; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.junit.Assert.*; +import static org.mockito.BDDMockito.*; +import static org.mockito.Mockito.*; /** * @author Rick Evans @@ -97,6 +94,8 @@ public class ScheduledExecutorFactoryBeanTests { @Test public void testOneTimeExecutionIsSetUpAndFiresCorrectly() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + Runnable runnable = mock(Runnable.class); ScheduledExecutorFactoryBean factory = new ScheduledExecutorFactoryBean(); @@ -112,6 +111,8 @@ public class ScheduledExecutorFactoryBeanTests { @Test public void testFixedRepeatedExecutionIsSetUpAndFiresCorrectly() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + Runnable runnable = mock(Runnable.class); ScheduledExecutorTask task = new ScheduledExecutorTask(runnable); @@ -129,6 +130,8 @@ public class ScheduledExecutorFactoryBeanTests { @Test public void testFixedRepeatedExecutionIsSetUpAndFiresCorrectlyAfterException() throws Exception { + Assume.group(TestGroup.PERFORMANCE); + Runnable runnable = mock(Runnable.class); willThrow(new IllegalStateException()).given(runnable).run(); diff --git a/spring-context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java b/spring-context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java index 86214124a8e..c98d2be9fb0 100644 --- a/spring-context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java +++ b/spring-context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,6 +32,7 @@ import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Map; +import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.springframework.aop.support.AopUtils; @@ -53,6 +54,8 @@ import org.springframework.scripting.ScriptCompilationException; import org.springframework.scripting.ScriptSource; import org.springframework.scripting.support.ScriptFactoryPostProcessor; import org.springframework.stereotype.Component; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; /** * @author Rob Harrop @@ -64,6 +67,11 @@ import org.springframework.stereotype.Component; */ public class GroovyScriptFactoryTests { + @Before + public void setUp() { + Assume.group(TestGroup.LONG_RUNNING); + } + @Test public void testStaticScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); @@ -396,6 +404,8 @@ public class GroovyScriptFactoryTests { @Test public void testAnonymousScriptDetected() throws Exception { + Assume.group(TestGroup.LONG_RUNNING); + ApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-with-xsd.xml", getClass()); Map beans = ctx.getBeansOfType(Messenger.class); assertEquals(4, beans.size()); diff --git a/spring-context/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java b/spring-context/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java index dd338997f0f..102df4b7d65 100644 --- a/spring-context/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java +++ b/spring-context/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,8 +18,8 @@ package org.springframework.scripting.jruby; import java.util.Map; -import junit.framework.TestCase; - +import org.junit.Before; +import org.junit.Test; import org.springframework.aop.support.AopUtils; import org.springframework.aop.target.dynamic.Refreshable; import org.springframework.beans.TestBean; @@ -31,13 +31,18 @@ import org.springframework.scripting.ConfigurableMessenger; import org.springframework.scripting.Messenger; import org.springframework.scripting.ScriptCompilationException; import org.springframework.scripting.TestBeanAwareMessenger; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.junit.Assert.*; /** * @author Rob Harrop * @author Rick Evans * @author Juergen Hoeller + * @author Chris Beams */ -public class JRubyScriptFactoryTests extends TestCase { +public class JRubyScriptFactoryTests { private static final String RUBY_SCRIPT_SOURCE_LOCATOR = "inline:require 'java'\n" + @@ -45,7 +50,12 @@ public class JRubyScriptFactoryTests extends TestCase { "end\n" + "RubyBar.new"; + @Before + public void setUp() { + Assume.group(TestGroup.LONG_RUNNING); + } + @Test public void testStaticScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jrubyContext.xml", getClass()); Calculator calc = (Calculator) ctx.getBean("calculator"); @@ -64,6 +74,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals("Message is incorrect", desiredMessage, messenger.getMessage()); } + @Test public void testNonStaticScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jrubyRefreshableContext.xml", getClass()); Messenger messenger = (Messenger) ctx.getBean("messenger"); @@ -81,6 +92,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals("Incorrect refresh count", 2, refreshable.getRefreshCount()); } + @Test public void testScriptCompilationException() throws Exception { try { new ClassPathXmlApplicationContext("jrubyBrokenContext.xml", getClass()); @@ -91,6 +103,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithNullScriptSourceLocator() throws Exception { try { new JRubyScriptFactory(null, new Class[]{Messenger.class}); @@ -100,6 +113,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithEmptyScriptSourceLocator() throws Exception { try { new JRubyScriptFactory("", new Class[]{Messenger.class}); @@ -109,6 +123,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithWhitespacedScriptSourceLocator() throws Exception { try { new JRubyScriptFactory("\n ", new Class[]{Messenger.class}); @@ -118,6 +133,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithNullScriptInterfacesArray() throws Exception { try { new JRubyScriptFactory(RUBY_SCRIPT_SOURCE_LOCATOR, null); @@ -127,6 +143,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithEmptyScriptInterfacesArray() throws Exception { try { new JRubyScriptFactory(RUBY_SCRIPT_SOURCE_LOCATOR, new Class[]{}); @@ -136,6 +153,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testResourceScriptFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jruby-with-xsd.xml", getClass()); TestBean testBean = (TestBean) ctx.getBean("testBean"); @@ -151,6 +169,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals(testBean, messengerByName.getTestBean()); } + @Test public void testPrototypeScriptFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jruby-with-xsd.xml", getClass()); ConfigurableMessenger messenger = (ConfigurableMessenger) ctx.getBean("messengerPrototype"); @@ -166,6 +185,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals("Byebye World!", messenger2.getMessage()); } + @Test public void testInlineScriptFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jruby-with-xsd.xml", getClass()); Calculator calculator = (Calculator) ctx.getBean("calculator"); @@ -173,6 +193,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertFalse(calculator instanceof Refreshable); } + @Test public void testRefreshableFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jruby-with-xsd.xml", getClass()); Messenger messenger = (Messenger) ctx.getBean("refreshableMessenger"); @@ -190,6 +211,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals(0, calc.add(2, -2)); } + @Test public void testWithComplexArg() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jrubyContext.xml", getClass()); Printer printer = (Printer) ctx.getBean("printer"); @@ -198,6 +220,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals(1, printable.count); } + @Test public void testWithPrimitiveArgsInReturnTypeAndParameters() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jrubyContextForPrimitives.xml", getClass()); PrimitiveAdder adder = (PrimitiveAdder) ctx.getBean("adder"); @@ -211,6 +234,7 @@ public class JRubyScriptFactoryTests extends TestCase { assertEquals('c', adder.echo('c')); } + @Test public void testWithWrapperArgsInReturnTypeAndParameters() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jrubyContextForWrappers.xml", getClass()); WrapperAdder adder = (WrapperAdder) ctx.getBean("adder"); @@ -266,6 +290,7 @@ public class JRubyScriptFactoryTests extends TestCase { } } + @Test public void testAOP() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("jruby-aop.xml", getClass()); Messenger messenger = (Messenger) ctx.getBean("messenger"); diff --git a/spring-context/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java b/spring-context/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java index 17272b825a6..d561ac7e7eb 100644 --- a/spring-context/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java +++ b/spring-context/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,9 @@ package org.springframework.scripting.support; import static org.mockito.Mockito.mock; -import junit.framework.TestCase; + +import org.junit.Before; +import org.junit.Test; import org.springframework.beans.FatalBeanException; import org.springframework.beans.factory.BeanFactory; @@ -28,12 +30,17 @@ import org.springframework.context.support.GenericApplicationContext; import org.springframework.scripting.Messenger; import org.springframework.scripting.ScriptCompilationException; import org.springframework.scripting.groovy.GroovyScriptFactory; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.junit.Assert.*; /** * @author Rick Evans * @author Juergen Hoeller + * @author Chris Beams */ -public class ScriptFactoryPostProcessorTests extends TestCase { +public class ScriptFactoryPostProcessorTests { private static final String MESSAGE_TEXT = "Bingo"; @@ -69,11 +76,17 @@ public class ScriptFactoryPostProcessorTests extends TestCase { " }\n" + "}"; + @Before + public void setUp() { + Assume.group(TestGroup.PERFORMANCE); + } + @Test public void testDoesNothingWhenPostProcessingNonScriptFactoryTypeBeforeInstantiation() throws Exception { assertNull(new ScriptFactoryPostProcessor().postProcessBeforeInstantiation(getClass(), "a.bean")); } + @Test public void testThrowsExceptionIfGivenNonAbstractBeanFactoryImplementation() throws Exception { try { new ScriptFactoryPostProcessor().setBeanFactory(mock(BeanFactory.class)); @@ -83,6 +96,7 @@ public class ScriptFactoryPostProcessorTests extends TestCase { } } + @Test public void testChangeScriptWithRefreshableBeanFunctionality() throws Exception { BeanDefinition processorBeanDefinition = createScriptFactoryPostProcessor(true); BeanDefinition scriptedBeanDefinition = createScriptedGroovyBean(); @@ -103,6 +117,7 @@ public class ScriptFactoryPostProcessorTests extends TestCase { assertEquals(EXPECTED_CHANGED_MESSAGE_TEXT, refreshedMessenger.getMessage()); } + @Test public void testChangeScriptWithNoRefreshableBeanFunctionality() throws Exception { BeanDefinition processorBeanDefinition = createScriptFactoryPostProcessor(false); BeanDefinition scriptedBeanDefinition = createScriptedGroovyBean(); @@ -123,6 +138,7 @@ public class ScriptFactoryPostProcessorTests extends TestCase { MESSAGE_TEXT, refreshedMessenger.getMessage()); } + @Test public void testRefreshedScriptReferencePropagatesToCollaborators() throws Exception { BeanDefinition processorBeanDefinition = createScriptFactoryPostProcessor(true); BeanDefinition scriptedBeanDefinition = createScriptedGroovyBean(); @@ -150,6 +166,7 @@ public class ScriptFactoryPostProcessorTests extends TestCase { assertEquals(EXPECTED_CHANGED_MESSAGE_TEXT, collaborator.getMessage()); } + @Test public void testReferencesAcrossAContainerHierarchy() throws Exception { GenericApplicationContext businessContext = new GenericApplicationContext(); businessContext.registerBeanDefinition("messenger", BeanDefinitionBuilder.rootBeanDefinition(StubMessenger.class).getBeanDefinition()); @@ -165,11 +182,13 @@ public class ScriptFactoryPostProcessorTests extends TestCase { presentationCtx.refresh(); } + @Test public void testScriptHavingAReferenceToAnotherBean() throws Exception { // just tests that the (singleton) script-backed bean is able to be instantiated with references to its collaborators new ClassPathXmlApplicationContext("org/springframework/scripting/support/groovyReferences.xml"); } + @Test public void testForRefreshedScriptHavingErrorPickedUpOnFirstCall() throws Exception { BeanDefinition processorBeanDefinition = createScriptFactoryPostProcessor(true); BeanDefinition scriptedBeanDefinition = createScriptedGroovyBean(); @@ -200,6 +219,7 @@ public class ScriptFactoryPostProcessorTests extends TestCase { } } + @Test public void testPrototypeScriptedBean() throws Exception { GenericApplicationContext ctx = new GenericApplicationContext(); ctx.registerBeanDefinition("messenger", BeanDefinitionBuilder.rootBeanDefinition(StubMessenger.class).getBeanDefinition()); diff --git a/spring-core/src/test/java/org/springframework/core/type/CachingMetadataReaderLeakTest.java b/spring-core/src/test/java/org/springframework/core/type/CachingMetadataReaderLeakTest.java index 963b0d961ac..db0b50242d1 100644 --- a/spring-core/src/test/java/org/springframework/core/type/CachingMetadataReaderLeakTest.java +++ b/spring-core/src/test/java/org/springframework/core/type/CachingMetadataReaderLeakTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,8 @@ import org.springframework.core.io.UrlResource; import org.springframework.core.type.classreading.CachingMetadataReaderFactory; import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReaderFactory; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; /** * Unit test checking the behaviour of {@link CachingMetadataReaderFactory under load. @@ -47,6 +49,8 @@ public class CachingMetadataReaderLeakTest { @Test public void testSignificantLoad() throws Exception { + Assume.group(TestGroup.LONG_RUNNING); + // the biggest public class in the JDK (>60k) URL url = getClass().getResource("/java/awt/Component.class"); assertThat(url, notNullValue()); diff --git a/spring-core/src/test/java/org/springframework/tests/TestGroup.java b/spring-core/src/test/java/org/springframework/tests/TestGroup.java index 638c5b861b5..dcc376eea49 100644 --- a/spring-core/src/test/java/org/springframework/tests/TestGroup.java +++ b/spring-core/src/test/java/org/springframework/tests/TestGroup.java @@ -26,12 +26,23 @@ import java.util.Set; * * @see Assume#group(TestGroup) * @author Phillip Webb + * @author Chris Beams */ public enum TestGroup { /** - * Performance related tests that may take a considerable time to run. + * Tests that take a considerable amount of time to run. Any test lasting longer than + * 500ms should be considered a candidate in order to avoid making the overall test + * suite too slow to run during the normal development cycle. + */ + LONG_RUNNING, + + /** + * Performance-related tests that may fail unpredictably based on CPU profile and load. + * Any test using {@link Thread#sleep}, {@link Object#wait}, Spring's + * {@code StopWatch}, etc. should be considered a candidate as their successful + * execution is likely to be based on events occurring within a given time window. */ PERFORMANCE; diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java index 0238a203bca..c789afa3cd1 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,11 +16,6 @@ package org.springframework.jdbc.config; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; - import javax.sql.DataSource; import org.junit.Rule; @@ -37,10 +32,16 @@ import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean; import org.springframework.jdbc.datasource.init.DataSourceInitializer; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; /** * @author Dave Syer * @author Juergen Hoeller + * @author Chris Beams */ public class JdbcNamespaceIntegrationTests { @@ -49,6 +50,8 @@ public class JdbcNamespaceIntegrationTests { @Test public void testCreateEmbeddedDatabase() throws Exception { + Assume.group(TestGroup.LONG_RUNNING); + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/springframework/jdbc/config/jdbc-config.xml"); assertCorrectSetup(context, "dataSource", "h2DataSource", "derbyDataSource"); @@ -58,6 +61,8 @@ public class JdbcNamespaceIntegrationTests { @Test public void testCreateEmbeddedDatabaseAgain() throws Exception { // If Derby isn't cleaned up properly this will fail... + Assume.group(TestGroup.LONG_RUNNING); + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/springframework/jdbc/config/jdbc-config.xml"); assertCorrectSetup(context, "derbyDataSource"); diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceTransactionManagerTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceTransactionManagerTests.java index 4d3a05c2bf8..c02dcbf02de 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceTransactionManagerTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceTransactionManagerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,6 +39,8 @@ import org.mockito.InOrder; import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.jdbc.UncategorizedSQLException; import org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import org.springframework.transaction.CannotCreateTransactionException; import org.springframework.transaction.IllegalTransactionStateException; import org.springframework.transaction.PlatformTransactionManager; @@ -845,6 +847,8 @@ public class DataSourceTransactionManagerTests { } private void doTestTransactionWithTimeout(int timeout) throws Exception { + Assume.group(TestGroup.PERFORMANCE); + PreparedStatement ps = mock(PreparedStatement.class); given(con.getAutoCommit()).willReturn(true); given(con.prepareStatement("some SQL statement")).willReturn(ps); diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java index 4aa55573624..8ad40961bf8 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,13 +16,15 @@ package org.springframework.jdbc.datasource.embedded; -import static org.junit.Assert.*; import org.junit.Test; - import org.springframework.core.io.ClassRelativeResourceLoader; import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.init.CannotReadScriptException; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; + +import static org.junit.Assert.*; /** * @author Keith Donald @@ -59,6 +61,8 @@ public class EmbeddedDatabaseBuilderTests { @Test public void testBuildDerby() { + Assume.group(TestGroup.LONG_RUNNING); + EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass())); EmbeddedDatabase db = builder.setType(EmbeddedDatabaseType.DERBY).addScript("db-schema-derby.sql").addScript("db-test-data.sql").build(); assertDatabaseCreatedAndShutdown(db); @@ -81,4 +85,4 @@ public class EmbeddedDatabaseBuilderTests { db.shutdown(); } -} \ No newline at end of file +}