From 9f989b2d6362695a5bba591a11b8e713b77f5ef1 Mon Sep 17 00:00:00 2001 From: klion26 Date: Tue, 21 Jan 2020 10:56:01 +0800 Subject: [PATCH] [FLINK-13632] Port PrimitiveArraySerializer test to TypeSerializerUpgradeTestBase --- ...eArraySerializerSnapshotMigrationTest.java | 94 ---- .../PrimitiveArraySerializerUpgradeTest.java | 102 +++++ ...aySerializerUpgradeTestSpecifications.java | 431 ++++++++++++++++++ ....6-boolean-primitive-array-serializer-data | Bin 80 -> 0 bytes ...oolean-primitive-array-serializer-snapshot | Bin 436 -> 0 bytes ...k-1.6-byte-primitive-array-serializer-data | Bin 80 -> 0 bytes ...6-byte-primitive-array-serializer-snapshot | Bin 430 -> 0 bytes ...k-1.6-char-primitive-array-serializer-data | Bin 140 -> 0 bytes ...6-char-primitive-array-serializer-snapshot | Bin 430 -> 0 bytes ...1.6-double-primitive-array-serializer-data | Bin 440 -> 0 bytes ...double-primitive-array-serializer-snapshot | Bin 434 -> 0 bytes ...-1.6-float-primitive-array-serializer-data | Bin 240 -> 0 bytes ...-float-primitive-array-serializer-snapshot | Bin 432 -> 0 bytes ...nk-1.6-int-primitive-array-serializer-data | Bin 240 -> 0 bytes ....6-int-primitive-array-serializer-snapshot | Bin 428 -> 0 bytes ...k-1.6-long-primitive-array-serializer-data | Bin 440 -> 0 bytes ...6-long-primitive-array-serializer-snapshot | Bin 430 -> 0 bytes ...-1.6-short-primitive-array-serializer-data | Bin 140 -> 0 bytes ...-short-primitive-array-serializer-snapshot | Bin 432 -> 0 bytes ....7-boolean-primitive-array-serializer-data | Bin 90 -> 0 bytes ...oolean-primitive-array-serializer-snapshot | Bin 212 -> 0 bytes ...k-1.7-byte-primitive-array-serializer-data | Bin 100 -> 0 bytes ...7-byte-primitive-array-serializer-snapshot | Bin 203 -> 0 bytes ...k-1.7-char-primitive-array-serializer-data | Bin 240 -> 0 bytes ...7-char-primitive-array-serializer-snapshot | Bin 203 -> 0 bytes ...1.7-double-primitive-array-serializer-data | Bin 360 -> 0 bytes ...double-primitive-array-serializer-snapshot | Bin 209 -> 0 bytes ...-1.7-float-primitive-array-serializer-data | Bin 160 -> 0 bytes ...-float-primitive-array-serializer-snapshot | Bin 206 -> 0 bytes ...nk-1.7-int-primitive-array-serializer-data | Bin 160 -> 0 bytes ....7-int-primitive-array-serializer-snapshot | Bin 200 -> 0 bytes ...k-1.7-long-primitive-array-serializer-data | Bin 280 -> 0 bytes ...7-long-primitive-array-serializer-snapshot | Bin 203 -> 0 bytes ...-1.7-short-primitive-array-serializer-data | Bin 120 -> 0 bytes ...-short-primitive-array-serializer-snapshot | Bin 206 -> 0 bytes 35 files changed, 533 insertions(+), 94 deletions(-) delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerSnapshotMigrationTest.java create mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTest.java create mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTestSpecifications.java delete mode 100644 flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-snapshot delete mode 100644 flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-data delete mode 100644 flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-snapshot diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerSnapshotMigrationTest.java deleted file mode 100644 index 6163e2cb77ebc..0000000000000 --- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerSnapshotMigrationTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.flink.api.common.typeutils.base.array; - -import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase; -import org.apache.flink.testutils.migration.MigrationVersion; - -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; - -import java.util.Collection; - -/** - * Migration tests for primitive array type serializers' snapshots. - */ -@RunWith(Parameterized.class) -public class PrimitiveArraySerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase { - - public PrimitiveArraySerializerSnapshotMigrationTest(TestSpecification testSpecification) { - super(testSpecification); - } - - @SuppressWarnings("unchecked") - @Parameterized.Parameters(name = "Test Specification = {0}") - public static Collection> testSpecifications() { - - final TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7); - - testSpecifications.add( - "boolean-primitive-array-serializer", - BooleanPrimitiveArraySerializer.class, - BooleanPrimitiveArraySerializer.BooleanPrimitiveArraySerializerSnapshot.class, - () -> BooleanPrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "byte-primitive-array-serializer", - BytePrimitiveArraySerializer.class, - BytePrimitiveArraySerializer.BytePrimitiveArraySerializerSnapshot.class, - () -> BytePrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "char-primitive-array-serializer", - CharPrimitiveArraySerializer.class, - CharPrimitiveArraySerializer.CharPrimitiveArraySerializerSnapshot.class, - () -> CharPrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "double-primitive-array-serializer", - DoublePrimitiveArraySerializer.class, - DoublePrimitiveArraySerializer.DoublePrimitiveArraySerializerSnapshot.class, - () -> DoublePrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "float-primitive-array-serializer", - FloatPrimitiveArraySerializer.class, - FloatPrimitiveArraySerializer.FloatPrimitiveArraySerializerSnapshot.class, - () -> FloatPrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "int-primitive-array-serializer", - IntPrimitiveArraySerializer.class, - IntPrimitiveArraySerializer.IntPrimitiveArraySerializerSnapshot.class, - () -> IntPrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "long-primitive-array-serializer", - LongPrimitiveArraySerializer.class, - LongPrimitiveArraySerializer.LongPrimitiveArraySerializerSnapshot.class, - () -> LongPrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "short-primitive-array-serializer", - ShortPrimitiveArraySerializer.class, - ShortPrimitiveArraySerializer.ShortPrimitiveArraySerializerSnapshot.class, - () -> ShortPrimitiveArraySerializer.INSTANCE); - testSpecifications.add( - "string-array-serializer", - StringArraySerializer.class, - StringArraySerializer.StringArraySerializerSnapshot.class, - () -> StringArraySerializer.INSTANCE); - - return testSpecifications.get(); - } - -} diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTest.java new file mode 100644 index 0000000000000..b783da328f40f --- /dev/null +++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTest.java @@ -0,0 +1,102 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.api.common.typeutils.base.array; + +import org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase; +import org.apache.flink.testutils.migration.MigrationVersion; + +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * Migration tests for primitive array type serializers' snapshots. + */ +@RunWith(Parameterized.class) +public class PrimitiveArraySerializerUpgradeTest extends TypeSerializerUpgradeTestBase { + public PrimitiveArraySerializerUpgradeTest(TestSpecification testSpecification) { + super(testSpecification); + } + + @Parameterized.Parameters(name = "Test Specification = {0}") + public static Collection> testSpecifications() throws Exception { + ArrayList> testSpecifications = new ArrayList<>(); + for (MigrationVersion migrationVersion : MIGRATION_VERSIONS) { + testSpecifications.add( + new TestSpecification<>( + "boolean-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveBooleanArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveBooleanArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "byte-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveByteArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveByteArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "char-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveCharArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveCharArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "double-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveDoubleArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveDoubleArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "float-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveFloatArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveFloatArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "int-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveIntArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveIntArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "long-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveLongArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveLongArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "short-primitive-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveShortArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveShortArrayVerifier.class)); + testSpecifications.add( + new TestSpecification<>( + "string-array-serializer", + migrationVersion, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveStringArraySetup.class, + PrimitiveArraySerializerUpgradeTestSpecifications.PrimitiveStringArrayVerifier.class)); + } + + return testSpecifications; + } +} + diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTestSpecifications.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTestSpecifications.java new file mode 100644 index 0000000000000..c5a972923ca47 --- /dev/null +++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/array/PrimitiveArraySerializerUpgradeTestSpecifications.java @@ -0,0 +1,431 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.api.common.typeutils.base.array; + +import org.apache.flink.api.common.ExecutionConfig; +import org.apache.flink.api.common.typeutils.TypeSerializer; +import org.apache.flink.api.common.typeutils.TypeSerializerMatchers; +import org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility; +import org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase; +import org.apache.flink.api.java.typeutils.TypeExtractor; +import org.apache.flink.testutils.migration.MigrationVersion; + +import org.hamcrest.Matcher; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertSame; + +public class PrimitiveArraySerializerUpgradeTestSpecifications { + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive boolean array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveBooleanArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(boolean[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), BooleanPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public boolean[] createTestData() { + boolean[] data = new boolean[2]; + data[0] = true; + data[1] = false; + return data; + } + } + + public static final class PrimitiveBooleanArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(boolean[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), BooleanPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + boolean[] expected = new boolean[2]; + expected[0] = true; + expected[1] = false; + return is(expected); + } + + @Override + public Matcher> schemaCompatibilityMatcher( + MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive byte array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveByteArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(byte[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), BytePrimitiveArraySerializer.class); + return serializer; + } + + @Override + public byte[] createTestData() { + byte[] dummy = new byte[10]; + for (int i = 0; i < dummy.length; ++i) { + dummy[i] = (byte) i; + } + return dummy; + } + } + + public static final class PrimitiveByteArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(byte[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), BytePrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + byte[] expected = new byte[10]; + for (int i = 0; i < expected.length; ++i) { + expected[i] = (byte) i; + } + return is(expected); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive char array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveCharArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(char[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), CharPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public char[] createTestData() { + char[] data = new char[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = (char) i; + } + return data; + } + } + + public static final class PrimitiveCharArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(char[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), CharPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + char[] data = new char[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = (char) i; + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive double array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveDoubleArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(double[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), DoublePrimitiveArraySerializer.class); + return serializer; + } + + @Override + public double[] createTestData() { + double[] data = new double[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i + 0.1f; + } + return data; + } + } + + public static final class PrimitiveDoubleArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(double[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), DoublePrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + double[] data = new double[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i + 0.1f; + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive float array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveFloatArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(float[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), FloatPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public float[] createTestData() { + float[] data = new float[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i + 0.2f; + } + return data; + } + } + + public static final class PrimitiveFloatArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(float[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), FloatPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + float[] data = new float[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i + 0.2f; + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive int array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveIntArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(int[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), IntPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public int[] createTestData() { + int[] data = new int[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i; + } + return data; + } + } + + public static final class PrimitiveIntArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(int[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), IntPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + int[] data = new int[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i; + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive long array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveLongArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(long[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), LongPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public long[] createTestData() { + long[] data = new long[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i; + } + return data; + } + } + + public static final class PrimitiveLongArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(long[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), LongPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + long[] data = new long[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = i; + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive short array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveShortArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(short[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), ShortPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public short[] createTestData() { + short[] data = new short[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = (short) i; + } + return data; + } + } + + public static final class PrimitiveShortArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(short[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), ShortPrimitiveArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + short[] data = new short[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = (short) i; + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + + // ---------------------------------------------------------------------------------------------- + // Specification for "primitive string array" + // ---------------------------------------------------------------------------------------------- + public static final class PrimitiveStringArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup { + @Override + public TypeSerializer createPriorSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(String[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), StringArraySerializer.class); + return serializer; + } + + @Override + public String[] createTestData() { + String[] data = new String[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = String.valueOf(i); + } + return data; + } + } + + public static final class PrimitiveStringArrayVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier { + @Override + public TypeSerializer createUpgradedSerializer() { + TypeSerializer serializer = TypeExtractor.createTypeInfo(String[].class).createSerializer(new ExecutionConfig()); + assertSame(serializer.getClass(), StringArraySerializer.class); + return serializer; + } + + @Override + public Matcher testDataMatcher() { + String[] data = new String[10]; + for (int i = 0; i < data.length; ++i) { + data[i] = String.valueOf(i); + } + return is(data); + } + + @Override + public Matcher> schemaCompatibilityMatcher(MigrationVersion version) { + return TypeSerializerMatchers.isCompatibleAsIs(); + } + } + +} + diff --git a/flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-data deleted file mode 100644 index 2a22d355bf474080a6db7ec268b2da7a229cd0f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80 RcmZQzU|?ZnU;rZO&;SX#06hQz diff --git a/flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-snapshot deleted file mode 100644 index 2558994cf9a26dba5a2f7f7399ed9d239bff94ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmb`@yA8rX3;<9EiFK}G0fG>1Bv`;iPO!L7m5wnp95sgbQ#Bb`baAG^~t>v_*n$MZ%Nq z;rRmq5w!6P=_#aj{kYy?Xc^{)3n43+tx)8O^g0wIGE#ATC+dQ{M`LdvmXYJGq9VrySQiT~x zB%HJ7Esg8ef`n1?f#f|X7y#@ACO_EAYShPBut_y}Ys&NSa#Oo$3y%7MUF&er(BZS`nXL8A&th!$gs{JtQp^+3}66(VJQv(ChcHB diff --git a/flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-snapshot deleted file mode 100644 index 970c5beccc62b1ab599e6a36b572cb0f7c68729d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmb`@yA8rX3;<9EiFK}G0YE^9BEbSCa)QO>F7h3pumEe&g4ly;s43x+6p$`RxUyY5 ze*hqYCSD;uhqS7nw+Hl{z}!lvu)t(ZD%ET@p4N5iVOAYs&eBxwdg)B`vOjDEnEVb;f4u*o!eYs$;%dRO~N0}i@@ZR>ldqCS7t Xjfqh(Cr_fuxwbjBCgrTg{`|o=lkb!Q diff --git a/flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-data deleted file mode 100644 index bce445f71c30f36fc84b01e63696a0f6c693e887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 ccmZQzU|?lnU|x28NFFE_E9G~l2c*tWiRD(d5> Y-I!Ri)aa2FI@dPG)?}2|*kAwm0vH>TU;qFB diff --git a/flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-data deleted file mode 100644 index 0b0ce3d2f1463496f008961f69b9225dcf85d117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 pcmZQzU|?kc10G`t&Gz>{82p|K<}>Yj2ocwa1=6Ex83so<000PWZO;Gz diff --git a/flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-snapshot deleted file mode 100644 index 1f8f8e1e82f6e29de9359eabdc3509a83d081409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmb`@I}XAy3;<9UiR)zI0)P+;NR`S3LgfaFG^w2MDHq@t>>%#JX;>K%X^RBiii9WI z!}A9KB52|n(o;yQ`f? diff --git a/flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-snapshot deleted file mode 100644 index 94ae742440bf699639e9cf6d9a597123ec105118..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmb`@yA8rX3;<9EiFK}G0YHcjMG6a;$Vn_NcaiV-gaufG7Q`M*Lrn>nq=0lF;mUUL z`~iRnx_E~46w;=CT<fAn67{GyvEOOn$(ZVbJQ48S68Va^Y50TLGk6dRWm-iN>M4=OWHGXMYp diff --git a/flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-data deleted file mode 100644 index 89566690f960e6495e9079227c65ea6894301289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 UcmZQzU|{oO+{BUcgMnr&0D}}5F8}}l diff --git a/flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-snapshot deleted file mode 100644 index a9cba34bbd042f718ffd04c3ad47dbd1b220d3e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmb`A$q9f!3;=_*_)ZV{7lf@KO4Q(9WTUWFuQuSz=gd3?02er(0|OWwfbtz!&VayKpx~$)3d08gc3*#O diff --git a/flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-snapshot deleted file mode 100644 index 3e4ee96cc2cfc970bd755c8ff147fc897e1c5d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmb`AF$#b%3;=^~an2tEcLiS%OVnW7l(ZG}_38(l9Pe&80BGP)TagmEjdAf3_Xh-> xhM*D4nYb458E49jWJV|UT4&FrNsuB3cdwk-guGmA?RTCcrMzi@_dWdlz5zJ4P5}S_ diff --git a/flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-data deleted file mode 100644 index e5371bbdec1a336d6c0324bdf5718699a428aa86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 bcmZQzU|@FeZia{%cPD+d7cvIyw_ diff --git a/flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-snapshot deleted file mode 100644 index eec2da304296cd5faed4ed37d2e5207cb29f8838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmb`AF$#b%3;=^~an2vy6$D=pCDvful(Y)^dhG|C9Pe&80BFF}98#iXV_dz&{RP2A vL(qujN_-UY8E49jWJVYE8r^6Tq{zu#RTG<#mz%Bqic_SNH!V=V!>`{5UnfhN diff --git a/flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-data deleted file mode 100644 index 9dcf64f1f92e333d948aecc41172b5cd02d3defe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 WcmZQzU|?ZjWME>*V=!f)BO3sCCkCYe diff --git a/flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-snapshot deleted file mode 100644 index e07dc66be57a53bfbc0bb4ab59a3b77080297302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmb`A!3~5k48S60;hh~=03mgPfWkGRZK^aNanl0}@ZxFvVF2jB)qY5omdLm!DccQ# wi{`8a{j9vZq=qv!Mlz!lLsaw0B#X