From a62ab6a396f9171b76defcadc43b08960f0318a3 Mon Sep 17 00:00:00 2001 From: "Kim, Joo Hyuk" Date: Mon, 20 Jan 2025 08:03:54 +0900 Subject: [PATCH 1/3] [JSTEP-10] Move `failing` tests to `tofix` tests (#280) --- .../AfterburnerModuleJDKSerializability97Test.java | 4 +++- .../{failing => tofix}/RecordBasicsFailingTest.java | 4 +++- .../{failing => tofix}/RecordCreatorsFailingTest.java | 4 +++- .../module/blackbird/{failing => }/TestClassloaders.java | 3 +-- .../module/jakarta/xmlbind/failing/TestUnwrapping.java | 2 ++ .../jackson/module/jakarta/xmlbind/failing/TestXmlID3.java | 2 ++ .../module/jaxb/{failing => tofix}/TestEnums256.java | 4 +++- .../module/jaxb/{failing => tofix}/TestUnwrapping.java | 4 +++- .../jackson/module/jaxb/{failing => tofix}/TestXmlID3.java | 4 +++- ...ingStrategy.java => TestCreatorWithNamingStrategy2.java} | 6 ++---- pom.xml | 5 ----- 11 files changed, 25 insertions(+), 17 deletions(-) rename afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/{failing => tofix}/AfterburnerModuleJDKSerializability97Test.java (92%) rename android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/{failing => tofix}/RecordBasicsFailingTest.java (90%) rename android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/{failing => tofix}/RecordCreatorsFailingTest.java (91%) rename blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/{failing => }/TestClassloaders.java (95%) rename jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/{failing => tofix}/TestEnums256.java (88%) rename jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/{failing => tofix}/TestUnwrapping.java (92%) rename jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/{failing => tofix}/TestXmlID3.java (92%) rename paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/{failing/TestCreatorWithNamingStrategy.java => TestCreatorWithNamingStrategy2.java} (87%) diff --git a/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/failing/AfterburnerModuleJDKSerializability97Test.java b/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/tofix/AfterburnerModuleJDKSerializability97Test.java similarity index 92% rename from afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/failing/AfterburnerModuleJDKSerializability97Test.java rename to afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/tofix/AfterburnerModuleJDKSerializability97Test.java index c0bc9896..6e46e3df 100644 --- a/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/failing/AfterburnerModuleJDKSerializability97Test.java +++ b/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/tofix/AfterburnerModuleJDKSerializability97Test.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.afterburner.failing; +package com.fasterxml.jackson.module.afterburner.tofix; import java.io.*; @@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.afterburner.AfterburnerTestBase; +import com.fasterxml.jackson.module.afterburner.util.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.*; @@ -16,6 +17,7 @@ static class Point { } // But also test that after light use, ser/deser works + @JacksonTestFailureExpected @Test public void testMapperAfterUse() throws Exception { diff --git a/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/failing/RecordBasicsFailingTest.java b/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/tofix/RecordBasicsFailingTest.java similarity index 90% rename from android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/failing/RecordBasicsFailingTest.java rename to android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/tofix/RecordBasicsFailingTest.java index e9a34305..0516b026 100644 --- a/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/failing/RecordBasicsFailingTest.java +++ b/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/tofix/RecordBasicsFailingTest.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.androidrecord.failing; +package com.fasterxml.jackson.module.androidrecord.tofix; import org.junit.jupiter.api.Test; @@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.module.androidrecord.BaseMapTest; import com.fasterxml.jackson.module.androidrecord.RecordBasicsTest; +import com.fasterxml.jackson.module.androidrecord.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.fail; @@ -45,6 +46,7 @@ public String name() { * * @see RecordBasicsTest#testDeserializeConstructorInjectRecord() */ + @JacksonTestFailureExpected @Test public void testDeserializeHeaderInjectRecord_WillFail() throws Exception { MAPPER.setInjectableValues(new InjectableValues.Std().addValue(String.class, "Bob")); diff --git a/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/failing/RecordCreatorsFailingTest.java b/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/tofix/RecordCreatorsFailingTest.java similarity index 91% rename from android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/failing/RecordCreatorsFailingTest.java rename to android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/tofix/RecordCreatorsFailingTest.java index 96bb8eb7..ee015b88 100644 --- a/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/failing/RecordCreatorsFailingTest.java +++ b/android-record/src/test/java/com/fasterxml/jackson/module/androidrecord/tofix/RecordCreatorsFailingTest.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.androidrecord.failing; +package com.fasterxml.jackson.module.androidrecord.tofix; import org.junit.jupiter.api.Test; @@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; import com.fasterxml.jackson.module.androidrecord.BaseMapTest; +import com.fasterxml.jackson.module.androidrecord.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; @@ -50,6 +51,7 @@ public RecordWithAltCtor(@JsonProperty("id") int id) { */ // Fails: Implicit canonical constructor still works too + @JacksonTestFailureExpected @Test public void testDeserializeWithAltCtor() throws Exception { RecordWithAltCtor value = MAPPER.readValue("{\"id\":2812}", diff --git a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/failing/TestClassloaders.java b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java similarity index 95% rename from blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/failing/TestClassloaders.java rename to blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java index 8d78954c..86713ffa 100644 --- a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/failing/TestClassloaders.java +++ b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.blackbird.failing; +package com.fasterxml.jackson.module.blackbird; import java.io.ByteArrayOutputStream; import java.io.InputStream; @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.module.blackbird.BlackbirdTestBase; import com.fasterxml.jackson.databind.ObjectMapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestUnwrapping.java b/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestUnwrapping.java index 1b6e2a2f..693a34ec 100644 --- a/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestUnwrapping.java +++ b/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestUnwrapping.java @@ -12,6 +12,7 @@ import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationIntrospector; import com.fasterxml.jackson.module.jakarta.xmlbind.ModuleTestBase; +import com.fasterxml.jackson.module.jakarta.xmlbind.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.*; @@ -57,6 +58,7 @@ public B(String type) { */ // not asserting anything + @JacksonTestFailureExpected @Test public void testXmlElementAndXmlElementRefs() throws Exception { diff --git a/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestXmlID3.java b/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestXmlID3.java index b3fa1632..bbac0aee 100644 --- a/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestXmlID3.java +++ b/jakarta-xmlbind/src/test/java/com/fasterxml/jackson/module/jakarta/xmlbind/failing/TestXmlID3.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.jakarta.xmlbind.ModuleTestBase; +import com.fasterxml.jackson.module.jakarta.xmlbind.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.*; @@ -50,6 +51,7 @@ static class HasIDList public HasID getParent() { return parent; } } + @JacksonTestFailureExpected @Test public void testIssue46() throws Exception { diff --git a/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestEnums256.java b/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestEnums256.java similarity index 88% rename from jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestEnums256.java rename to jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestEnums256.java index 20e418fe..6f0bb67c 100644 --- a/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestEnums256.java +++ b/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestEnums256.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.jaxb.failing; +package com.fasterxml.jackson.module.jaxb.tofix; import javax.xml.bind.annotation.*; import javax.xml.bind.annotation.adapters.*; @@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.jaxb.BaseJaxbTest; +import com.fasterxml.jackson.module.jaxb.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.*; @@ -44,6 +45,7 @@ public enum Code { private final ObjectMapper MAPPER = getJaxbMapper(); // [modules-base#256] + @JacksonTestFailureExpected @Test public void testEnumSerialize256() throws Exception { diff --git a/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestUnwrapping.java b/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestUnwrapping.java similarity index 92% rename from jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestUnwrapping.java rename to jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestUnwrapping.java index d6f7e138..d45d9d72 100644 --- a/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestUnwrapping.java +++ b/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestUnwrapping.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.jaxb.failing; +package com.fasterxml.jackson.module.jaxb.tofix; import javax.xml.bind.annotation.*; @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; import com.fasterxml.jackson.module.jaxb.BaseJaxbTest; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; +import com.fasterxml.jackson.module.jaxb.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.*; @@ -55,6 +56,7 @@ public B(String type) { */ // not asserting anything + @JacksonTestFailureExpected @Test public void testXmlElementAndXmlElementRefs() throws Exception { diff --git a/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestXmlID3.java b/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestXmlID3.java similarity index 92% rename from jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestXmlID3.java rename to jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestXmlID3.java index 4cb0414d..7bf5824f 100644 --- a/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/failing/TestXmlID3.java +++ b/jaxb/src/test/java/com/fasterxml/jackson/module/jaxb/tofix/TestXmlID3.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.module.jaxb.failing; +package com.fasterxml.jackson.module.jaxb.tofix; import java.util.Arrays; import java.util.List; @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.jaxb.BaseJaxbTest; +import com.fasterxml.jackson.module.jaxb.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.*; @@ -49,6 +50,7 @@ static class HasIDList public HasID getParent() { return parent; } } + @JacksonTestFailureExpected @Test public void testIssue46() throws Exception { diff --git a/paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/failing/TestCreatorWithNamingStrategy.java b/paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/TestCreatorWithNamingStrategy2.java similarity index 87% rename from paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/failing/TestCreatorWithNamingStrategy.java rename to paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/TestCreatorWithNamingStrategy2.java index 8584b9a8..9d2c4cd3 100644 --- a/paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/failing/TestCreatorWithNamingStrategy.java +++ b/paranamer/src/test/java/com/fasterxml/jackson/module/paranamer/TestCreatorWithNamingStrategy2.java @@ -1,16 +1,14 @@ -package com.fasterxml.jackson.module.paranamer.failing; +package com.fasterxml.jackson.module.paranamer; import org.junit.jupiter.api.Test; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategies; -import com.fasterxml.jackson.module.paranamer.ParanamerModule; -import com.fasterxml.jackson.module.paranamer.ModuleTestBase; import static org.junit.jupiter.api.Assertions.*; -public class TestCreatorWithNamingStrategy +public class TestCreatorWithNamingStrategy2 extends ModuleTestBase { static class StaticStringCreatorBean diff --git a/pom.xml b/pom.xml index 5485fd6e..762f4d98 100644 --- a/pom.xml +++ b/pom.xml @@ -115,11 +115,6 @@ not datatype, data format, or JAX-RS provider modules. org.apache.maven.plugins maven-surefire-plugin - - - com/fasterxml/jackson/**/failing/*.java - - From 888539141b7ef22560f2b3616586fea1912162aa Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Sun, 19 Jan 2025 15:10:14 -0800 Subject: [PATCH 2/3] Work around JDK11-only test failure --- .../jackson/module/blackbird/TestClassloaders.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java index 86713ffa..0a83550a 100644 --- a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java +++ b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/TestClassloaders.java @@ -19,7 +19,15 @@ public class TestClassloaders extends BlackbirdTestBase // Note: this test always passes in Java 8, even if the issue is not fixed, // so it is duplicated in jackson-jdk11-compat-test for now @Test - public void testLoadInChildClassloader() throws Exception { + public void testLoadInChildClassloader() throws Exception + { + // 19-Jan-2025, tatu: only fails on JDK 11 specifically, not on JDK 17 or later + // + // So just skip on that + if (System.getProperty("java.version").startsWith("11.")) { + System.out.println("Skipping `testLoadInChildClassloader()` on JDK 11"); + return; + } TestLoader loader = new TestLoader(getClass().getClassLoader()); Class clazz = Class.forName(Data.class.getName(), true, loader); ObjectMapper mapper = newObjectMapper(); From 98b2ee75888f4e7f74b63ebc177e8f41b58b15ca Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Sun, 19 Jan 2025 15:12:45 -0800 Subject: [PATCH 3/3] Update releaase notes wrt #268 --- release-notes/VERSION-2.x | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x index 039b4741..c6a3e53d 100644 --- a/release-notes/VERSION-2.x +++ b/release-notes/VERSION-2.x @@ -23,6 +23,11 @@ Active maintainers: === Releases === ------------------------------------------------------------------------ +2.19.0 (not yet released) + +#268: Unify testing structure/tools [JSTEP-10] + (contributed by Joo-Hyuk K) + 2.18.2 (27-Nov-2024) 2.18.1 (28-Oct-2024)