You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by al...@apache.org on 2020/05/28 11:51:51 UTC

[flink] 25/42: [FLINK-13632] Port ValueArraySerializer upgrade test to TypeSerializerUpgradeTestBase

This is an automated email from the ASF dual-hosted git repository.

aljoscha pushed a commit to branch release-1.11
in repository https://gitbox.apache.org/repos/asf/flink.git

commit cbf64fc62ea545673906fbabac06cb0318d884f0
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 15:15:12 2020 +0800

    [FLINK-13632] Port ValueArraySerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../ValueArraySerializerSnapshotMigrationTest.java |  93 ----
 .../ValueArraySerializerUpgradeTest.java           | 523 +++++++++++++++++++++
 .../flink-1.6-byte-value-array-serializer-data     | Bin 70 -> 0 bytes
 .../flink-1.6-byte-value-array-serializer-snapshot | Bin 404 -> 0 bytes
 .../flink-1.6-char-value-array-serializer-data     | Bin 240 -> 0 bytes
 .../flink-1.6-char-value-array-serializer-snapshot | Bin 404 -> 0 bytes
 .../flink-1.6-double-value-array-serializer-data   | Bin 280 -> 0 bytes
 ...link-1.6-double-value-array-serializer-snapshot | Bin 408 -> 0 bytes
 .../flink-1.6-float-value-array-serializer-data    | Bin 160 -> 0 bytes
 ...flink-1.6-float-value-array-serializer-snapshot | Bin 406 -> 0 bytes
 .../flink-1.6-int-value-array-serializer-data      | Bin 160 -> 0 bytes
 .../flink-1.6-int-value-array-serializer-snapshot  | Bin 402 -> 0 bytes
 .../flink-1.6-long-value-array-serializer-data     | Bin 280 -> 0 bytes
 .../flink-1.6-long-value-array-serializer-snapshot | Bin 404 -> 0 bytes
 .../flink-1.6-null-value-array-serializer-data     | Bin 40 -> 0 bytes
 .../flink-1.6-null-value-array-serializer-snapshot | Bin 404 -> 0 bytes
 .../flink-1.6-short-value-array-serializer-data    | Bin 100 -> 0 bytes
 ...flink-1.6-short-value-array-serializer-snapshot | Bin 406 -> 0 bytes
 .../flink-1.6-string-value-array-serializer-data   | Bin 280 -> 0 bytes
 ...link-1.6-string-value-array-serializer-snapshot | Bin 408 -> 0 bytes
 .../flink-1.7-byte-value-array-serializer-data     | Bin 70 -> 0 bytes
 .../flink-1.7-byte-value-array-serializer-snapshot | Bin 392 -> 0 bytes
 .../flink-1.7-char-value-array-serializer-data     | Bin 240 -> 0 bytes
 .../flink-1.7-char-value-array-serializer-snapshot | Bin 392 -> 0 bytes
 .../flink-1.7-double-value-array-serializer-data   | Bin 280 -> 0 bytes
 ...link-1.7-double-value-array-serializer-snapshot | Bin 396 -> 0 bytes
 .../flink-1.7-float-value-array-serializer-data    | Bin 160 -> 0 bytes
 ...flink-1.7-float-value-array-serializer-snapshot | Bin 394 -> 0 bytes
 .../flink-1.7-int-value-array-serializer-data      | Bin 160 -> 0 bytes
 .../flink-1.7-int-value-array-serializer-snapshot  | Bin 390 -> 0 bytes
 .../flink-1.7-long-value-array-serializer-data     | Bin 280 -> 0 bytes
 .../flink-1.7-long-value-array-serializer-snapshot | Bin 392 -> 0 bytes
 .../flink-1.7-null-value-array-serializer-data     | Bin 40 -> 0 bytes
 .../flink-1.7-null-value-array-serializer-snapshot | Bin 392 -> 0 bytes
 .../flink-1.7-short-value-array-serializer-data    | Bin 100 -> 0 bytes
 ...flink-1.7-short-value-array-serializer-snapshot | Bin 394 -> 0 bytes
 .../flink-1.7-string-value-array-serializer-data   | Bin 280 -> 0 bytes
 ...link-1.7-string-value-array-serializer-snapshot | Bin 396 -> 0 bytes
 38 files changed, 523 insertions(+), 93 deletions(-)

