You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tz...@apache.org on 2019/08/08 08:00:52 UTC
[flink] 03/03: [FLINK-13159] [tests] Add subclass serialization
cases to PojoSerializerSnapshotMigrationTest
This is an automated email from the ASF dual-hosted git repository.
tzulitai pushed a commit to branch release-1.9
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 5c09e1c29897e7c098ee55c0d7881c5d2016d94c
Author: Tzu-Li (Gordon) Tai <tz...@apache.org>
AuthorDate: Wed Aug 7 11:43:02 2019 +0200
[FLINK-13159] [tests] Add subclass serialization cases to PojoSerializerSnapshotMigrationTest
This closes #9375.
---
.../PojoSerializerSnapshotMigrationTest.java | 41 +++++++++++++++++++++
...nk-1.6-pojo-registered-subclass-serializer-data | Bin 0 -> 350 bytes
....6-pojo-registered-subclass-serializer-snapshot | Bin 0 -> 9236 bytes
...-1.6-pojo-unregistered-subclass-serializer-data | Bin 0 -> 1320 bytes
...-pojo-unregistered-subclass-serializer-snapshot | Bin 0 -> 8890 bytes
...nk-1.7-pojo-registered-subclass-serializer-data | Bin 0 -> 350 bytes
....7-pojo-registered-subclass-serializer-snapshot | Bin 0 -> 12183 bytes
...-1.7-pojo-unregistered-subclass-serializer-data | Bin 0 -> 1320 bytes
...-pojo-unregistered-subclass-serializer-snapshot | Bin 0 -> 11832 bytes
9 files changed, 41 insertions(+)
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java
index 6dfcb64..fa83f05 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java
@@ -31,6 +31,7 @@ import org.junit.runners.Parameterized;
import java.util.Collection;
import static org.apache.flink.api.common.typeutils.TypeSerializerMatchers.hasSameCompatibilityAs;
+import static org.apache.flink.api.common.typeutils.TypeSerializerMatchers.isCompatibleWithReconfiguredSerializer;
import static org.junit.Assert.assertTrue;
/**
@@ -84,6 +85,22 @@ public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotM
}
}
+ /**
+ * Data test files of test specification that used this type
+ * had the data written using {@code PojoSerializer}s generated
+ * using the base class {@code TestPojo}.
+ */
+ public static class TestPojoSubclass extends TestPojo {
+ public String githubId;
+
+ public TestPojoSubclass() {}
+
+ public TestPojoSubclass(int id, String name, int age, String githubId) {
+ super(id, name, age);
+ this.githubId = githubId;
+ }
+ }
+
public PojoSerializerSnapshotMigrationTest(TestSpecification<Object> testSpecification) {
super(testSpecification);
}
@@ -107,6 +124,19 @@ public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotM
PojoSerializerSnapshotMigrationTest::testPojoWithNewAndRemovedFieldsSerializerSupplier,
hasSameCompatibilityAs(TypeSerializerSchemaCompatibility.compatibleAfterMigration()));
+ testSpecifications.addWithCompatibilityMatcher(
+ "pojo-unregistered-subclass-serializer",
+ PojoSerializer.class,
+ PojoSerializerSnapshot.class,
+ PojoSerializerSnapshotMigrationTest::testPojoSerializerSupplier,
+ isCompatibleWithReconfiguredSerializer());
+
+ testSpecifications.add(
+ "pojo-registered-subclass-serializer",
+ PojoSerializer.class,
+ PojoSerializerSnapshot.class,
+ PojoSerializerSnapshotMigrationTest::testPojoSerializerWithSubclassRegisteredSupplier);
+
return testSpecifications.get();
}
@@ -125,4 +155,15 @@ public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotM
assertTrue(serializer instanceof PojoSerializer);
return serializer;
}
+
+ private static TypeSerializer<TestPojo> testPojoSerializerWithSubclassRegisteredSupplier() {
+ ExecutionConfig executionConfig = new ExecutionConfig();
+ executionConfig.registerPojoType(TestPojoSubclass.class);
+
+ TypeSerializer<TestPojo> serializer =
+ TypeExtractor.createTypeInfo(TestPojo.class).createSerializer(executionConfig);
+
+ assertTrue(serializer instanceof PojoSerializer);
+ return serializer;
+ }
}
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data
new file mode 100644
index 0000000..ca0b187
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data differ
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot
new file mode 100644
index 0000000..4bb2055
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot differ
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data
new file mode 100644
index 0000000..3450dd4
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data differ
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot
new file mode 100644
index 0000000..9231146
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data
new file mode 100644
index 0000000..ca0b187
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot
new file mode 100644
index 0000000..ca6c054
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data
new file mode 100644
index 0000000..3450dd4
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot
new file mode 100644
index 0000000..99a7482
Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot differ