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:52:05 UTC
[flink] 39/42: [FLINK-13632] Port ScalaCaseClassSerializer 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 6552c8de076a6f2afa75746fe1171e9548cb4ed6
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Apr 15 19:16:56 2020 +0800
[FLINK-13632] Port ScalaCaseClassSerializer upgrade test to TypeSerializerUpgradeTestBase
---
.../flink-1.6-scala-case-class-serializer-data | Bin 100 -> 0 bytes
.../flink-1.6-scala-case-class-serializer-snapshot | Bin 1857 -> 0 bytes
.../flink-1.7-scala-case-class-serializer-data | Bin 100 -> 0 bytes
.../flink-1.7-scala-case-class-serializer-snapshot | Bin 1865 -> 0 bytes
...aCaseClassSerializerSnapshotMigrationTest.scala | 71 ----------------
.../ScalaCaseClassSerializerUpgradeTest.scala | 89 +++++++++++++++++++++
6 files changed, 89 insertions(+), 71 deletions(-)
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data b/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data
deleted file mode 100644
index 3a39ecb..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot b/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot
deleted file mode 100644
index 4b9ae96..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data b/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data
deleted file mode 100644
index 3a39ecb..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot b/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot
deleted file mode 100644
index 3fe7625..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala
deleted file mode 100644
index 9272846..0000000
--- a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala
+++ /dev/null
@@ -1,71 +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.scala.typeutils
-
-import org.apache.flink.api.common.ExecutionConfig
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase.{
- TestSpecification,
- TestSpecifications
-}
-import org.apache.flink.api.common.typeutils.{
- TypeSerializer,
- TypeSerializerSnapshotMigrationTestBase
-}
-import org.apache.flink.api.scala.createTypeInformation
-import org.apache.flink.api.scala.types.CustomCaseClass
-import org.apache.flink.testutils.migration.MigrationVersion
-
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
-
-import java.util
-
-/**
- * Migration tests for the [[ScalaCaseClassSerializer]].
- */
-@RunWith(classOf[Parameterized])
-class ScalaCaseClassSerializerSnapshotMigrationTest(
- spec: TestSpecification[CustomCaseClass]
-) extends TypeSerializerSnapshotMigrationTestBase[CustomCaseClass](spec) {}
-
-object ScalaCaseClassSerializerSnapshotMigrationTest {
-
- private val typeInfo = createTypeInformation[CustomCaseClass]
-
- private val supplier =
- new util.function.Supplier[TypeSerializer[CustomCaseClass]] {
- override def get(): TypeSerializer[CustomCaseClass] =
- typeInfo.createSerializer(new ExecutionConfig)
- }
-
- @Parameterized.Parameters(name = "Test Specification = {0}")
- def testSpecifications(): util.Collection[TestSpecification[_]] = {
- val spec =
- new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7)
-
- spec.add(
- "scala-case-class-serializer",
- classOf[ScalaCaseClassSerializer[CustomCaseClass]],
- classOf[ScalaCaseClassSerializerSnapshot[CustomCaseClass]],
- supplier
- )
-
- spec.get()
- }
-}
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala
new file mode 100644
index 0000000..24012e2
--- /dev/null
+++ b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala
@@ -0,0 +1,89 @@
+/*
+ * 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.scala.typeutils
+
+import java.util
+
+import org.apache.flink.api.common.ExecutionConfig
+import org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase.TestSpecification
+import org.apache.flink.api.common.typeutils.{TypeSerializer, TypeSerializerMatchers, TypeSerializerSchemaCompatibility, TypeSerializerUpgradeTestBase}
+import org.apache.flink.api.scala.createTypeInformation
+import org.apache.flink.api.scala.types.CustomCaseClass
+import org.apache.flink.testutils.migration.MigrationVersion
+import org.hamcrest.Matcher
+import org.hamcrest.Matchers.is
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+/**
+ * A [[TypeSerializerUpgradeTestBase]] for [[ScalaCaseClassSerializer]].
+ */
+@RunWith(classOf[Parameterized])
+class ScalaCaseClassSerializerUpgradeTest(
+ spec: TestSpecification[CustomCaseClass, CustomCaseClass]
+) extends TypeSerializerUpgradeTestBase[CustomCaseClass, CustomCaseClass](spec) {
+}
+
+object ScalaCaseClassSerializerUpgradeTest {
+
+ private val typeInfo = createTypeInformation[CustomCaseClass]
+
+ private val supplier =
+ new util.function.Supplier[TypeSerializer[CustomCaseClass]] {
+ override def get(): TypeSerializer[CustomCaseClass] =
+ typeInfo.createSerializer(new ExecutionConfig)
+ }
+
+ @Parameterized.Parameters(name = "Test Specification = {0}")
+ def testSpecifications(): util.Collection[TestSpecification[_, _]] = {
+ val testSpecifications =
+ new util.ArrayList[TypeSerializerUpgradeTestBase.TestSpecification[_, _]]
+ for (migrationVersion <- TypeSerializerUpgradeTestBase.MIGRATION_VERSIONS) {
+ testSpecifications.add(
+ new TypeSerializerUpgradeTestBase.TestSpecification[CustomCaseClass, CustomCaseClass]
+ ("scala-case-class-serializer",
+ migrationVersion,
+ classOf[ScalaCaseClassSerializerSetup],
+ classOf[ScalaCaseClassSerializerVerifier]))
+ }
+ testSpecifications
+ }
+
+ /**
+ * This class is only public to work with
+ * [[org.apache.flink.api.common.typeutils.ClassRelocator]].
+ */
+ final class ScalaCaseClassSerializerSetup
+ extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[CustomCaseClass] {
+ override def createPriorSerializer: TypeSerializer[CustomCaseClass] = supplier.get()
+
+ override def createTestData: CustomCaseClass = CustomCaseClass("flink", 11)
+ }
+
+ final class ScalaCaseClassSerializerVerifier
+ extends TypeSerializerUpgradeTestBase.UpgradeVerifier[CustomCaseClass] {
+ override def createUpgradedSerializer: TypeSerializer[CustomCaseClass] = supplier.get()
+
+ override def testDataMatcher: Matcher[CustomCaseClass] = is(CustomCaseClass("flink", 11))
+
+ override def schemaCompatibilityMatcher(version: MigrationVersion):
+ Matcher[TypeSerializerSchemaCompatibility[CustomCaseClass]] =
+ TypeSerializerMatchers.isCompatibleAsIs[CustomCaseClass]()
+ }
+}