From f7c0795c1aa6c05403e0f14eb9798fe82c35d672 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Wed, 24 Jul 2013 09:21:10 -0500 Subject: [PATCH] Add TestGroup.CUSTOM_COMPILATION Previously building with JDK > 1.8 b88 caused test failures due to errors with custom compilers like Jibx and Jasper reports. This commit adds a new TestGroup named CUSTOM_COMPILATION that allows the CI server to continue to run these tests but allow committers to ignore these tests. --- .../test/java/org/springframework/tests/TestGroup.java | 8 +++++++- .../java/org/springframework/tests/TestGroupTests.java | 2 +- .../springframework/oxm/jibx/JibxMarshallerTests.java | 10 ++++++++-- .../oxm/jibx/JibxUnmarshallerTests.java | 9 ++++++++- .../view/jasperreports/AbstractJasperReportsTests.java | 2 ++ 5 files changed, 26 insertions(+), 5 deletions(-) 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 9556e5faa4..c135e8e68a 100644 --- a/spring-core/src/test/java/org/springframework/tests/TestGroup.java +++ b/spring-core/src/test/java/org/springframework/tests/TestGroup.java @@ -59,8 +59,14 @@ public enum TestGroup { /** * Tests that should only be run on the continuous integration server. */ - CI; + CI, + /** + * Tests that require custom compilation beyond that of the standard JDK. This helps to + * allow running tests that will otherwise fail when using JDK > 1.8 b88. See + * SPR-10558 + */ + CUSTOM_COMPILATION; /** * Parse the specified comma separates string of groups. diff --git a/spring-core/src/test/java/org/springframework/tests/TestGroupTests.java b/spring-core/src/test/java/org/springframework/tests/TestGroupTests.java index d095b25ffb..2d519345f2 100644 --- a/spring-core/src/test/java/org/springframework/tests/TestGroupTests.java +++ b/spring-core/src/test/java/org/springframework/tests/TestGroupTests.java @@ -64,7 +64,7 @@ public class TestGroupTests { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Unable to find test group 'missing' when parsing " + "testGroups value: 'performance, missing'. Available groups include: " + - "[LONG_RUNNING,PERFORMANCE,JMXMP,CI]"); + "[LONG_RUNNING,PERFORMANCE,JMXMP,CI,CUSTOM_COMPILATION]"); TestGroup.parse("performance, missing"); } diff --git a/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTests.java index 7e2b72ba12..14ab19c9c0 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTests.java @@ -20,11 +20,13 @@ import java.io.StringWriter; import javax.xml.transform.stream.StreamResult; import org.custommonkey.xmlunit.XMLUnit; -import org.junit.Ignore; +import org.junit.BeforeClass; import org.junit.Test; import org.springframework.oxm.AbstractMarshallerTests; import org.springframework.oxm.Marshaller; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import static org.custommonkey.xmlunit.XMLAssert.*; import static org.junit.Assert.assertFalse; @@ -36,9 +38,13 @@ import static org.junit.Assert.assertTrue; * NOTE: These tests fail under Eclipse/IDEA because JiBX binding does * not occur by default. The Gradle build should succeed, however. */ -@Ignore("INCOMPATIBLE WITH OPENJDK 8 b89+") public class JibxMarshallerTests extends AbstractMarshallerTests { + @BeforeClass + public static void compilerAssumptions() { + Assume.group(TestGroup.CUSTOM_COMPILATION); + } + @Override protected Marshaller createMarshaller() throws Exception { JibxMarshaller marshaller = new JibxMarshaller(); diff --git a/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTests.java index 6d881cf6b4..b1e460d835 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTests.java @@ -20,10 +20,13 @@ import java.io.ByteArrayInputStream; import javax.xml.transform.stream.StreamSource; +import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.springframework.oxm.AbstractUnmarshallerTests; import org.springframework.oxm.Unmarshaller; +import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import static org.junit.Assert.*; @@ -33,13 +36,17 @@ import static org.junit.Assert.*; * NOTE: These tests fail under Eclipse/IDEA because JiBX binding does * not occur by default. The Gradle build should succeed, however. */ -@Ignore("INCOMPATIBLE WITH OPENJDK 8 b89+") public class JibxUnmarshallerTests extends AbstractUnmarshallerTests { protected static final String INPUT_STRING_WITH_SPECIAL_CHARACTERS = "" + "Air Libert\u00e942"; + @BeforeClass + public static void compilerAssumptions() { + Assume.group(TestGroup.CUSTOM_COMPILATION); + } + @Override protected Unmarshaller createUnmarshaller() throws Exception { JibxMarshaller unmarshaller = new JibxMarshaller(); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsTests.java index d47c7383dd..82e05ff417 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/jasperreports/AbstractJasperReportsTests.java @@ -29,6 +29,7 @@ import org.junit.BeforeClass; import org.springframework.mock.web.test.MockHttpServletRequest; import org.springframework.mock.web.test.MockHttpServletResponse; import org.springframework.tests.Assume; +import org.springframework.tests.TestGroup; import org.springframework.ui.jasperreports.PersonBean; import org.springframework.ui.jasperreports.ProductBean; import org.springframework.util.ClassUtils; @@ -59,6 +60,7 @@ public abstract class AbstractJasperReportsTests { @BeforeClass public static void assumptions() { Assume.canLoadNativeDirFonts(); + Assume.group(TestGroup.CUSTOM_COMPILATION); } @Before