diff --git a/flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerSnapshotMigrationTest.java b/flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerSnapshotMigrationTest.java
deleted file mode 100644
index e9f0be2..0000000
--- a/flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,93 +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.graph.types.valuearray;
-
-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 boxed-value array serializer snapshots.
- */
-@RunWith(Parameterized.class)
-public class ValueArraySerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public ValueArraySerializerSnapshotMigrationTest(TestSpecification<Object> testSpecification) {
-		super(testSpecification);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Parameterized.Parameters(name = "Test Specification = {0}")
-	public static Collection<TestSpecification<?>> testSpecifications() {
-
-		final TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7);
-
-		testSpecifications.add(
-			"byte-value-array-serializer",
-			ByteValueArraySerializer.class,
-			ByteValueArraySerializer.ByteValueArraySerializerSnapshot.class,
-			ByteValueArraySerializer::new);
-		testSpecifications.add(
-			"char-value-array-serializer",
-			CharValueArraySerializer.class,
-			CharValueArraySerializer.CharValueArraySerializerSnapshot.class,
-			CharValueArraySerializer::new);
-		testSpecifications.add(
-			"double-value-array-serializer",
-			DoubleValueArraySerializer.class,
-			DoubleValueArraySerializer.DoubleValueArraySerializerSnapshot.class,
-			DoubleValueArraySerializer::new);
-		testSpecifications.add(
-			"float-value-array-serializer",
-			FloatValueArraySerializer.class,
-			FloatValueArraySerializer.FloatValueArraySerializerSnapshot.class,
-			FloatValueArraySerializer::new);
-		testSpecifications.add(
-			"int-value-array-serializer",
-			IntValueArraySerializer.class,
-			IntValueArraySerializer.IntValueArraySerializerSnapshot.class,
-			IntValueArraySerializer::new);
-		testSpecifications.add(
-			"long-value-array-serializer",
-			LongValueArraySerializer.class,
-			LongValueArraySerializer.LongValueArraySerializerSnapshot.class,
-			LongValueArraySerializer::new);
-		testSpecifications.add(
-			"null-value-array-serializer",
-			NullValueArraySerializer.class,
-			NullValueArraySerializer.NullValueArraySerializerSnapshot.class,
-			NullValueArraySerializer::new);
-		testSpecifications.add(
-			"short-value-array-serializer",
-			ShortValueArraySerializer.class,
-			ShortValueArraySerializer.ShortValueArraySerializerSnapshot.class,
-			ShortValueArraySerializer::new);
-		testSpecifications.add(
-			"string-value-array-serializer",
-			StringValueArraySerializer.class,
-			StringValueArraySerializer.StringValueArraySerializerSnapshot.class,
-			StringValueArraySerializer::new);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerUpgradeTest.java b/flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerUpgradeTest.java
new file mode 100644
index 0000000..65022f3
--- /dev/null
+++ b/flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerUpgradeTest.java
@@ -0,0 +1,523 @@
+/*
+ * 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.graph.types.valuearray;
+
+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.testutils.migration.MigrationVersion;
+import org.apache.flink.types.ByteValue;
+import org.apache.flink.types.CharValue;
+import org.apache.flink.types.DoubleValue;
+import org.apache.flink.types.FloatValue;
+import org.apache.flink.types.IntValue;
+import org.apache.flink.types.LongValue;
+import org.apache.flink.types.NullValue;
+import org.apache.flink.types.ShortValue;
+import org.apache.flink.types.StringValue;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Migration tests for boxed-value array serializer snapshots.
+ */
+@RunWith(Parameterized.class)
+public class ValueArraySerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public ValueArraySerializerUpgradeTest(TestSpecification<Object, Object> testSpecification) {
+		super(testSpecification);
+	}
+
+	@Parameterized.Parameters(name = "Test Specification = {0}")
+	public static Collection<TestSpecification<?, ?>> testSpecifications() throws Exception {
+		ArrayList<TestSpecification<?, ?>> testSpecifications = new ArrayList<>();
+		for (MigrationVersion migrationVersion : MIGRATION_VERSIONS) {
+			testSpecifications.add(
+				new TestSpecification<>(
+					"byte-value-array-serializer",
+					migrationVersion,
+					ByteValueArraySerializerSetup.class,
+					ByteValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"char-value-array-serializer",
+					migrationVersion,
+					CharValueArraySerializerSetup.class,
+					CharValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"double-value-array-serializer",
+					migrationVersion,
+					DoubleValueArraySerializerSetup.class,
+					DoubleValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"float-value-array-serializer",
+					migrationVersion,
+					FloatValueArraySerializerSetup.class,
+					FloatValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"int-value-array-serializer",
+					migrationVersion,
+					IntValueArraySerializerSetup.class,
+					IntValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"long-value-array-serializer",
+					migrationVersion,
+					LongValueArraySerializerSetup.class,
+					LongValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"null-value-array-serializer",
+					migrationVersion,
+					NullValueArraySerializerSetup.class,
+					NullValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"short-value-array-serializer",
+					migrationVersion,
+					ShortValueArraySerializerSetup.class,
+					ShortValueArraySerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"string-value-array-serializer",
+					migrationVersion,
+					StringValueArraySerializerSetup.class,
+					StringValueArraySerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "byte-value-array-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ByteValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<ByteValueArray> {
+		@Override
+		public TypeSerializer<ByteValueArray> createPriorSerializer() {
+			return new ByteValueArraySerializer();
+		}
+
+		@Override
+		public ByteValueArray createTestData() {
+			ByteValueArray byteValues = new ByteValueArray(12345);
+			byteValues.add(new ByteValue((byte) 123));
+			byteValues.add(new ByteValue((byte) 345));
+			return byteValues;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ByteValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<ByteValueArray> {
+		@Override
+		public TypeSerializer<ByteValueArray> createUpgradedSerializer() {
+			return new ByteValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<ByteValueArray> testDataMatcher() {
+			ByteValueArray byteValues = new ByteValueArray(12345);
+			byteValues.add(new ByteValue((byte) 123));
+			byteValues.add(new ByteValue((byte) 345));
+			return is(byteValues);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<ByteValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "char-value-array serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class CharValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<CharValueArray> {
+		@Override
+		public TypeSerializer<CharValueArray> createPriorSerializer() {
+			return new CharValueArraySerializer();
+		}
+
+		@Override
+		public CharValueArray createTestData() {
+			CharValueArray array = new CharValueArray(128);
+			array.add(new CharValue((char) 23));
+			array.add(new CharValue((char) 34));
+			array.add(new CharValue((char) 45));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class CharValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<CharValueArray> {
+		@Override
+		public TypeSerializer<CharValueArray> createUpgradedSerializer() {
+			return new CharValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<CharValueArray> testDataMatcher() {
+			CharValueArray array = new CharValueArray(128);
+			array.add(new CharValue((char) 23));
+			array.add(new CharValue((char) 34));
+			array.add(new CharValue((char) 45));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<CharValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for ""double-value-array-serializer""
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class DoubleValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<DoubleValueArray> {
+		@Override
+		public TypeSerializer<DoubleValueArray> createPriorSerializer() {
+			return new DoubleValueArraySerializer();
+		}
+
+		@Override
+		public DoubleValueArray createTestData() {
+			DoubleValueArray array = new DoubleValueArray(128);
+			array.add(new DoubleValue(1.2));
+			array.add(new DoubleValue(3.4));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class DoubleValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<DoubleValueArray> {
+		@Override
+		public TypeSerializer<DoubleValueArray> createUpgradedSerializer() {
+			return new DoubleValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<DoubleValueArray> testDataMatcher() {
+			DoubleValueArray array = new DoubleValueArray(128);
+			array.add(new DoubleValue(1.2));
+			array.add(new DoubleValue(3.4));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<DoubleValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for ""float-value-array-serializer""
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class FloatValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<FloatValueArray> {
+		@Override
+		public TypeSerializer<FloatValueArray> createPriorSerializer() {
+			return new FloatValueArraySerializer();
+		}
+
+		@Override
+		public FloatValueArray createTestData() {
+			FloatValueArray array = new FloatValueArray(128);
+			array.add(new FloatValue(1.2f));
+			array.add(new FloatValue(3.4f));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class FloatValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<FloatValueArray> {
+		@Override
+		public TypeSerializer<FloatValueArray> createUpgradedSerializer() {
+			return new FloatValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<FloatValueArray> testDataMatcher() {
+			FloatValueArray array = new FloatValueArray(128);
+			array.add(new FloatValue(1.2f));
+			array.add(new FloatValue(3.4f));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<FloatValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "int-value-array-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class IntValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<IntValueArray> {
+		@Override
+		public TypeSerializer<IntValueArray> createPriorSerializer() {
+			return new IntValueArraySerializer();
+		}
+
+		@Override
+		public IntValueArray createTestData() {
+			IntValueArray array = new IntValueArray(128);
+			array.add(new IntValue(123));
+			array.add(new IntValue(456));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class IntValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<IntValueArray> {
+		@Override
+		public TypeSerializer<IntValueArray> createUpgradedSerializer() {
+			return new IntValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<IntValueArray> testDataMatcher() {
+			IntValueArray array = new IntValueArray(128);
+			array.add(new IntValue(123));
+			array.add(new IntValue(456));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<IntValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "long-value-array-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class LongValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<LongValueArray> {
+		@Override
+		public TypeSerializer<LongValueArray> createPriorSerializer() {
+			return new LongValueArraySerializer();
+		}
+
+		@Override
+		public LongValueArray createTestData() {
+			LongValueArray array = new LongValueArray(128);
+			array.add(new LongValue(123L));
+			array.add(new LongValue(456L));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class LongValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<LongValueArray> {
+		@Override
+		public TypeSerializer<LongValueArray> createUpgradedSerializer() {
+			return new LongValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<LongValueArray> testDataMatcher() {
+			LongValueArray array = new LongValueArray(128);
+			array.add(new LongValue(123L));
+			array.add(new LongValue(456L));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<LongValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "null-value-array-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NullValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<NullValueArray> {
+		@Override
+		public TypeSerializer<NullValueArray> createPriorSerializer() {
+			return new NullValueArraySerializer();
+		}
+
+		@Override
+		public NullValueArray createTestData() {
+			NullValueArray array = new NullValueArray(128);
+			array.add(new NullValue());
+			array.add(new NullValue());
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NullValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<NullValueArray> {
+		@Override
+		public TypeSerializer<NullValueArray> createUpgradedSerializer() {
+			return new NullValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<NullValueArray> testDataMatcher() {
+			NullValueArray array = new NullValueArray(128);
+			array.add(new NullValue());
+			array.add(new NullValue());
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<NullValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for ""short-value-array-serializer""
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ShortValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<ShortValueArray> {
+		@Override
+		public TypeSerializer<ShortValueArray> createPriorSerializer() {
+			return new ShortValueArraySerializer();
+		}
+
+		@Override
+		public ShortValueArray createTestData() {
+			ShortValueArray array = new ShortValueArray(128);
+			array.add(new ShortValue((short) 123));
+			array.add(new ShortValue((short) 456));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ShortValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<ShortValueArray> {
+		@Override
+		public TypeSerializer<ShortValueArray> createUpgradedSerializer() {
+			return new ShortValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<ShortValueArray> testDataMatcher() {
+			ShortValueArray array = new ShortValueArray(128);
+			array.add(new ShortValue((short) 123));
+			array.add(new ShortValue((short) 456));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<ShortValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for ""string-value-array-serializer""
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class StringValueArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<StringValueArray> {
+		@Override
+		public TypeSerializer<StringValueArray> createPriorSerializer() {
+			return new StringValueArraySerializer();
+		}
+
+		@Override
+		public StringValueArray createTestData() {
+			StringValueArray array = new StringValueArray(128);
+			array.add(new StringValue("123"));
+			array.add(new StringValue("456"));
+			return array;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class StringValueArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<StringValueArray> {
+		@Override
+		public TypeSerializer<StringValueArray> createUpgradedSerializer() {
+			return new StringValueArraySerializer();
+		}
+
+		@Override
+		public Matcher<StringValueArray> testDataMatcher() {
+			StringValueArray array = new StringValueArray(128);
+			array.add(new StringValue("123"));
+			array.add(new StringValue("456"));
+			return is(array);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<StringValueArray>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-data
deleted file mode 100644
index a03b9c2..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-snapshot
deleted file mode 100644
index f23bb4d..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-data
deleted file mode 100644
index 918413b..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-snapshot
deleted file mode 100644
index efec125..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-data
deleted file mode 100644
index a144299..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-snapshot
deleted file mode 100644
index fce23b9..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-data
deleted file mode 100644
index dc10ffb..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-snapshot
deleted file mode 100644
index a2cc5d9..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-data
deleted file mode 100644
index 6966366..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-snapshot
deleted file mode 100644
index 08dd772..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-data
deleted file mode 100644
index b6f6e75..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-snapshot
deleted file mode 100644
index 4650904..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-data
deleted file mode 100644
index 806e8ab..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-snapshot
deleted file mode 100644
index 15bac11..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-data
deleted file mode 100644
index b51a799..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-snapshot
deleted file mode 100644
index 04f4fbb..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-data
deleted file mode 100644
index 0dd9644..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-snapshot
deleted file mode 100644
index fba2b16..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-data
deleted file mode 100644
index a03b9c2..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-snapshot
deleted file mode 100644
index 3489a4f..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-data
deleted file mode 100644
index 918413b..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-snapshot
deleted file mode 100644
index 80987e5..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-data
deleted file mode 100644
index a144299..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-snapshot
deleted file mode 100644
index 8af7a6e..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-data
deleted file mode 100644
index dc10ffb..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-snapshot
deleted file mode 100644
index b981c5d..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-data
deleted file mode 100644
index 6966366..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-snapshot
deleted file mode 100644
index 1842963..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-data
deleted file mode 100644
index b6f6e75..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-snapshot
deleted file mode 100644
index c24e00a..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-data
deleted file mode 100644
index 806e8ab..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-snapshot
deleted file mode 100644
index 9b8db64..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-data
deleted file mode 100644
index b51a799..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-snapshot
deleted file mode 100644
index 32de4d4..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-data b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-data
deleted file mode 100644
index 0dd9644..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-snapshot
deleted file mode 100644
index af2ae9d..0000000
Binary files a/flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-snapshot and /dev/null differ