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:26 UTC

[flink] branch release-1.11 updated (d38ca20 -> e80bb0b)

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

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


    from d38ca20  [FLINK-17565][k8s] Bump fabric8 kubernetes-client from 4.5.2 to 4.9.2
     new fdb1211  [FLINK-13632] Remove old PojoSerializerSnapshotMigrationTest
     new 30071aa  [FLINK-17956] Add Flink 1.11 MigrationVersion
     new acbdbce  [FLINK-13632] Update TypeSerializerUpgradeTestBase for Flink 1.11
     new 37d7a42  [FLINK-13632] Add Flink 1.11 snapshots for TypeSerializer upgrade tests
     new 9a70914  [FLINK-13632] Port AvroSerializer upgrade test to TypeSerializerUpgradeTestBase
     new a38cbb0  [FLINK-13632] Port TtlSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 690f935  [FLINK-13632] Port TupleSerializer upgrade test to TypeSerializerUpgradeTestBase
     new bf399ba  [FLINK-13632] Port BufferEntrySerializer upgrade test to TypeSerializerUpgradeTestBase
     new 59fd396  [FLINK-13632] Port ValueSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 7489ff0  [FLINK-13632] Port PrimitiveArraySerializer test to TypeSerializerUpgradeTestBase
     new c967de5  [FLINK-13632] Port TimerSerializer test to TypeSerializerUpgradeTestBase
     new 04cd45a  [FLINK-13632] Port StreamElementSerializer test to TypeSerializerUpgradeTestBase
     new c5fcfe6  [FLINK-13632] Port BaseTypeSerializer test to TypeSerializerUpgradeTestBase
     new 6453161  [FLINK-13632] Port VoidNamespaceSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 5a730d4  [FLINK-13632] Port NullableSerializer test to TypeSerializerUpgradeTestBase
     new 7143f22  [FLINK-13632] Port ScalaOptionSerializer test to TypeSerializerUpgradeTestBase
     new c99e522  [FLINK-13632] Port KryoSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 32cd222  [FLINK-13632] Port NFASerializer upgrade test to TypeSerializerUpgradeTestBase
     new 9d7d2bd  [FLINK-13632] Port ScalaTrySerializer upgrade test to TypeSerializerUpgradeTestBase
     new dcaa107  [FLINK-13632] Port MapViewSerializer upgrade test to TypeSerializerUpgradeTestBase
     new fa34047  [FLINK-13632] Port WindowSerializer upgrade test to TypeSerializerUpgradeTestBase
     new b139cb7  [FLINK-13632] Port UnionSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 3ef4e17  [FLINK-13632] Port TwoPhaseCommitSinkStateSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 6762882  [FLINK-13632] Port KafkaSerializer upgrade test to TypeSerializerUpgradeTestBase
     new cbf64fc  [FLINK-13632] Port ValueArraySerializer upgrade test to TypeSerializerUpgradeTestBase
     new a8abbbc  [FLINK-13632] Port MapSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 3313567  [FLINK-13632] Port CompositeSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 893f322  [FLINK-13632] Port ListSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 7f03c87  [FLINK-13632] Port ArrayListSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 9c260e8  [FLINK-13632] Port CopyableSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 47d535d  [FLINK-13632] Port WritableSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 12b6ba9  [FLINK-13632] Port ScalaEitherSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 054572b  [FLINK-13632] Port LongValueWithProperHashCodeSerializer upgrade test to TypeSerializerUpgradeTestBase
     new bd37c3c  [FLINK-13632] Port Kafka011Serializer upgrade test to TypeSerializerUpgradeTestBase
     new f4b63d9  [FLINK-13632] Port ListViewSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 6c7cdd6  [FLINK-13632] Port JavaSerializer upgrade test to TypeSerializerUpgradeTestBase
     new c6c34c1  [FLINK-13632] Port LockableTypeSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 760e952  [FLINK-13632] Port EnumSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 6552c8d  [FLINK-13632] Port ScalaCaseClassSerializer upgrade test to TypeSerializerUpgradeTestBase
     new da1a402  [FLINK-13632] Port EnumValueSerializer upgrade test to TypeSerializerUpgradeTestBase
     new 4248de2  [FLINK-13632] Port TraversableSerializer upgrade test to TypeSerializerUpgradeTestBase
     new e80bb0b  [FLINK-13632] Remove TypeSerializerSnapshotMigrationTestBase

The 42 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../connectors/kafka/FlinkKafkaProducer011.java    |   18 +-
 .../kafka/Kafka011SerializerUpgradeTest.java       |  162 ++++
 .../KafkaSerializerSnapshotsMigrationTest.java     |   59 --
 .../serializer-snapshot                            |  Bin 0 -> 129 bytes
 .../context-state-serializer-1.11/test-data        |  Bin 0 -> 19 bytes
 .../flink-1.6-context-state-serializer-data        |  Bin 270 -> 0 bytes
 .../flink-1.6-context-state-serializer-snapshot    |  Bin 452 -> 0 bytes
 .../flink-1.6-transaction-state-serializer-data    |  Bin 110 -> 0 bytes
 ...flink-1.6-transaction-state-serializer-snapshot |  Bin 460 -> 0 bytes
 .../flink-1.7-context-state-serializer-data        |  Bin 270 -> 0 bytes
 .../flink-1.7-context-state-serializer-snapshot    |  Bin 440 -> 0 bytes
 .../flink-1.7-transaction-state-serializer-data    |  Bin 110 -> 0 bytes
 ...flink-1.7-transaction-state-serializer-snapshot |  Bin 448 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 137 bytes
 .../transaction-state-serializer-1.11/test-data    |  Bin 0 -> 17 bytes
 .../connectors/kafka/FlinkKafkaProducer.java       |   14 +-
 .../KafkaSerializerSnapshotsMigrationTest.java     |   59 --
 .../kafka/KafkaSerializerUpgradeTest.java          |  162 ++++
 .../serializer-snapshot                            |  Bin 0 -> 126 bytes
 .../context-state-serializer-1.11/test-data        |  Bin 0 -> 19 bytes
 .../flink-1.7-context-state-serializer-data        |  Bin 270 -> 0 bytes
 .../flink-1.7-context-state-serializer-snapshot    |  Bin 434 -> 0 bytes
 .../flink-1.7-transaction-state-serializer-data    |  Bin 110 -> 0 bytes
 ...flink-1.7-transaction-state-serializer-snapshot |  Bin 442 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 134 bytes
 .../transaction-state-serializer-1.11/test-data    |  Bin 0 -> 17 bytes
 .../runtime/WritableSerializerMigrationTest.java   |   88 --
 .../runtime/WritableSerializerUpgradeTest.java     |  151 +++
 .../resources/flink-1.6-writeable-serializer-data  |  Bin 150 -> 0 bytes
 .../flink-1.6-writeable-serializer-snapshot        |  Bin 506 -> 0 bytes
 .../resources/flink-1.7-writeable-serializer-data  |  Bin 150 -> 0 bytes
 .../flink-1.7-writeable-serializer-snapshot        |  Bin 494 -> 0 bytes
 .../writeable-serializer-1.11/serializer-snapshot  |  Bin 0 -> 187 bytes
 .../resources/writeable-serializer-1.11/test-data  |  Bin 0 -> 7 bytes
 ...mpositeTypeSerializerSnapshotMigrationTest.java |   63 --
 .../CompositeTypeSerializerUpgradeTest.java        |  147 +++
 .../TypeSerializerSnapshotMigrationTestBase.java   |  529 -----------
 .../typeutils/TypeSerializerUpgradeTestBase.java   |   38 +-
 .../BaseTypeSerializerSnapshotMigrationTest.java   |   73 --
 .../base/BasicTypeSerializerUpgradeTest.java       |  199 ++++
 ...sicTypeSerializerUpgradeTestSpecifications.java | 1002 ++++++++++++++++++++
 ...t.java => EnumSerializerCompatibilityTest.java} |    2 +-
 .../base/EnumSerializerSnapshotMigrationTest.java  |   89 --
 .../typeutils/base/EnumSerializerUpgradeTest.java  |  195 ++--
 .../base/ListSerializerSnapshotMigrationTest.java  |   55 --
 .../typeutils/base/ListSerializerUpgradeTest.java} |   82 +-
 .../base/MapSerializerSnapshotMigrationTest.java   |   56 --
 .../typeutils/base/MapSerializerUpgradeTest.java}  |   84 +-
 ...mitiveArraySerializerSnapshotMigrationTest.java |   94 --
 .../array/PrimitiveArraySerializerUpgradeTest.java |  102 ++
 ...veArraySerializerUpgradeTestSpecifications.java |  431 +++++++++
 .../runtime/CopyableSerializerMigrationTest.java   |  107 ---
 .../runtime/CopyableSerializerUpgradeTest.java     |  174 ++++
 .../runtime/NullableSerializerMigrationTest.java   |   83 --
 .../runtime/NullableSerializerUpgradeTest.java     |  146 +++
 .../PojoSerializerSnapshotMigrationTest.java       |  169 ----
 .../runtime/PojoSerializerUpgradeTest.java         |   13 +-
 .../runtime/RowSerializerUpgradeTest.java          |   10 +-
 .../runtime/TupleSerializerMigrationTest.java      |   59 --
 .../runtime/TupleSerializerUpgradeTest.java        |  115 +++
 .../runtime/ValueSerializerMigrationTest.java      |   88 --
 .../runtime/ValueSerializerUpgradeTest.java        |  138 +++
 .../runtime/kryo/KryoPojosForMigrationTests.java   |   18 +
 .../runtime/kryo/KryoSerializerUpgradeTest.java    |  272 ++++++
 .../runtime/kryo/KryoSnapshotMigrationTest.java    |  146 ---
 .../testutils/migration/MigrationVersion.java      |    3 +-
 .../big-dec-serializer-1.11/serializer-snapshot    |  Bin 0 -> 94 bytes
 .../resources/big-dec-serializer-1.11/test-data    |  Bin 0 -> 24 bytes
 .../big-int-serializer-1.11/serializer-snapshot    |  Bin 0 -> 94 bytes
 .../resources/big-int-serializer-1.11/test-data    |  Bin 0 -> 19 bytes
 .../serializer-snapshot}                           |  Bin 212 -> 130 bytes
 .../test-data                                      |  Bin 0 -> 6 bytes
 .../boolean-serializer-1.11/serializer-snapshot    |  Bin 0 -> 96 bytes
 .../resources/boolean-serializer-1.11/test-data    |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 106 bytes
 .../boolean-value-serializer-1.11/test-data        |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 124 bytes
 .../byte-primitive-array-serializer-1.11/test-data |  Bin 0 -> 14 bytes
 .../byte-serializer-1.11/serializer-snapshot       |  Bin 0 -> 90 bytes
 .../test/resources/byte-serializer-1.11/test-data  |    1 +
 .../byte-value-serializer-1.11/serializer-snapshot |  Bin 0 -> 100 bytes
 .../resources/byte-value-serializer-1.11/test-data |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 124 bytes
 .../char-primitive-array-serializer-1.11/test-data |  Bin 0 -> 24 bytes
 .../char-serializer-1.11/serializer-snapshot       |  Bin 0 -> 90 bytes
 .../test/resources/char-serializer-1.11/test-data  |    1 +
 .../char-value-serializer-1.11/serializer-snapshot |  Bin 0 -> 100 bytes
 .../resources/char-value-serializer-1.11/test-data |  Bin 0 -> 2 bytes
 .../serializer-snapshot                            |  Bin 0 -> 199 bytes
 .../copyable-value-serializer-1.11/test-data       |  Bin 0 -> 8 bytes
 .../date-serializer-1.11/serializer-snapshot       |  Bin 0 -> 90 bytes
 .../test/resources/date-serializer-1.11/test-data  |  Bin 0 -> 8 bytes
 .../serializer-snapshot                            |  Bin 0 -> 128 bytes
 .../test-data                                      |  Bin 0 -> 84 bytes
 .../double-serializer-1.11/serializer-snapshot     |  Bin 0 -> 94 bytes
 .../resources/double-serializer-1.11/test-data     |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 104 bytes
 .../double-value-serializer-1.11/test-data         |    1 +
 .../either-serializer-1.11/serializer-snapshot     |  Bin 0 -> 276 bytes
 .../resources/either-serializer-1.11/test-data     |    1 +
 .../enum-serializer-1.11/serializer-snapshot       |  Bin 0 -> 188 bytes
 .../test/resources/enum-serializer-1.11/test-data  |  Bin 0 -> 4 bytes
 .../serializer-snapshot                            |  Bin 0 -> 163 bytes
 .../enum-serializerreconfig-1.11/test-data         |  Bin 0 -> 4 bytes
 .../resources/flink-1.6-big-dec-serializer-data    |  Bin 300 -> 0 bytes
 .../flink-1.6-big-dec-serializer-snapshot          |  Bin 394 -> 0 bytes
 .../resources/flink-1.6-big-int-serializer-data    |  Bin 64 -> 0 bytes
 .../flink-1.6-big-int-serializer-snapshot          |  Bin 394 -> 0 bytes
 ...ink-1.6-boolean-primitive-array-serializer-data |  Bin 80 -> 0 bytes
 ...1.6-boolean-primitive-array-serializer-snapshot |  Bin 436 -> 0 bytes
 .../resources/flink-1.6-boolean-serializer-data    |    1 -
 .../flink-1.6-boolean-serializer-snapshot          |  Bin 396 -> 0 bytes
 .../flink-1.6-boolean-value-serializer-data        |  Bin 10 -> 0 bytes
 .../flink-1.6-boolean-value-serializer-snapshot    |  Bin 406 -> 0 bytes
 .../flink-1.6-byte-primitive-array-serializer-data |  Bin 80 -> 0 bytes
 ...nk-1.6-byte-primitive-array-serializer-snapshot |  Bin 430 -> 0 bytes
 .../test/resources/flink-1.6-byte-serializer-data  |    1 -
 .../resources/flink-1.6-byte-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-byte-value-serializer-data |    1 -
 .../flink-1.6-byte-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../flink-1.6-char-primitive-array-serializer-data |  Bin 140 -> 0 bytes
 ...nk-1.6-char-primitive-array-serializer-snapshot |  Bin 430 -> 0 bytes
 .../test/resources/flink-1.6-char-serializer-data  |  Bin 20 -> 0 bytes
 .../resources/flink-1.6-char-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-char-value-serializer-data |  Bin 20 -> 0 bytes
 .../flink-1.6-char-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../flink-1.6-copyable-value-serializer-data       |  Bin 80 -> 0 bytes
 .../flink-1.6-copyable-value-serializer-snapshot   |  Bin 534 -> 0 bytes
 .../test/resources/flink-1.6-date-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.6-date-serializer-snapshot   |  Bin 390 -> 0 bytes
 ...link-1.6-double-primitive-array-serializer-data |  Bin 440 -> 0 bytes
 ...-1.6-double-primitive-array-serializer-snapshot |  Bin 434 -> 0 bytes
 .../resources/flink-1.6-double-serializer-data     |    1 -
 .../resources/flink-1.6-double-serializer-snapshot |  Bin 394 -> 0 bytes
 .../flink-1.6-double-value-serializer-data         |    1 -
 .../flink-1.6-double-value-serializer-snapshot     |  Bin 404 -> 0 bytes
 .../resources/flink-1.6-either-serializer-data     |  Bin 42 -> 0 bytes
 .../resources/flink-1.6-either-serializer-snapshot |  Bin 1365 -> 0 bytes
 .../test/resources/flink-1.6-enum-serializer-data  |  Bin 40 -> 0 bytes
 .../resources/flink-1.6-enum-serializer-snapshot   |  Bin 949 -> 0 bytes
 ...flink-1.6-float-primitive-array-serializer-data |  Bin 240 -> 0 bytes
 ...k-1.6-float-primitive-array-serializer-snapshot |  Bin 432 -> 0 bytes
 .../test/resources/flink-1.6-float-serializer-data |    1 -
 .../resources/flink-1.6-float-serializer-snapshot  |  Bin 392 -> 0 bytes
 .../flink-1.6-float-value-serializer-data          |    1 -
 .../flink-1.6-float-value-serializer-snapshot      |  Bin 402 -> 0 bytes
 .../flink-1.6-generic-array-serializer-data        |  Bin 90 -> 0 bytes
 .../flink-1.6-generic-array-serializer-snapshot    |  Bin 1007 -> 0 bytes
 .../flink-1.6-int-primitive-array-serializer-data  |  Bin 240 -> 0 bytes
 ...ink-1.6-int-primitive-array-serializer-snapshot |  Bin 428 -> 0 bytes
 .../test/resources/flink-1.6-int-serializer-data   |  Bin 40 -> 0 bytes
 .../resources/flink-1.6-int-serializer-snapshot    |  Bin 388 -> 0 bytes
 .../resources/flink-1.6-int-value-serializer-data  |  Bin 40 -> 0 bytes
 .../flink-1.6-int-value-serializer-snapshot        |  Bin 398 -> 0 bytes
 .../flink-1.6-kryo-type-serializer-custom-data     |    1 -
 .../flink-1.6-kryo-type-serializer-custom-snapshot |  Bin 4808 -> 0 bytes
 .../resources/flink-1.6-kryo-type-serializer-data  |    1 -
 ...link-1.6-kryo-type-serializer-empty-config-data |  Bin 180 -> 0 bytes
 ...-1.6-kryo-type-serializer-empty-config-snapshot |  Bin 2759 -> 0 bytes
 .../flink-1.6-kryo-type-serializer-snapshot        |  Bin 3854 -> 0 bytes
 .../test/resources/flink-1.6-list-serializer-data  |  Bin 240 -> 0 bytes
 .../resources/flink-1.6-list-serializer-snapshot   |  Bin 888 -> 0 bytes
 .../flink-1.6-long-primitive-array-serializer-data |  Bin 440 -> 0 bytes
 ...nk-1.6-long-primitive-array-serializer-snapshot |  Bin 430 -> 0 bytes
 .../test/resources/flink-1.6-long-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.6-long-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-long-value-serializer-data |  Bin 80 -> 0 bytes
 .../flink-1.6-long-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../test/resources/flink-1.6-map-serializer-data   |  Bin 440 -> 0 bytes
 .../resources/flink-1.6-map-serializer-snapshot    |  Bin 1356 -> 0 bytes
 .../resources/flink-1.6-null-value-serializer-data |    0
 .../flink-1.6-null-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../flink-1.6-nullable-not-padded-serializer-data  |  Bin 58 -> 0 bytes
 ...ink-1.6-nullable-not-padded-serializer-snapshot |  Bin 944 -> 0 bytes
 .../flink-1.6-nullable-padded-serializer-data      |  Bin 90 -> 0 bytes
 .../flink-1.6-nullable-padded-serializer-snapshot  |  Bin 952 -> 0 bytes
 ...1.6-pojo-new-and-removed-fields-serializer-data |  Bin 320 -> 0 bytes
 ...pojo-new-and-removed-fields-serializer-snapshot |  Bin 4696 -> 0 bytes
 ...nk-1.6-pojo-registered-subclass-serializer-data |  Bin 350 -> 0 bytes
 ....6-pojo-registered-subclass-serializer-snapshot |  Bin 9236 -> 0 bytes
 .../test/resources/flink-1.6-pojo-serializer-data  |  Bin 230 -> 0 bytes
 .../resources/flink-1.6-pojo-serializer-snapshot   |  Bin 4133 -> 0 bytes
 ...-1.6-pojo-unregistered-subclass-serializer-data |  Bin 1320 -> 0 bytes
 ...-pojo-unregistered-subclass-serializer-snapshot |  Bin 8890 -> 0 bytes
 ...flink-1.6-short-primitive-array-serializer-data |  Bin 140 -> 0 bytes
 ...k-1.6-short-primitive-array-serializer-snapshot |  Bin 432 -> 0 bytes
 .../test/resources/flink-1.6-short-serializer-data |  Bin 20 -> 0 bytes
 .../resources/flink-1.6-short-serializer-snapshot  |  Bin 392 -> 0 bytes
 .../flink-1.6-short-value-serializer-data          |  Bin 20 -> 0 bytes
 .../flink-1.6-short-value-serializer-snapshot      |  Bin 402 -> 0 bytes
 .../resources/flink-1.6-sql-date-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.6-sql-date-serializer-snapshot         |  Bin 396 -> 0 bytes
 .../resources/flink-1.6-sql-time-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.6-sql-time-serializer-snapshot         |  Bin 396 -> 0 bytes
 .../flink-1.6-sql-timestamp-serializer-data        |  Bin 120 -> 0 bytes
 .../flink-1.6-sql-timestamp-serializer-snapshot    |  Bin 406 -> 0 bytes
 .../resources/flink-1.6-string-serializer-data     |    1 -
 .../resources/flink-1.6-string-serializer-snapshot |  Bin 394 -> 0 bytes
 .../flink-1.6-string-value-serializer-data         |    1 -
 .../flink-1.6-string-value-serializer-snapshot     |  Bin 404 -> 0 bytes
 .../test/resources/flink-1.6-tuple-serializer-data |  Bin 392 -> 0 bytes
 .../resources/flink-1.6-tuple-serializer-snapshot  |  Bin 2256 -> 0 bytes
 .../test/resources/flink-1.6-value-serializer-data |  Bin 150 -> 0 bytes
 .../resources/flink-1.6-value-serializer-snapshot  |  Bin 1310 -> 0 bytes
 .../resources/flink-1.7-big-dec-serializer-data    |  Bin 300 -> 0 bytes
 .../flink-1.7-big-dec-serializer-snapshot          |  Bin 155 -> 0 bytes
 .../resources/flink-1.7-big-int-serializer-data    |  Bin 150 -> 0 bytes
 .../flink-1.7-big-int-serializer-snapshot          |  Bin 155 -> 0 bytes
 ...ink-1.7-boolean-primitive-array-serializer-data |  Bin 90 -> 0 bytes
 .../resources/flink-1.7-boolean-serializer-data    |    1 -
 .../flink-1.7-boolean-serializer-snapshot          |  Bin 158 -> 0 bytes
 .../flink-1.7-boolean-value-serializer-data        |  Bin 10 -> 0 bytes
 .../flink-1.7-boolean-value-serializer-snapshot    |  Bin 173 -> 0 bytes
 .../flink-1.7-byte-primitive-array-serializer-data |  Bin 100 -> 0 bytes
 ...nk-1.7-byte-primitive-array-serializer-snapshot |  Bin 203 -> 0 bytes
 .../test/resources/flink-1.7-byte-serializer-data  |    1 -
 .../resources/flink-1.7-byte-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-byte-value-serializer-data |    1 -
 .../flink-1.7-byte-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../flink-1.7-char-primitive-array-serializer-data |  Bin 240 -> 0 bytes
 ...nk-1.7-char-primitive-array-serializer-snapshot |  Bin 203 -> 0 bytes
 .../test/resources/flink-1.7-char-serializer-data  |  Bin 20 -> 0 bytes
 .../resources/flink-1.7-char-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-char-value-serializer-data |  Bin 20 -> 0 bytes
 .../flink-1.7-char-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../flink-1.7-copyable-value-serializer-data       |  Bin 80 -> 0 bytes
 .../flink-1.7-copyable-value-serializer-snapshot   |  Bin 522 -> 0 bytes
 .../test/resources/flink-1.7-date-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.7-date-serializer-snapshot   |  Bin 149 -> 0 bytes
 ...link-1.7-double-primitive-array-serializer-data |  Bin 360 -> 0 bytes
 ...-1.7-double-primitive-array-serializer-snapshot |  Bin 209 -> 0 bytes
 .../resources/flink-1.7-double-serializer-data     |    1 -
 .../resources/flink-1.7-double-serializer-snapshot |  Bin 155 -> 0 bytes
 .../flink-1.7-double-value-serializer-data         |    1 -
 .../flink-1.7-double-value-serializer-snapshot     |  Bin 170 -> 0 bytes
 .../resources/flink-1.7-either-serializer-data     |    1 -
 .../resources/flink-1.7-either-serializer-snapshot |  Bin 383 -> 0 bytes
 .../test/resources/flink-1.7-enum-serializer-data  |  Bin 40 -> 0 bytes
 .../resources/flink-1.7-enum-serializer-snapshot   |  Bin 937 -> 0 bytes
 ...flink-1.7-float-primitive-array-serializer-data |  Bin 160 -> 0 bytes
 ...k-1.7-float-primitive-array-serializer-snapshot |  Bin 206 -> 0 bytes
 .../test/resources/flink-1.7-float-serializer-data |    1 -
 .../resources/flink-1.7-float-serializer-snapshot  |  Bin 152 -> 0 bytes
 .../flink-1.7-float-value-serializer-data          |    1 -
 .../flink-1.7-float-value-serializer-snapshot      |  Bin 167 -> 0 bytes
 .../flink-1.7-generic-array-serializer-data        |  Bin 280 -> 0 bytes
 .../flink-1.7-generic-array-serializer-snapshot    |  Bin 270 -> 0 bytes
 .../flink-1.7-int-primitive-array-serializer-data  |  Bin 160 -> 0 bytes
 ...ink-1.7-int-primitive-array-serializer-snapshot |  Bin 200 -> 0 bytes
 .../test/resources/flink-1.7-int-serializer-data   |  Bin 40 -> 0 bytes
 .../resources/flink-1.7-int-serializer-snapshot    |  Bin 146 -> 0 bytes
 .../resources/flink-1.7-int-value-serializer-data  |  Bin 40 -> 0 bytes
 .../flink-1.7-int-value-serializer-snapshot        |  Bin 161 -> 0 bytes
 .../flink-1.7-kryo-type-serializer-custom-data     |    1 -
 .../flink-1.7-kryo-type-serializer-custom-snapshot |  Bin 4796 -> 0 bytes
 .../resources/flink-1.7-kryo-type-serializer-data  |    1 -
 ...link-1.7-kryo-type-serializer-empty-config-data |  Bin 892 -> 0 bytes
 ...-1.7-kryo-type-serializer-empty-config-snapshot |  Bin 2747 -> 0 bytes
 .../flink-1.7-kryo-type-serializer-snapshot        |  Bin 3842 -> 0 bytes
 .../test/resources/flink-1.7-list-serializer-data  |  Bin 240 -> 0 bytes
 .../resources/flink-1.7-list-serializer-snapshot   |  Bin 238 -> 0 bytes
 .../flink-1.7-long-primitive-array-serializer-data |  Bin 280 -> 0 bytes
 ...nk-1.7-long-primitive-array-serializer-snapshot |  Bin 203 -> 0 bytes
 .../test/resources/flink-1.7-long-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.7-long-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-long-value-serializer-data |  Bin 80 -> 0 bytes
 .../flink-1.7-long-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../test/resources/flink-1.7-map-serializer-data   |  Bin 390 -> 0 bytes
 .../resources/flink-1.7-map-serializer-snapshot    |  Bin 379 -> 0 bytes
 .../flink-1.7-null-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../flink-1.7-nullable-not-padded-serializer-data  |  Bin 58 -> 0 bytes
 ...ink-1.7-nullable-not-padded-serializer-snapshot |  Bin 941 -> 0 bytes
 .../flink-1.7-nullable-padded-serializer-data      |  Bin 90 -> 0 bytes
 .../flink-1.7-nullable-padded-serializer-snapshot  |  Bin 949 -> 0 bytes
 ...1.7-pojo-new-and-removed-fields-serializer-data |  Bin 320 -> 0 bytes
 ...pojo-new-and-removed-fields-serializer-snapshot |  Bin 4724 -> 0 bytes
 ...nk-1.7-pojo-registered-subclass-serializer-data |  Bin 350 -> 0 bytes
 ....7-pojo-registered-subclass-serializer-snapshot |  Bin 12183 -> 0 bytes
 .../test/resources/flink-1.7-pojo-serializer-data  |  Bin 230 -> 0 bytes
 .../resources/flink-1.7-pojo-serializer-snapshot   |  Bin 4148 -> 0 bytes
 ...-1.7-pojo-unregistered-subclass-serializer-data |  Bin 1320 -> 0 bytes
 ...-pojo-unregistered-subclass-serializer-snapshot |  Bin 11832 -> 0 bytes
 ...flink-1.7-short-primitive-array-serializer-data |  Bin 120 -> 0 bytes
 ...k-1.7-short-primitive-array-serializer-snapshot |  Bin 206 -> 0 bytes
 .../test/resources/flink-1.7-short-serializer-data |  Bin 20 -> 0 bytes
 .../resources/flink-1.7-short-serializer-snapshot  |  Bin 152 -> 0 bytes
 .../flink-1.7-short-value-serializer-data          |  Bin 20 -> 0 bytes
 .../flink-1.7-short-value-serializer-snapshot      |  Bin 167 -> 0 bytes
 .../resources/flink-1.7-sql-date-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.7-sql-date-serializer-snapshot         |  Bin 158 -> 0 bytes
 .../resources/flink-1.7-sql-time-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.7-sql-time-serializer-snapshot         |  Bin 158 -> 0 bytes
 .../flink-1.7-sql-timestamp-serializer-data        |  Bin 120 -> 0 bytes
 .../flink-1.7-sql-timestamp-serializer-snapshot    |  Bin 173 -> 0 bytes
 .../resources/flink-1.7-string-serializer-data     |    1 -
 .../resources/flink-1.7-string-serializer-snapshot |  Bin 155 -> 0 bytes
 .../flink-1.7-string-value-serializer-data         |    1 -
 .../flink-1.7-string-value-serializer-snapshot     |  Bin 170 -> 0 bytes
 .../test/resources/flink-1.7-tuple-serializer-data |  Bin 392 -> 0 bytes
 .../resources/flink-1.7-tuple-serializer-snapshot  |  Bin 2277 -> 0 bytes
 .../test/resources/flink-1.7-value-serializer-data |  Bin 150 -> 0 bytes
 .../resources/flink-1.7-value-serializer-snapshot  |  Bin 1298 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 126 bytes
 .../test-data                                      |  Bin 0 -> 44 bytes
 .../float-serializer-1.11/serializer-snapshot      |  Bin 0 -> 92 bytes
 .../test/resources/float-serializer-1.11/test-data |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 102 bytes
 .../float-value-serializer-1.11/test-data          |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 211 bytes
 .../generic-array-serializer-1.11/test-data        |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 122 bytes
 .../int-primitive-array-serializer-1.11/test-data  |  Bin 0 -> 44 bytes
 .../int-serializer-1.11/serializer-snapshot        |  Bin 0 -> 88 bytes
 .../test/resources/int-serializer-1.11/test-data   |  Bin 0 -> 4 bytes
 .../int-value-serializer-1.11/serializer-snapshot  |  Bin 0 -> 98 bytes
 .../resources/int-value-serializer-1.11/test-data  |  Bin 0 -> 4 bytes
 .../serializer-snapshot                            |  Bin 0 -> 1718 bytes
 .../test-data                                      |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 1525 bytes
 .../test-data                                      |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 745 bytes
 .../test-data                                      |  Bin 0 -> 90 bytes
 .../serializer-snapshot                            |  Bin 0 -> 745 bytes
 .../test-data                                      |  Bin 0 -> 90 bytes
 .../list-serializer-1.11/serializer-snapshot       |  Bin 0 -> 185 bytes
 .../test/resources/list-serializer-1.11/test-data  |  Bin 0 -> 17 bytes
 .../serializer-snapshot                            |  Bin 0 -> 124 bytes
 .../long-primitive-array-serializer-1.11/test-data |  Bin 0 -> 84 bytes
 .../long-serializer-1.11/serializer-snapshot       |  Bin 0 -> 90 bytes
 .../test/resources/long-serializer-1.11/test-data  |  Bin 0 -> 8 bytes
 .../long-value-serializer-1.11/serializer-snapshot |  Bin 0 -> 100 bytes
 .../resources/long-value-serializer-1.11/test-data |  Bin 0 -> 8 bytes
 .../map-serializer-1.11/serializer-snapshot        |  Bin 0 -> 268 bytes
 .../test/resources/map-serializer-1.11/test-data   |  Bin 0 -> 25 bytes
 .../null-value-serializer-1.11/serializer-snapshot |  Bin 0 -> 100 bytes
 .../test-data}                                     |    0
 .../serializer-snapshot                            |  Bin 0 -> 209 bytes
 .../nullable-not-padded-serializer-1.11/test-data  |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 209 bytes
 .../nullable-padded-serializer-1.11/test-data      |  Bin 0 -> 9 bytes
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../serializer-snapshot                            |  Bin
 .../test-data                                      |  Bin
 .../row-serializer-1.11/serializer-snapshot        |  Bin 0 -> 465 bytes
 .../test/resources/row-serializer-1.11/test-data   |  Bin 0 -> 20 bytes
 .../serializer-snapshot                            |  Bin 0 -> 126 bytes
 .../test-data                                      |  Bin 0 -> 24 bytes
 .../short-serializer-1.11/serializer-snapshot      |  Bin 0 -> 92 bytes
 .../test/resources/short-serializer-1.11/test-data |  Bin 0 -> 2 bytes
 .../serializer-snapshot                            |  Bin 0 -> 102 bytes
 .../short-value-serializer-1.11/test-data          |  Bin 0 -> 2 bytes
 .../sql-date-serializer-1.11/serializer-snapshot   |  Bin 0 -> 96 bytes
 .../resources/sql-date-serializer-1.11/test-data   |  Bin 0 -> 8 bytes
 .../sql-time-serializer-1.11/serializer-snapshot   |  Bin 0 -> 96 bytes
 .../resources/sql-time-serializer-1.11/test-data   |  Bin 0 -> 8 bytes
 .../serializer-snapshot                            |  Bin 0 -> 106 bytes
 .../sql-timestamp-serializer-1.11/test-data        |  Bin 0 -> 12 bytes
 .../serializer-snapshot                            |  Bin 0 -> 110 bytes
 .../string-array-serializer-1.11/test-data         |  Bin 0 -> 24 bytes
 .../string-serializer-1.11/serializer-snapshot     |  Bin 0 -> 94 bytes
 .../resources/string-serializer-1.11/test-data     |    1 +
 .../serializer-snapshot                            |  Bin 0 -> 104 bytes
 .../string-value-serializer-1.11/test-data         |    1 +
 .../tuple-serializer-1.11/serializer-snapshot      |  Bin 0 -> 401 bytes
 .../test/resources/tuple-serializer-1.11/test-data |  Bin 0 -> 22 bytes
 .../value-serializer-1.11/serializer-snapshot      |  Bin 0 -> 175 bytes
 .../test/resources/value-serializer-1.11/test-data |  Bin 0 -> 9 bytes
 .../typeutils/AvroSerializerMigrationTest.java     |  259 -----
 .../avro/typeutils/AvroSerializerUpgradeTest.java  |  185 ++++
 ...6-avro-generic-type-serializer-address-snapshot |  Bin 901 -> 0 bytes
 .../resources/flink-1.6-avro-type-serialized-data  |  Bin 23563 -> 0 bytes
 .../flink-1.6-avro-type-serializer-address-data    |  Bin 240 -> 0 bytes
 ...flink-1.6-avro-type-serializer-address-snapshot |  Bin 710 -> 0 bytes
 .../flink-1.6-avro-type-serializer-snapshot        |  Bin 36411 -> 0 bytes
 .../flink-1.7-avro-type-serializer-address-data    |  Bin 240 -> 0 bytes
 .../src/test/resources/flink_11-kryo_registrations |   86 --
 .../serializer-snapshot}                           |  Bin
 .../generic-avro-serializer-1.11/test-data         |  Bin 0 -> 51 bytes
 .../serializer-snapshot}                           |  Bin
 .../specific-avro-serializer-1.11/test-data        |  Bin 0 -> 51 bytes
 .../flink/cep/nfa/sharedbuffer/Lockable.java       |    2 +-
 .../cep/nfa/sharedbuffer/SharedBufferEdge.java     |   19 +
 .../cep/nfa/sharedbuffer/SharedBufferNode.java     |   18 +
 .../cep/NFASerializerSnapshotsMigrationTest.java   |   84 --
 .../apache/flink/cep/NFASerializerUpgradeTest.java |  356 +++++++
 ...ockableTypeSerializerSnapshotMigrationTest.java |   56 --
 .../LockableTypeSerializerUpgradeTest.java         |   75 +-
 .../serializer-snapshot                            |  Bin 0 -> 98 bytes
 .../dewey-number-serializer-1.11/test-data         |  Bin 0 -> 8 bytes
 .../event-id-serializer-1.11/serializer-snapshot   |  Bin 0 -> 99 bytes
 .../resources/event-id-serializer-1.11/test-data   |  Bin 0 -> 12 bytes
 .../flink-1.6-dewey-number-serializer-data         |  Bin 80 -> 0 bytes
 .../flink-1.6-dewey-number-serializer-snapshot     |  Bin 547 -> 0 bytes
 .../resources/flink-1.6-event-id-serializer-data   |  Bin 120 -> 0 bytes
 .../flink-1.6-event-id-serializer-snapshot         |  Bin 402 -> 0 bytes
 .../flink-1.6-lockable-type-serializer-data        |  Bin 160 -> 0 bytes
 .../flink-1.6-lockable-type-serializer-snapshot    |  Bin 561 -> 0 bytes
 .../resources/flink-1.6-nfa-state-serializer-data  |  Bin 1460 -> 0 bytes
 .../flink-1.6-nfa-state-serializer-snapshot        |  Bin 362 -> 0 bytes
 .../resources/flink-1.6-node-id-serializer-data    |  Bin 250 -> 0 bytes
 .../flink-1.6-node-id-serializer-snapshot          |  Bin 398 -> 0 bytes
 .../flink-1.6-shared-buffer-edge-serializer-data   |  Bin 330 -> 0 bytes
 ...link-1.6-shared-buffer-edge-serializer-snapshot |  Bin 438 -> 0 bytes
 .../flink-1.6-shared-buffer-node-serializer-data   |  Bin 370 -> 0 bytes
 ...link-1.6-shared-buffer-node-serializer-snapshot |  Bin 775 -> 0 bytes
 .../flink-1.7-dewey-number-serializer-data         |  Bin 80 -> 0 bytes
 .../flink-1.7-dewey-number-serializer-snapshot     |  Bin 535 -> 0 bytes
 .../resources/flink-1.7-event-id-serializer-data   |  Bin 120 -> 0 bytes
 .../flink-1.7-event-id-serializer-snapshot         |  Bin 390 -> 0 bytes
 .../flink-1.7-lockable-type-serializer-data        |  Bin 160 -> 0 bytes
 .../flink-1.7-lockable-type-serializer-snapshot    |  Bin 241 -> 0 bytes
 .../resources/flink-1.7-nfa-state-serializer-data  |  Bin 1460 -> 0 bytes
 .../flink-1.7-nfa-state-serializer-snapshot        |  Bin 350 -> 0 bytes
 .../resources/flink-1.7-node-id-serializer-data    |  Bin 250 -> 0 bytes
 .../flink-1.7-node-id-serializer-snapshot          |  Bin 386 -> 0 bytes
 .../flink-1.7-shared-buffer-edge-serializer-data   |  Bin 330 -> 0 bytes
 ...link-1.7-shared-buffer-edge-serializer-snapshot |  Bin 426 -> 0 bytes
 .../flink-1.7-shared-buffer-node-serializer-data   |  Bin 370 -> 0 bytes
 ...link-1.7-shared-buffer-node-serializer-snapshot |  Bin 763 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 188 bytes
 .../lockable-type-serializer-1.11/test-data        |  Bin 0 -> 10 bytes
 .../nfa-state-serializer-1.11/serializer-snapshot  |  Bin 0 -> 477 bytes
 .../resources/nfa-state-serializer-1.11/test-data  |  Bin 0 -> 8 bytes
 .../node-id-serializer-1.11/serializer-snapshot    |  Bin 0 -> 211 bytes
 .../resources/node-id-serializer-1.11/test-data    |  Bin 0 -> 18 bytes
 .../serializer-snapshot                            |  Bin 0 -> 447 bytes
 .../shared-buffer-edge-serializer-1.11/test-data   |  Bin 0 -> 26 bytes
 .../serializer-snapshot                            |  Bin 0 -> 680 bytes
 .../shared-buffer-node-serializer-1.11/test-data   |  Bin 0 -> 30 bytes
 ...perHashCodeSerializerSnapshotMigrationTest.java |   55 --
 ...lueWithProperHashCodeSerializerUpgradeTest.java |   74 +-
 ...ong-value-with-proper-hash-code-serializer-data |  Bin 80 -> 0 bytes
 ...value-with-proper-hash-code-serializer-snapshot |  Bin 488 -> 0 bytes
 ...ong-value-with-proper-hash-code-serializer-data |  Bin 80 -> 0 bytes
 ...value-with-proper-hash-code-serializer-snapshot |  Bin 476 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 162 bytes
 .../test-data                                      |  Bin 0 -> 8 bytes
 .../ValueArraySerializerSnapshotMigrationTest.java |   93 --
 .../ValueArraySerializerUpgradeTest.java           |  523 ++++++++++
 .../serializer-snapshot                            |  Bin 0 -> 107 bytes
 .../byte-value-array-serializer-1.11/test-data     |  Bin 0 -> 6 bytes
 .../serializer-snapshot                            |  Bin 0 -> 107 bytes
 .../char-value-array-serializer-1.11/test-data     |  Bin 0 -> 10 bytes
 .../serializer-snapshot                            |  Bin 0 -> 111 bytes
 .../double-value-array-serializer-1.11/test-data   |  Bin 0 -> 20 bytes
 .../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
 .../serializer-snapshot                            |  Bin 0 -> 109 bytes
 .../float-value-array-serializer-1.11/test-data    |  Bin 0 -> 12 bytes
 .../serializer-snapshot                            |  Bin 0 -> 105 bytes
 .../int-value-array-serializer-1.11/test-data      |  Bin 0 -> 12 bytes
 .../serializer-snapshot                            |  Bin 0 -> 107 bytes
 .../long-value-array-serializer-1.11/test-data     |  Bin 0 -> 20 bytes
 .../serializer-snapshot                            |  Bin 0 -> 107 bytes
 .../null-value-array-serializer-1.11/test-data     |  Bin 0 -> 4 bytes
 .../serializer-snapshot                            |  Bin 0 -> 109 bytes
 .../short-value-array-serializer-1.11/test-data    |  Bin 0 -> 8 bytes
 .../serializer-snapshot                            |  Bin 0 -> 111 bytes
 .../string-value-array-serializer-1.11/test-data   |  Bin 0 -> 16 bytes
 .../apache/flink/runtime/state/JavaSerializer.java |    8 +-
 .../state/ArrayListSerializerMigrationTest.java    |   57 --
 .../state/ArrayListSerializerUpgradeTest.java      |   80 +-
 .../state/JavaSerializerSnapshotMigrationTest.java |   57 --
 .../runtime/state/JavaSerializerUpgradeTest.java   |   78 +-
 .../state/VoidNamespaceSerializerUpgradeTest.java  |   75 +-
 ...dNamespacieSerializerSnapshotMigrationTest.java |   55 --
 .../state/ttl/TtlSerializerStateMigrationTest.java |   60 --
 .../state/ttl/TtlSerializerUpgradeTest.java        |  105 ++
 .../flink/runtime/state/ttl/TtlValueMatchers.java  |   67 ++
 .../arraylist-serializer-1.11/serializer-snapshot  |  Bin 0 -> 178 bytes
 .../resources/arraylist-serializer-1.11/test-data  |  Bin 0 -> 17 bytes
 .../resources/flink-1.6-arraylist-serializer-data  |  Bin 240 -> 0 bytes
 .../flink-1.6-arraylist-serializer-snapshot        |  Bin 881 -> 0 bytes
 .../test/resources/flink-1.6-java-serializer-data  |  Bin 180 -> 0 bytes
 .../resources/flink-1.6-java-serializer-snapshot   |  Bin 366 -> 0 bytes
 .../test/resources/flink-1.6-ttl-serializer-data   |  Bin 230 -> 0 bytes
 .../resources/flink-1.6-ttl-serializer-snapshot    |  Bin 1753 -> 0 bytes
 .../flink-1.6-void-namespace-serializer-data       |  Bin 10 -> 0 bytes
 .../flink-1.6-void-namespace-serializer-snapshot   |  Bin 384 -> 0 bytes
 .../resources/flink-1.7-arraylist-serializer-data  |  Bin 240 -> 0 bytes
 .../flink-1.7-arraylist-serializer-snapshot        |  Bin 231 -> 0 bytes
 .../test/resources/flink-1.7-java-serializer-data  |  Bin 180 -> 0 bytes
 .../resources/flink-1.7-java-serializer-snapshot   |  Bin 354 -> 0 bytes
 .../test/resources/flink-1.7-ttl-serializer-data   |  Bin 230 -> 0 bytes
 .../resources/flink-1.7-ttl-serializer-snapshot    |  Bin 1763 -> 0 bytes
 .../flink-1.7-void-namespace-serializer-data       |  Bin 10 -> 0 bytes
 .../flink-1.7-void-namespace-serializer-snapshot   |  Bin 372 -> 0 bytes
 .../java-serializer-1.11/serializer-snapshot       |  Bin 0 -> 78 bytes
 .../test/resources/java-serializer-1.11/test-data  |  Bin 0 -> 81 bytes
 .../ttl-serializer-1.11/serializer-snapshot        |  Bin 0 -> 278 bytes
 .../test/resources/ttl-serializer-1.11/test-data   |  Bin 0 -> 21 bytes
 .../serializer-snapshot                            |  Bin 0 -> 96 bytes
 .../void-namespace-serializer-1.11/test-data       |  Bin 0 -> 1 bytes
 ...ScalaEitherSerializerSnapshotMigrationTest.java |   59 --
 .../ScalaEitherSerializerUpgradeTest.java          |   80 +-
 ...ScalaOptionSerializerSnapshotMigrationTest.java |   58 --
 .../ScalaOptionSerializerUpgradeTest.java          |  104 ++
 .../ScalaTrySerializerSnapshotMigrationTest.java   |   59 --
 .../typeutils/ScalaTrySerializerUpgradeTest.java   |  100 +-
 .../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.6-scala-either-serializer-data         |  Bin 130 -> 0 bytes
 .../flink-1.6-scala-either-serializer-snapshot     |  Bin 1358 -> 0 bytes
 .../resources/flink-1.6-scala-enum-serializer-data |  Bin 40 -> 0 bytes
 .../flink-1.6-scala-enum-serializer-snapshot       |  Bin 1865 -> 0 bytes
 .../flink-1.6-scala-option-serializer-data         |  Bin 31 -> 0 bytes
 .../flink-1.6-scala-option-serializer-snapshot     |  Bin 876 -> 0 bytes
 .../resources/flink-1.6-scala-try-serializer-data  |  Bin 1658 -> 0 bytes
 .../flink-1.6-scala-try-serializer-snapshot        |  Bin 7054 -> 0 bytes
 .../flink-1.6-traversable-serializer-bitset-data   |  Bin 140 -> 0 bytes
 ...link-1.6-traversable-serializer-bitset-snapshot |  Bin 992 -> 0 bytes
 ...link-1.6-traversable-serializer-indexedseq-data |  Bin 130 -> 0 bytes
 ...-1.6-traversable-serializer-indexedseq-snapshot |  Bin 992 -> 0 bytes
 ...flink-1.6-traversable-serializer-linearseq-data |  Bin 130 -> 0 bytes
 ...k-1.6-traversable-serializer-linearseq-snapshot |  Bin 992 -> 0 bytes
 .../flink-1.6-traversable-serializer-map-data      |  Bin 138 -> 0 bytes
 .../flink-1.6-traversable-serializer-map-snapshot  |  Bin 3033 -> 0 bytes
 ...nk-1.6-traversable-serializer-mutable-list-data |  Bin 160 -> 0 bytes
 ....6-traversable-serializer-mutable-list-snapshot |  Bin 993 -> 0 bytes
 .../flink-1.6-traversable-serializer-seq-data      |  Bin 130 -> 0 bytes
 .../flink-1.6-traversable-serializer-seq-snapshot  |  Bin 992 -> 0 bytes
 .../flink-1.6-traversable-serializer-set-data      |  Bin 135 -> 0 bytes
 .../flink-1.6-traversable-serializer-set-snapshot  |  Bin 992 -> 0 bytes
 ...1.6-traversable-serializer-with-case-class-data |  Bin 145 -> 0 bytes
 ...traversable-serializer-with-case-class-snapshot |  Bin 3036 -> 0 bytes
 ...flink-1.6-traversable-serializer-with-pojo-data |  Bin 253 -> 0 bytes
 ...k-1.6-traversable-serializer-with-pojo-snapshot |  Bin 6854 -> 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
 .../flink-1.7-scala-either-serializer-data         |  Bin 130 -> 0 bytes
 .../flink-1.7-scala-either-serializer-snapshot     |  Bin 381 -> 0 bytes
 .../resources/flink-1.7-scala-enum-serializer-data |  Bin 40 -> 0 bytes
 .../flink-1.7-scala-enum-serializer-snapshot       |  Bin 1853 -> 0 bytes
 .../flink-1.7-scala-option-serializer-data         |  Bin 31 -> 0 bytes
 .../flink-1.7-scala-option-serializer-snapshot     |  Bin 877 -> 0 bytes
 .../resources/flink-1.7-scala-try-serializer-data  |  Bin 1658 -> 0 bytes
 .../flink-1.7-scala-try-serializer-snapshot        |  Bin 8932 -> 0 bytes
 .../flink-1.7-traversable-serializer-bitset-data   |  Bin 140 -> 0 bytes
 ...link-1.7-traversable-serializer-bitset-snapshot |  Bin 987 -> 0 bytes
 ...link-1.7-traversable-serializer-indexedseq-data |  Bin 130 -> 0 bytes
 ...-1.7-traversable-serializer-indexedseq-snapshot |  Bin 987 -> 0 bytes
 ...flink-1.7-traversable-serializer-linearseq-data |  Bin 130 -> 0 bytes
 ...k-1.7-traversable-serializer-linearseq-snapshot |  Bin 987 -> 0 bytes
 .../flink-1.7-traversable-serializer-map-data      |  Bin 138 -> 0 bytes
 .../flink-1.7-traversable-serializer-map-snapshot  |  Bin 3905 -> 0 bytes
 ...nk-1.7-traversable-serializer-mutable-list-data |  Bin 160 -> 0 bytes
 ....7-traversable-serializer-mutable-list-snapshot |  Bin 988 -> 0 bytes
 .../flink-1.7-traversable-serializer-seq-data      |  Bin 130 -> 0 bytes
 .../flink-1.7-traversable-serializer-seq-snapshot  |  Bin 987 -> 0 bytes
 .../flink-1.7-traversable-serializer-set-data      |  Bin 135 -> 0 bytes
 .../flink-1.7-traversable-serializer-set-snapshot  |  Bin 987 -> 0 bytes
 ...1.7-traversable-serializer-with-case-class-data |  Bin 145 -> 0 bytes
 ...traversable-serializer-with-case-class-snapshot |  Bin 3909 -> 0 bytes
 ...flink-1.7-traversable-serializer-with-pojo-data |  Bin 253 -> 0 bytes
 ...k-1.7-traversable-serializer-with-pojo-snapshot |  Bin 9607 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 323 bytes
 .../scala-case-class-serializer-1.11/test-data     |  Bin 0 -> 10 bytes
 .../serializer-snapshot                            |  Bin 0 -> 270 bytes
 .../scala-either-serializer-1.11/test-data         |  Bin 0 -> 13 bytes
 .../scala-enum-serializer-1.11/serializer-snapshot |  Bin 0 -> 146 bytes
 .../resources/scala-enum-serializer-1.11/test-data |  Bin 0 -> 4 bytes
 .../serializer-snapshot                            |  Bin 0 -> 186 bytes
 .../scala-option-serializer-1.11/test-data         |  Bin 0 -> 1 bytes
 .../scala-try-serializer-1.11/serializer-snapshot  |  Bin 0 -> 672 bytes
 .../resources/scala-try-serializer-1.11/test-data  |  Bin 0 -> 3144 bytes
 .../serializer-snapshot                            |  Bin 0 -> 286 bytes
 .../traversable-serializer-bitset-1.11/test-data   |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 270 bytes
 .../test-data                                      |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 302 bytes
 .../test-data                                      |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 479 bytes
 .../traversable-serializer-map-1.11/test-data      |  Bin 0 -> 27 bytes
 .../serializer-snapshot                            |  Bin 0 -> 322 bytes
 .../test-data                                      |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 256 bytes
 .../traversable-serializer-seq-1.11/test-data      |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 256 bytes
 .../traversable-serializer-set-1.11/test-data      |  Bin 0 -> 19 bytes
 .../serializer-snapshot                            |  Bin 0 -> 485 bytes
 .../test-data                                      |  Bin 0 -> 27 bytes
 .../serializer-snapshot                            |  Bin 0 -> 977 bytes
 .../test-data                                      |  Bin 0 -> 33 bytes
 ... => EnumValueSerializerCompatibilityTest.scala} |    6 +-
 .../EnumValueSerializerSnapshotMigrationTest.scala |   61 --
 .../typeutils/EnumValueSerializerUpgradeTest.scala |  231 ++---
 ...aCaseClassSerializerSnapshotMigrationTest.scala |   71 --
 .../ScalaCaseClassSerializerUpgradeTest.scala      |   89 ++
 ...raversableSerializerSnapshotMigrationTest.scala |  118 ---
 .../TraversableSerializerUpgradeTest.scala         |  326 +++++++
 .../streaming/api/datastream/CoGroupedStreams.java |   20 +-
 .../api/operators/TimerHeapInternalTimer.java      |    2 +-
 .../api/operators/co/IntervalJoinOperator.java     |   18 +-
 .../datastream/UnionSerializerMigrationTest.java   |   67 --
 .../api/datastream/UnionSerializerUpgradeTest.java |  154 +++
 ...haseCommitSinkStateSerializerMigrationTest.java |   61 --
 ...oPhaseCommitSinkStateSerializerUpgradeTest.java |  116 +++
 .../TimerSerializerSnapshotMigrationTest.java      |   61 --
 .../api/operators/TimerSerializerUpgradeTest.java  |  107 +++
 .../api/operators/co/BufferEntryMatchers.java      |   69 ++
 .../co/BufferEntrySerializerMigrationTest.java     |   57 --
 .../co/BufferEntrySerializerUpgradeTest.java       |  112 +++
 .../WindowSerializerSnapshotsMigrationTest.java    |   60 --
 .../windowing/WindowSerializerUpgradeTest.java     |  144 +++
 .../StreamElementSerializerMigrationTest.java      |   55 --
 .../StreamElementSerializerUpgradeTest.java        |   76 +-
 .../serializer-snapshot                            |  Bin 0 -> 214 bytes
 .../buffer-entry-serializer-1.11/test-data         |  Bin 0 -> 7 bytes
 .../flink-1.6-buffer-entry-serializer-data         |  Bin 160 -> 0 bytes
 .../flink-1.6-buffer-entry-serializer-snapshot     |  Bin 935 -> 0 bytes
 .../flink-1.6-global-window-serializer-data        |  Bin 10 -> 0 bytes
 .../flink-1.6-global-window-serializer-snapshot    |  Bin 420 -> 0 bytes
 .../flink-1.6-stream-element-serializer-data       |  Bin 158 -> 0 bytes
 .../flink-1.6-stream-element-serializer-snapshot   |  Bin 931 -> 0 bytes
 .../flink-1.6-time-window-serializer-data          |  Bin 160 -> 0 bytes
 .../flink-1.6-time-window-serializer-snapshot      |  Bin 416 -> 0 bytes
 .../test/resources/flink-1.6-timer-serializer-data |  Bin 240 -> 0 bytes
 .../resources/flink-1.6-timer-serializer-snapshot  |  Bin 1406 -> 0 bytes
 ...1.6-two-phase-commit-sink-state-serializer-data |  Bin 530 -> 0 bytes
 ...two-phase-commit-sink-state-serializer-snapshot |  Bin 1430 -> 0 bytes
 .../test/resources/flink-1.6-union-serializer-data |    1 -
 .../resources/flink-1.6-union-serializer-snapshot  |  Bin 1393 -> 0 bytes
 .../flink-1.7-buffer-entry-serializer-data         |  Bin 160 -> 0 bytes
 .../flink-1.7-buffer-entry-serializer-snapshot     |  Bin 936 -> 0 bytes
 .../flink-1.7-global-window-serializer-data        |  Bin 10 -> 0 bytes
 .../flink-1.7-global-window-serializer-snapshot    |  Bin 408 -> 0 bytes
 .../flink-1.7-stream-element-serializer-data       |  Bin 158 -> 0 bytes
 .../flink-1.7-stream-element-serializer-snapshot   |  Bin 932 -> 0 bytes
 .../flink-1.7-time-window-serializer-data          |  Bin 160 -> 0 bytes
 .../flink-1.7-time-window-serializer-snapshot      |  Bin 404 -> 0 bytes
 .../test/resources/flink-1.7-timer-serializer-data |  Bin 240 -> 0 bytes
 .../resources/flink-1.7-timer-serializer-snapshot  |  Bin 1414 -> 0 bytes
 ...1.7-two-phase-commit-sink-state-serializer-data |  Bin 530 -> 0 bytes
 ...two-phase-commit-sink-state-serializer-snapshot |  Bin 1438 -> 0 bytes
 .../test/resources/flink-1.7-union-serializer-data |    1 -
 .../resources/flink-1.7-union-serializer-snapshot  |  Bin 1403 -> 0 bytes
 .../serializer-snapshot                            |  Bin 0 -> 113 bytes
 .../global-window-serializer-1.11/test-data        |  Bin 0 -> 1 bytes
 .../serializer-snapshot                            |  Bin 0 -> 223 bytes
 .../stream-element-serializer-1.11/test-data       |  Bin 0 -> 13 bytes
 .../serializer-snapshot                            |  Bin 0 -> 109 bytes
 .../time-window-serializer-1.11/test-data          |  Bin 0 -> 16 bytes
 .../timer-serializer-1.11/serializer-snapshot      |  Bin 0 -> 268 bytes
 .../test/resources/timer-serializer-1.11/test-data |  Bin 0 -> 16 bytes
 .../serializer-snapshot                            |  Bin 0 -> 300 bytes
 .../test-data                                      |  Bin 0 -> 35 bytes
 .../union-serializer-one-1.11/serializer-snapshot  |  Bin 0 -> 288 bytes
 .../resources/union-serializer-one-1.11/test-data  |    1 +
 .../union-serializer-two-1.11/serializer-snapshot  |  Bin 0 -> 288 bytes
 .../resources/union-serializer-two-1.11/test-data  |  Bin 0 -> 9 bytes
 .../ListViewSerializerSnapshotMigrationTest.java   |   58 --
 .../dataview/ListViewSerializerUpgradeTest.java    |  127 +++
 .../MapViewSerializerSnapshotMigrationTest.java    |   59 --
 .../dataview/MapViewSerializerUpgradeTest.java     |   88 +-
 .../resources/flink-1.6-list-view-serializer-data  |  Bin 240 -> 0 bytes
 .../flink-1.6-list-view-serializer-snapshot        |  Bin 1038 -> 0 bytes
 .../resources/flink-1.6-map-view-serializer-data   |  Bin 440 -> 0 bytes
 .../flink-1.6-map-view-serializer-snapshot         |  Bin 1503 -> 0 bytes
 .../resources/flink-1.7-list-view-serializer-data  |  Bin 240 -> 0 bytes
 .../flink-1.7-list-view-serializer-snapshot        |  Bin 314 -> 0 bytes
 .../resources/flink-1.7-map-view-serializer-data   |  Bin 390 -> 0 bytes
 .../flink-1.7-map-view-serializer-snapshot         |  Bin 454 -> 0 bytes
 .../list-view-serializer-1.11/serializer-snapshot  |  Bin 0 -> 269 bytes
 .../resources/list-view-serializer-1.11/test-data  |  Bin 0 -> 16 bytes
 .../map-view-serializer-1.11/serializer-snapshot   |  Bin 0 -> 351 bytes
 .../resources/map-view-serializer-1.11/test-data   |  Bin 0 -> 11 bytes
 717 files changed, 6501 insertions(+), 4435 deletions(-)
 create mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/Kafka011SerializerUpgradeTest.java
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java
 create mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/serializer-snapshot
 create mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/test-data
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-data
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-snapshot
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-data
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-snapshot
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-data
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-snapshot
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-data
 delete mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-snapshot
 create mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot
 create mode 100644 flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/test-data
 delete mode 100644 flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java
 create mode 100644 flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerUpgradeTest.java
 create mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/serializer-snapshot
 create mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/test-data
 delete mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-data
 delete mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-snapshot
 delete mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-data
 delete mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-snapshot
 create mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot
 create mode 100644 flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/test-data
 delete mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerMigrationTest.java
 create mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerUpgradeTest.java
 delete mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-data
 delete mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-snapshot
 delete mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-data
 delete mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-snapshot
 create mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/serializer-snapshot
 create mode 100644 flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/test-data
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerSnapshotMigrationTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerUpgradeTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerSnapshotMigrationTestBase.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BaseTypeSerializerSnapshotMigrationTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTestSpecifications.java
 copy flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/{EnumSerializerUpgradeTest.java => EnumSerializerCompatibilityTest.java} (98%)
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerSnapshotMigrationTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/{java/typeutils/runtime/RowSerializerUpgradeTest.java => common/typeutils/base/ListSerializerUpgradeTest.java} (50%)
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/{java/typeutils/runtime/RowSerializerUpgradeTest.java => common/typeutils/base/MapSerializerUpgradeTest.java} (50%)
 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/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerMigrationTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerUpgradeTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerMigrationTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerUpgradeTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerMigrationTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerUpgradeTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerMigrationTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerUpgradeTest.java
 create mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerUpgradeTest.java
 delete mode 100644 flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSnapshotMigrationTest.java
 create mode 100644 flink-core/src/test/resources/big-dec-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/big-dec-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/big-int-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/big-int-serializer-1.11/test-data
 rename flink-core/src/test/resources/{flink-1.7-boolean-primitive-array-serializer-snapshot => boolean-primitive-array-serializer-1.11/serializer-snapshot} (60%)
 create mode 100644 flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/boolean-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/boolean-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/boolean-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/boolean-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/byte-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/byte-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/byte-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/byte-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/byte-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/byte-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/char-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/char-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/char-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/char-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/char-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/char-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/copyable-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/copyable-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/date-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/date-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/double-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/double-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/double-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/double-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/double-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/double-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/either-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/either-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/enum-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/enum-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/enum-serializerreconfig-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/enum-serializerreconfig-1.11/test-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-big-dec-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-big-dec-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-big-int-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-big-int-serializer-snapshot
 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-boolean-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-boolean-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-boolean-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-boolean-value-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-byte-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-byte-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-byte-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-byte-value-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-char-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-char-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-char-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-char-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-copyable-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-copyable-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-date-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-date-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-double-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-double-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-double-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-double-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-either-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-either-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-enum-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-enum-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-float-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-float-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-float-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-float-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-generic-array-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-generic-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-int-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-int-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-int-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-int-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-kryo-type-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-kryo-type-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-list-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-list-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-long-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-long-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-long-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-long-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-map-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-map-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-null-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-null-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-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.6-short-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-short-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-short-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-short-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-sql-date-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-sql-date-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-sql-time-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-sql-time-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-string-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-string-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-string-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-string-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-tuple-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-tuple-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.6-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.6-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-big-dec-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-big-dec-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-big-int-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-big-int-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-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-boolean-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-boolean-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-boolean-value-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-byte-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-byte-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-byte-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-byte-value-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-char-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-char-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-char-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-char-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-copyable-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-copyable-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-date-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-date-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-double-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-double-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-double-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-double-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-either-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-either-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-enum-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-enum-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-float-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-float-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-float-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-float-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-generic-array-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-generic-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-int-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-int-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-int-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-int-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-kryo-type-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-kryo-type-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-list-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-list-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-long-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-long-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-long-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-long-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-map-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-map-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-null-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-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
 delete mode 100644 flink-core/src/test/resources/flink-1.7-short-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-short-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-short-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-short-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-sql-date-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-sql-date-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-sql-time-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-sql-time-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-string-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-string-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-string-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-string-value-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-tuple-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-tuple-serializer-snapshot
 delete mode 100644 flink-core/src/test/resources/flink-1.7-value-serializer-data
 delete mode 100644 flink-core/src/test/resources/flink-1.7-value-serializer-snapshot
 create mode 100644 flink-core/src/test/resources/float-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/float-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/float-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/float-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/float-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/float-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/generic-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/generic-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/int-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/int-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/int-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/int-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/int-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/int-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/test-data
 create mode 100644 flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/test-data
 create mode 100644 flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/test-data
 create mode 100644 flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/test-data
 create mode 100644 flink-core/src/test/resources/list-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/list-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/long-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/long-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/long-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/long-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/long-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/long-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/map-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/map-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/null-value-serializer-1.11/serializer-snapshot
 rename flink-core/src/test/resources/{flink-1.7-null-value-serializer-data => null-value-serializer-1.11/test-data} (100%)
 create mode 100644 flink-core/src/test/resources/nullable-not-padded-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/nullable-not-padded-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/nullable-padded-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/nullable-padded-serializer-1.11/test-data
 copy flink-core/src/test/resources/{pojo-serializer-identical-schema-1.9 => pojo-serializer-identical-schema-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-identical-schema-1.9 => pojo-serializer-identical-schema-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-different-field-types-1.9 => pojo-serializer-with-different-field-types-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-different-field-types-1.9 => pojo-serializer-with-different-field-types-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-different-field-types-in-registered-subclass-1.9 => pojo-serializer-with-different-field-types-in-registered-subclass-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-different-field-types-in-registered-subclass-1.9 => pojo-serializer-with-different-field-types-in-registered-subclass-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-new-and-missing-registered-subclasses-1.9 => pojo-serializer-with-different-subclass-registration-order-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-new-and-missing-registered-subclasses-1.9 => pojo-serializer-with-different-subclass-registration-order-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-new-and-missing-registered-subclasses-1.9 => pojo-serializer-with-missing-registered-subclass-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-new-and-missing-registered-subclasses-1.9 => pojo-serializer-with-missing-registered-subclass-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-modified-schema-1.9 => pojo-serializer-with-modified-schema-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-modified-schema-1.9 => pojo-serializer-with-modified-schema-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-modified-schema-in-registered-subclass-1.9 => pojo-serializer-with-modified-schema-in-registered-subclass-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-modified-schema-in-registered-subclass-1.9 => pojo-serializer-with-modified-schema-in-registered-subclass-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-new-and-missing-registered-subclasses-1.9 => pojo-serializer-with-new-and-missing-registered-subclasses-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-new-and-missing-registered-subclasses-1.9 => pojo-serializer-with-new-and-missing-registered-subclasses-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-non-registered-subclass-1.9 => pojo-serializer-with-new-registered-subclass-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-non-registered-subclass-1.9 => pojo-serializer-with-new-registered-subclass-1.11}/test-data (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-non-registered-subclass-1.9 => pojo-serializer-with-non-registered-subclass-1.11}/serializer-snapshot (100%)
 copy flink-core/src/test/resources/{pojo-serializer-with-non-registered-subclass-1.9 => pojo-serializer-with-non-registered-subclass-1.11}/test-data (100%)
 create mode 100644 flink-core/src/test/resources/row-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/row-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/short-primitive-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/short-primitive-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/short-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/short-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/short-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/short-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/sql-date-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/sql-date-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/sql-time-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/sql-time-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/sql-timestamp-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/sql-timestamp-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/string-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/string-array-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/string-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/string-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/string-value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/string-value-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/tuple-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/tuple-serializer-1.11/test-data
 create mode 100644 flink-core/src/test/resources/value-serializer-1.11/serializer-snapshot
 create mode 100644 flink-core/src/test/resources/value-serializer-1.11/test-data
 delete mode 100644 flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerMigrationTest.java
 create mode 100644 flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink-1.6-avro-generic-type-serializer-address-snapshot
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serialized-data
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-data
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-snapshot
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-snapshot
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-data
 delete mode 100644 flink-formats/flink-avro/src/test/resources/flink_11-kryo_registrations
 rename flink-formats/flink-avro/src/test/resources/{flink-1.7-avro-generic-type-serializer-address-snapshot => generic-avro-serializer-1.11/serializer-snapshot} (100%)
 create mode 100644 flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/test-data
 rename flink-formats/flink-avro/src/test/resources/{flink-1.7-avro-type-serializer-address-snapshot => specific-avro-serializer-1.11/serializer-snapshot} (100%)
 create mode 100644 flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/test-data
 delete mode 100644 flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerSnapshotsMigrationTest.java
 create mode 100644 flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerUpgradeTest.java
 delete mode 100644 flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerUpgradeTest.java (50%)
 create mode 100644 flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/test-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-snapshot
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-data
 delete mode 100644 flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/test-data
 delete mode 100644 flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerUpgradeTest.java (50%)
 delete mode 100644 flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-data
 delete mode 100644 flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-data
 delete mode 100644 flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/test-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerSnapshotMigrationTest.java
 create mode 100644 flink-libraries/flink-gelly/src/test/java/org/apache/flink/graph/types/valuearray/ValueArraySerializerUpgradeTest.java
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/test-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-byte-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-char-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-double-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-float-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-int-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-long-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-null-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-short-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.6-string-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-byte-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-char-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-double-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-float-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-int-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-long-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-null-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-short-value-array-serializer-snapshot
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-data
 delete mode 100644 flink-libraries/flink-gelly/src/test/resources/flink-1.7-string-value-array-serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/test-data
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/serializer-snapshot
 create mode 100644 flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/test-data
 delete mode 100644 flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerUpgradeTest.java (50%)
 delete mode 100644 flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerUpgradeTest.java (50%)
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespaceSerializerUpgradeTest.java (50%)
 delete mode 100644 flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespacieSerializerSnapshotMigrationTest.java
 delete mode 100644 flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerStateMigrationTest.java
 create mode 100644 flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerUpgradeTest.java
 create mode 100644 flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlValueMatchers.java
 create mode 100644 flink-runtime/src/test/resources/arraylist-serializer-1.11/serializer-snapshot
 create mode 100644 flink-runtime/src/test/resources/arraylist-serializer-1.11/test-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-java-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-java-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-ttl-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-ttl-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-java-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-java-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-ttl-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-ttl-serializer-snapshot
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-data
 delete mode 100644 flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-snapshot
 create mode 100644 flink-runtime/src/test/resources/java-serializer-1.11/serializer-snapshot
 create mode 100644 flink-runtime/src/test/resources/java-serializer-1.11/test-data
 create mode 100644 flink-runtime/src/test/resources/ttl-serializer-1.11/serializer-snapshot
 create mode 100644 flink-runtime/src/test/resources/ttl-serializer-1.11/test-data
 create mode 100644 flink-runtime/src/test/resources/void-namespace-serializer-1.11/serializer-snapshot
 create mode 100644 flink-runtime/src/test/resources/void-namespace-serializer-1.11/test-data
 delete mode 100644 flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerUpgradeTest.java (50%)
 delete mode 100644 flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerSnapshotMigrationTest.java
 create mode 100644 flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerUpgradeTest.java
 delete mode 100644 flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerUpgradeTest.java (50%)
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-either-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-either-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-option-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-option-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-try-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-scala-try-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-either-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-either-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-option-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-option-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-try-serializer-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-scala-try-serializer-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-snapshot
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-data
 delete mode 100644 flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-snapshot
 create mode 100644 flink-scala/src/test/resources/scala-case-class-serializer-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/scala-case-class-serializer-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/scala-either-serializer-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/scala-either-serializer-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/scala-enum-serializer-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/scala-enum-serializer-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/scala-option-serializer-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/scala-option-serializer-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/scala-try-serializer-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/scala-try-serializer-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-bitset-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-bitset-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-map-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-map-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-seq-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-seq-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-set-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-set-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/test-data
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/serializer-snapshot
 create mode 100644 flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/test-data
 copy flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/{EnumValueSerializerUpgradeTest.scala => EnumValueSerializerCompatibilityTest.scala} (97%)
 delete mode 100644 flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerSnapshotMigrationTest.scala
 delete mode 100644 flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala
 create mode 100644 flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala
 delete mode 100644 flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerSnapshotMigrationTest.scala
 create mode 100644 flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerUpgradeTest.scala
 delete mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerMigrationTest.java
 create mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerUpgradeTest.java
 delete mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerMigrationTest.java
 create mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerUpgradeTest.java
 delete mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerSnapshotMigrationTest.java
 create mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerUpgradeTest.java
 create mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntryMatchers.java
 delete mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerMigrationTest.java
 create mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerUpgradeTest.java
 delete mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerSnapshotsMigrationTest.java
 create mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerUpgradeTest.java
 delete mode 100644 flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerUpgradeTest.java (50%)
 create mode 100644 flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/test-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-union-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.6-union-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-snapshot
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-union-serializer-data
 delete mode 100644 flink-streaming-java/src/test/resources/flink-1.7-union-serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/global-window-serializer-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/global-window-serializer-1.11/test-data
 create mode 100644 flink-streaming-java/src/test/resources/stream-element-serializer-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/stream-element-serializer-1.11/test-data
 create mode 100644 flink-streaming-java/src/test/resources/time-window-serializer-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/time-window-serializer-1.11/test-data
 create mode 100644 flink-streaming-java/src/test/resources/timer-serializer-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/timer-serializer-1.11/test-data
 create mode 100644 flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/test-data
 create mode 100644 flink-streaming-java/src/test/resources/union-serializer-one-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/union-serializer-one-1.11/test-data
 create mode 100644 flink-streaming-java/src/test/resources/union-serializer-two-1.11/serializer-snapshot
 create mode 100644 flink-streaming-java/src/test/resources/union-serializer-two-1.11/test-data
 delete mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerSnapshotMigrationTest.java
 create mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerUpgradeTest.java
 delete mode 100644 flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerSnapshotMigrationTest.java
 copy flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java => flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerUpgradeTest.java (50%)
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-data
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-snapshot
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-data
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-snapshot
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-data
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-snapshot
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-data
 delete mode 100644 flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-snapshot
 create mode 100644 flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/serializer-snapshot
 create mode 100644 flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/test-data
 create mode 100644 flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/serializer-snapshot
 create mode 100644 flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/test-data


[flink] 27/42: [FLINK-13632] Port CompositeSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 33135677c4349c4cb62eab50fc8f08fb4a4031d6
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Feb 19 21:03:34 2020 +0800

    [FLINK-13632] Port CompositeSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 ...mpositeTypeSerializerSnapshotMigrationTest.java |  63 ---------
 .../CompositeTypeSerializerUpgradeTest.java        | 147 +++++++++++++++++++++
 .../resources/flink-1.6-either-serializer-data     | Bin 42 -> 0 bytes
 .../resources/flink-1.6-either-serializer-snapshot | Bin 1365 -> 0 bytes
 .../flink-1.6-generic-array-serializer-data        | Bin 90 -> 0 bytes
 .../flink-1.6-generic-array-serializer-snapshot    | Bin 1007 -> 0 bytes
 .../resources/flink-1.7-either-serializer-data     |   1 -
 .../resources/flink-1.7-either-serializer-snapshot | Bin 383 -> 0 bytes
 .../flink-1.7-generic-array-serializer-data        | Bin 280 -> 0 bytes
 .../flink-1.7-generic-array-serializer-snapshot    | Bin 270 -> 0 bytes
 10 files changed, 147 insertions(+), 64 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 6294bef..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,63 +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;
-
-import org.apache.flink.api.common.typeutils.base.GenericArraySerializer;
-import org.apache.flink.api.common.typeutils.base.GenericArraySerializerSnapshot;
-import org.apache.flink.api.common.typeutils.base.IntSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.api.java.typeutils.runtime.EitherSerializer;
-import org.apache.flink.api.java.typeutils.runtime.JavaEitherSerializerSnapshot;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration tests for Composite Types.
- */
-@RunWith(Parameterized.class)
-public class CompositeTypeSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public CompositeTypeSerializerSnapshotMigrationTest(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(
-			"either-serializer",
-			EitherSerializer.class,
-			JavaEitherSerializerSnapshot.class,
-			() -> new EitherSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE));
-		testSpecifications.add(
-			"generic-array-serializer",
-			GenericArraySerializer.class,
-			GenericArraySerializerSnapshot.class,
-			() -> new GenericArraySerializer<>(String.class, StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerUpgradeTest.java
new file mode 100644
index 0000000..a82ec29
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerUpgradeTest.java
@@ -0,0 +1,147 @@
+/*
+ * 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;
+
+import org.apache.flink.api.common.typeutils.base.GenericArraySerializer;
+import org.apache.flink.api.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.api.java.typeutils.runtime.EitherSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+import org.apache.flink.types.Either;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link GenericArraySerializer}.
+ */
+@RunWith(Parameterized.class)
+public class CompositeTypeSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public CompositeTypeSerializerUpgradeTest(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<>(
+					"either-serializer",
+					migrationVersion,
+					EitherSerializerSetup.class,
+					EitherSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"generic-array-serializer",
+					migrationVersion,
+					GenericArraySerializerSetup.class,
+					GenericArraySerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "either-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EitherSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Either<String, Integer>> {
+		@Override
+		public TypeSerializer<Either<String, Integer>> createPriorSerializer() {
+			return new EitherSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE);
+		}
+
+		@Override
+		public Either<String, Integer> createTestData() {
+			return new Either.Left<>("ApacheFlink");
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EitherSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Either<String, Integer>> {
+		@Override
+		public TypeSerializer<Either<String, Integer>> createUpgradedSerializer() {
+			return new EitherSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<Either<String, Integer>> testDataMatcher() {
+			return is(new Either.Left<>("ApacheFlink"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Either<String, Integer>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "generic-array-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class GenericArraySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<String[]> {
+		@Override
+		public TypeSerializer<String[]> createPriorSerializer() {
+			return new GenericArraySerializer<>(String.class, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public String[] createTestData() {
+			String[] data = {"Apache", "Flink"};
+			return data;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class GenericArraySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<String[]> {
+		@Override
+		public TypeSerializer<String[]> createUpgradedSerializer() {
+			return new GenericArraySerializer<>(String.class, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<String[]> testDataMatcher() {
+			String[] data = {"Apache", "Flink"};
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<String[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-core/src/test/resources/flink-1.6-either-serializer-data b/flink-core/src/test/resources/flink-1.6-either-serializer-data
deleted file mode 100644
index 619dc59..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-either-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-either-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-either-serializer-snapshot
deleted file mode 100644
index ed2e378..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-either-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-generic-array-serializer-data b/flink-core/src/test/resources/flink-1.6-generic-array-serializer-data
deleted file mode 100644
index 47ac459..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-generic-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-generic-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-generic-array-serializer-snapshot
deleted file mode 100644
index 100eef0..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-generic-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-either-serializer-data b/flink-core/src/test/resources/flink-1.7-either-serializer-data
deleted file mode 100644
index 3aabc0b..0000000
--- a/flink-core/src/test/resources/flink-1.7-either-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-either-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-either-serializer-snapshot
deleted file mode 100644
index 16242c0..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-either-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-generic-array-serializer-data b/flink-core/src/test/resources/flink-1.7-generic-array-serializer-data
deleted file mode 100644
index e2d6a23..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-generic-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-generic-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-generic-array-serializer-snapshot
deleted file mode 100644
index 9ace763..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-generic-array-serializer-snapshot and /dev/null differ


[flink] 29/42: [FLINK-13632] Port ArrayListSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 7f03c876f887e53fb8c67b46872e087ba751759c
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Feb 19 21:25:45 2020 +0800

    [FLINK-13632] Port ArrayListSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../state/ArrayListSerializerMigrationTest.java    |  57 -----------
 .../state/ArrayListSerializerUpgradeTest.java      | 107 +++++++++++++++++++++
 .../resources/flink-1.6-arraylist-serializer-data  | Bin 240 -> 0 bytes
 .../flink-1.6-arraylist-serializer-snapshot        | Bin 881 -> 0 bytes
 .../resources/flink-1.7-arraylist-serializer-data  | Bin 240 -> 0 bytes
 .../flink-1.7-arraylist-serializer-snapshot        | Bin 231 -> 0 bytes
 6 files changed, 107 insertions(+), 57 deletions(-)

diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerMigrationTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerMigrationTest.java
deleted file mode 100644
index 91b9658..0000000
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerMigrationTest.java
+++ /dev/null
@@ -1,57 +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.runtime.state;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-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 test for the {@link ArrayListSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class ArrayListSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<ArrayList<String>> {
-
-	private static final String SPEC_NAME = "arraylist-serializer";
-
-	public ArrayListSerializerMigrationTest(TestSpecification<ArrayList<String>> 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(
-			SPEC_NAME,
-			ArrayListSerializer.class,
-			ArrayListSerializerSnapshot.class,
-			() -> new ArrayListSerializer<>(StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerUpgradeTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerUpgradeTest.java
new file mode 100644
index 0000000..5cba5af
--- /dev/null
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ArrayListSerializerUpgradeTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.runtime.state;
+
+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.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link ArrayListSerializerSnapshot}.
+ */
+@RunWith(Parameterized.class)
+public class ArrayListSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<ArrayList<String>, ArrayList<String>> {
+
+	private static final String SPEC_NAME = "arraylist-serializer";
+
+	public ArrayListSerializerUpgradeTest(TestSpecification<ArrayList<String>, ArrayList<String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					ArrayListSerializerSetup.class,
+					ArrayListSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "arraylist-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ArrayListSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<ArrayList<String>> {
+		@Override
+		public TypeSerializer<ArrayList<String>> createPriorSerializer() {
+			return new ArrayListSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public ArrayList<String> createTestData() {
+			ArrayList<String> data = new ArrayList<>(2);
+			data.add("Apache");
+			data.add("Flink");
+			return data;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ArrayListSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<ArrayList<String>> {
+		@Override
+		public TypeSerializer<ArrayList<String>> createUpgradedSerializer() {
+			return new ArrayListSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<ArrayList<String>> testDataMatcher() {
+			ArrayList<String> data = new ArrayList<>(2);
+			data.add("Apache");
+			data.add("Flink");
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<ArrayList<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-data b/flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-data
deleted file mode 100644
index 7b6c68a..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-snapshot
deleted file mode 100644
index f6486ae..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-arraylist-serializer-snapshot and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-data b/flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-data
deleted file mode 100644
index 7b6c68a..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-snapshot
deleted file mode 100644
index cf43209..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-arraylist-serializer-snapshot and /dev/null differ


[flink] 42/42: [FLINK-13632] Remove TypeSerializerSnapshotMigrationTestBase

Posted by al...@apache.org.
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 e80bb0bc96095305d04c7177c5aeb243bd892bba
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Wed May 27 12:02:11 2020 +0200

    [FLINK-13632] Remove TypeSerializerSnapshotMigrationTestBase
    
    All tests have been ported to the new test base.
---
 .../TypeSerializerSnapshotMigrationTestBase.java   | 529 ---------------------
 1 file changed, 529 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerSnapshotMigrationTestBase.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerSnapshotMigrationTestBase.java
deleted file mode 100644
index 6aa3481..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerSnapshotMigrationTestBase.java
+++ /dev/null
@@ -1,529 +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;
-
-import org.apache.flink.api.java.tuple.Tuple2;
-import org.apache.flink.core.memory.DataInputDeserializer;
-import org.apache.flink.core.memory.DataInputView;
-import org.apache.flink.core.memory.DataOutputSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-import org.apache.flink.util.TestLogger;
-
-import org.hamcrest.Matcher;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.function.Supplier;
-
-import static org.apache.flink.api.common.typeutils.TypeSerializerMatchers.hasSameCompatibilityAs;
-import static org.apache.flink.util.Preconditions.checkArgument;
-import static org.apache.flink.util.Preconditions.checkNotNull;
-import static org.hamcrest.CoreMatchers.allOf;
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-/**
- * A test base for verifying {@link TypeSerializerSnapshot} migration.
- *
- * @param <ElementT> the element being serialized.
- *
- * @deprecated please use the newer {@link TypeSerializerUpgradeTestBase}
- */
-@Deprecated
-public abstract class TypeSerializerSnapshotMigrationTestBase<ElementT> extends TestLogger {
-
-	private final TestSpecification<ElementT> testSpecification;
-
-	protected TypeSerializerSnapshotMigrationTestBase(TestSpecification<ElementT> testSpecification) {
-		this.testSpecification = checkNotNull(testSpecification);
-	}
-
-	@Test
-	public void serializerSnapshotIsSuccessfullyRead() {
-		TypeSerializerSnapshot<ElementT> snapshot = snapshotUnderTest();
-
-		assertThat(snapshot, allOf(
-			notNullValue(),
-			instanceOf(TypeSerializerSnapshot.class)
-		));
-	}
-
-	@Test
-	public void specifiedNewSerializerHasExpectedCompatibilityResultsWithSnapshot() {
-		TypeSerializerSnapshot<ElementT> snapshot = snapshotUnderTest();
-
-		TypeSerializerSchemaCompatibility<ElementT> result = snapshot.resolveSchemaCompatibility(testSpecification.createSerializer());
-
-		assertThat(result, testSpecification.schemaCompatibilityMatcher);
-	}
-
-	@Test
-	public void restoredSerializerIsAbleToDeserializePreviousData() throws IOException {
-		TypeSerializerSnapshot<ElementT> snapshot = snapshotUnderTest();
-		TypeSerializer<ElementT> serializer = snapshot.restoreSerializer();
-
-		assertSerializerIsAbleToReadOldData(serializer);
-	}
-
-	@Test
-	public void reconfiguredSerializerIsAbleToDeserializePreviousData() throws IOException {
-		TypeSerializerSnapshot<ElementT> snapshot = snapshotUnderTest();
-		TypeSerializerSchemaCompatibility<ElementT> compatibility = snapshot.resolveSchemaCompatibility(testSpecification.createSerializer());
-
-		if (!compatibility.isCompatibleWithReconfiguredSerializer()) {
-			// this test only applies for reconfigured serializers.
-			return;
-		}
-
-		TypeSerializer<ElementT> serializer = compatibility.getReconfiguredSerializer();
-		assertSerializerIsAbleToReadOldData(serializer);
-	}
-
-	@SuppressWarnings("deprecation")
-	@Test
-	public void movingForward() throws IOException {
-		TypeSerializerSnapshot<ElementT> previousSnapshot = snapshotUnderTest();
-		TypeSerializer<ElementT> restoredSerializer = previousSnapshot.restoreSerializer();
-
-		TypeSerializerSnapshot<ElementT> nextSnapshot = restoredSerializer.snapshotConfiguration();
-		assertThat(nextSnapshot, instanceOf(testSpecification.snapshotClass));
-
-		TypeSerializerSnapshot<ElementT> nextSnapshotDeserialized = writeAndThenReadTheSnapshot(restoredSerializer, nextSnapshot);
-
-		assertThat(nextSnapshotDeserialized, allOf(
-			notNullValue(),
-			not(instanceOf(TypeSerializerConfigSnapshot.class))
-		));
-	}
-
-	@Test
-	public void restoreSerializerFromNewSerializerSnapshotIsAbleToDeserializePreviousData() throws IOException {
-		TypeSerializer<ElementT> newSerializer = testSpecification.createSerializer();
-
-		TypeSerializerSchemaCompatibility<ElementT> compatibility =
-			snapshotUnderTest().resolveSchemaCompatibility(newSerializer);
-
-		final TypeSerializer<ElementT> nextSerializer;
-		if (compatibility.isCompatibleWithReconfiguredSerializer()) {
-			nextSerializer = compatibility.getReconfiguredSerializer();
-		} else if (compatibility.isCompatibleAsIs()) {
-			nextSerializer = newSerializer;
-		} else {
-			// this test does not apply.
-			return;
-		}
-
-		TypeSerializerSnapshot<ElementT> nextSnapshot = nextSerializer.snapshotConfiguration();
-
-		assertSerializerIsAbleToReadOldData(nextSnapshot.restoreSerializer());
-	}
-
-	// --------------------------------------------------------------------------------------------------------------
-	// Test Helpers
-	// --------------------------------------------------------------------------------------------------------------
-
-	private TypeSerializerSnapshot<ElementT> writeAndThenReadTheSnapshot(
-		TypeSerializer<ElementT> serializer,
-		TypeSerializerSnapshot<ElementT> newSnapshot) throws IOException {
-
-		DataOutputSerializer out = new DataOutputSerializer(128);
-		TypeSerializerSnapshotSerializationUtil.writeSerializerSnapshot(out, newSnapshot, serializer);
-
-		DataInputView in = new DataInputDeserializer(out.wrapAsByteBuffer());
-		return readSnapshot(in);
-	}
-
-	private TypeSerializerSnapshot<ElementT> snapshotUnderTest() {
-		DataInputView input = contentsOf(testSpecification.getSnapshotDataLocation());
-		try {
-			if (!testSpecification.getTestMigrationVersion().isNewerVersionThan(MigrationVersion.v1_6)) {
-				return readPre17SnapshotFormat(input);
-			} else {
-				return readSnapshot(input);
-			}
-		}
-		catch (IOException e) {
-			throw new RuntimeException("Unable to read " + testSpecification.getSnapshotDataLocation(),  e);
-		}
-	}
-
-	@SuppressWarnings({"unchecked", "deprecation"})
-	private TypeSerializerSnapshot<ElementT> readPre17SnapshotFormat(DataInputView input) throws IOException {
-		final ClassLoader cl = Thread.currentThread().getContextClassLoader();
-
-		List<Tuple2<TypeSerializer<?>, TypeSerializerSnapshot<?>>> serializers =
-			TypeSerializerSerializationUtil.readSerializersAndConfigsWithResilience(input, cl);
-
-		return (TypeSerializerSnapshot<ElementT>) serializers.get(0).f1;
-	}
-
-	private TypeSerializerSnapshot<ElementT> readSnapshot(DataInputView in) throws IOException {
-		return TypeSerializerSnapshotSerializationUtil.readSerializerSnapshot(
-			in, Thread.currentThread().getContextClassLoader(), null);
-	}
-
-	private DataInputView dataUnderTest() {
-		return contentsOf(testSpecification.getTestDataLocation());
-	}
-
-	private void assertSerializerIsAbleToReadOldData(TypeSerializer<ElementT> serializer) throws IOException {
-		DataInputView input = dataUnderTest();
-
-		final Matcher<ElementT> matcher = testSpecification.testDataElementMatcher;
-		for (int i = 0; i < testSpecification.testDataCount; i++) {
-			final ElementT result = serializer.deserialize(input);
-			assertThat(result, matcher);
-		}
-	}
-
-	// --------------------------------------------------------------------------------------------------------------
-	// Static Helpers
-	// --------------------------------------------------------------------------------------------------------------
-
-	private static DataInputView contentsOf(Path path) {
-		try {
-			byte[] bytes = Files.readAllBytes(path);
-			return new DataInputDeserializer(bytes);
-		}
-		catch (IOException e) {
-			throw new RuntimeException("Failed to read " + path, e);
-		}
-	}
-
-	private static Path resourcePath(String resourceName) {
-		checkNotNull(resourceName, "resource name can not be NULL");
-		try {
-			ClassLoader cl = Thread.currentThread().getContextClassLoader();
-			URL resource = cl.getResource(resourceName);
-			if (resource == null) {
-				throw new IllegalArgumentException("unable locate test data " + resourceName);
-			}
-			return Paths.get(resource.toURI());
-		}
-		catch (URISyntaxException e) {
-			throw new RuntimeException("unable", e);
-		}
-	}
-
-	// --------------------------------------------------------------------------------------------------------------
-	// Test Specification
-	// --------------------------------------------------------------------------------------------------------------
-
-	/**
-	 * Test Specification.
-	 */
-	@SuppressWarnings("WeakerAccess")
-	public static final class TestSpecification<T> {
-		private final Class<? extends TypeSerializer<T>> serializerType;
-		private final Class<? extends TypeSerializerSnapshot<T>> snapshotClass;
-		private final String name;
-		private final MigrationVersion testMigrationVersion;
-		private Supplier<? extends TypeSerializer<T>> serializerProvider;
-		private Matcher<TypeSerializerSchemaCompatibility<T>> schemaCompatibilityMatcher;
-		private String snapshotDataLocation;
-		private String testDataLocation;
-		private int testDataCount;
-
-		@SuppressWarnings("unchecked")
-		private Matcher<T> testDataElementMatcher = (Matcher<T>) notNullValue();
-
-		@SuppressWarnings("unchecked")
-		public static <T> TestSpecification<T> builder(
-			String name,
-			Class<? extends TypeSerializer> serializerClass,
-			Class<? extends TypeSerializerSnapshot> snapshotClass,
-			MigrationVersion testMigrationVersion) {
-
-			return new TestSpecification<>(
-				name,
-				(Class<? extends TypeSerializer<T>>) serializerClass,
-				(Class<? extends TypeSerializerSnapshot<T>>) snapshotClass,
-				testMigrationVersion);
-		}
-
-		private TestSpecification(
-			String name,
-			Class<? extends TypeSerializer<T>> serializerType,
-			Class<? extends TypeSerializerSnapshot<T>> snapshotClass,
-			MigrationVersion testMigrationVersion) {
-
-			this.name = name;
-			this.serializerType = serializerType;
-			this.snapshotClass = snapshotClass;
-			this.testMigrationVersion = testMigrationVersion;
-		}
-
-		public TestSpecification<T> withNewSerializerProvider(Supplier<? extends TypeSerializer<T>> serializerProvider) {
-			return withNewSerializerProvider(serializerProvider, TypeSerializerSchemaCompatibility.compatibleAsIs());
-		}
-
-		public TestSpecification<T> withNewSerializerProvider(
-				Supplier<? extends TypeSerializer<T>> serializerProvider,
-				TypeSerializerSchemaCompatibility<T> expectedCompatibilityResult) {
-			this.serializerProvider = serializerProvider;
-			this.schemaCompatibilityMatcher = hasSameCompatibilityAs(expectedCompatibilityResult);
-			return this;
-		}
-
-		public TestSpecification<T> withSchemaCompatibilityMatcher(
-				Matcher<TypeSerializerSchemaCompatibility<T>> schemaCompatibilityMatcher) {
-			this.schemaCompatibilityMatcher = schemaCompatibilityMatcher;
-			return this;
-		}
-
-		public TestSpecification<T> withSnapshotDataLocation(String snapshotDataLocation) {
-			this.snapshotDataLocation = snapshotDataLocation;
-			return this;
-		}
-
-		public TestSpecification<T> withTestData(String testDataLocation, int testDataCount) {
-			this.testDataLocation = testDataLocation;
-			this.testDataCount = testDataCount;
-			return this;
-		}
-
-		public TestSpecification<T> withTestDataMatcher(Matcher<T> matcher) {
-			testDataElementMatcher = matcher;
-			return this;
-		}
-
-		public TestSpecification<T> withTestDataCount(int expectedDataItmes) {
-			this.testDataCount = expectedDataItmes;
-			return this;
-		}
-
-		private TypeSerializer<T> createSerializer() {
-			try {
-				return (serializerProvider == null) ? serializerType.newInstance() : serializerProvider.get();
-			}
-			catch (InstantiationException | IllegalAccessException e) {
-				throw new RuntimeException("serializer provider was not set, and creating the serializer reflectively failed.", e);
-			}
-		}
-
-		private Path getTestDataLocation() {
-			return resourcePath(this.testDataLocation);
-		}
-
-		private Path getSnapshotDataLocation() {
-			return resourcePath(this.snapshotDataLocation);
-		}
-
-		private MigrationVersion getTestMigrationVersion() {
-			return testMigrationVersion;
-		}
-
-		@Override
-		public String toString() {
-			return String.format("%s , %s, %s", name, serializerType.getSimpleName(), snapshotClass.getSimpleName());
-		}
-
-	}
-
-	/**
-	 * Utility class to help build a collection of {@link TestSpecification} for
-	 * multiple test migration versions. For each test specification added,
-	 * an entry will be added for each specified migration version.
-	 */
-	public static final class TestSpecifications {
-
-		private static final int DEFAULT_TEST_DATA_COUNT = 10;
-		private static final String DEFAULT_SNAPSHOT_FILENAME_FORMAT = "flink-%s-%s-snapshot";
-		private static final String DEFAULT_TEST_DATA_FILENAME_FORMAT = "flink-%s-%s-data";
-
-		private final Collection<TestSpecification<?>> testSpecifications = new LinkedList<>();
-		private final MigrationVersion[] testVersions;
-
-		public TestSpecifications(MigrationVersion... testVersions) {
-			checkArgument(
-				testVersions.length > 0,
-				"At least one test migration version should be specified.");
-			this.testVersions = testVersions;
-		}
-
-		/**
-		 * Adds a test specification to be tested for all specified test versions.
-		 *
-		 * <p>This method adds the specification with pre-defined snapshot and data filenames,
-		 * with the format "flink-&lt;testVersion&gt;-&lt;specName&gt;-&lt;data/snapshot&gt;",
-		 * and each specification's test data count is assumed to always be 10.
-		 *
-		 * @param name test specification name.
-		 * @param serializerClass class of the current serializer.
-		 * @param snapshotClass class of the current serializer snapshot class.
-		 * @param serializerProvider provider for an instance of the current serializer.
-		 *
-		 * @param <T> type of the test data.
-		 */
-		public <T> void add(
-				String name,
-				Class<? extends TypeSerializer> serializerClass,
-				Class<? extends TypeSerializerSnapshot> snapshotClass,
-				Supplier<? extends TypeSerializer<T>> serializerProvider) {
-			for (MigrationVersion testVersion : testVersions) {
-				testSpecifications.add(
-					TestSpecification.<T>builder(
-						getSpecNameForVersion(name, testVersion),
-						serializerClass,
-						snapshotClass,
-						testVersion)
-						.withNewSerializerProvider(serializerProvider)
-						.withSnapshotDataLocation(
-							String.format(DEFAULT_SNAPSHOT_FILENAME_FORMAT, testVersion, name))
-						.withTestData(
-							String.format(DEFAULT_TEST_DATA_FILENAME_FORMAT, testVersion, name),
-							DEFAULT_TEST_DATA_COUNT)
-				);
-			}
-		}
-
-		/**
-		 * Adds a test specification to be tested for all specified test versions.
-		 *
-		 * <p>This method adds the specification with pre-defined snapshot and data filenames,
-		 * with the format "flink-&lt;testVersion&gt;-&lt;specName&gt;-&lt;data/snapshot&gt;",
-		 * and each specification's test data count is assumed to always be 10.
-		 *
-		 * @param <T> type of the test data.
-		 */
-		public <T> void addWithCompatibilityMatcher(
-				String name,
-				Class<? extends TypeSerializer> serializerClass,
-				Class<? extends TypeSerializerSnapshot> snapshotClass,
-				Supplier<? extends TypeSerializer<T>> serializerProvider,
-				Matcher<TypeSerializerSchemaCompatibility<T>> schemaCompatibilityMatcher) {
-			for (MigrationVersion testVersion : testVersions) {
-				testSpecifications.add(
-						TestSpecification.<T>builder(
-								getSpecNameForVersion(name, testVersion),
-								serializerClass,
-								snapshotClass,
-								testVersion)
-								.withNewSerializerProvider(serializerProvider)
-								.withSchemaCompatibilityMatcher(schemaCompatibilityMatcher)
-								.withSnapshotDataLocation(
-										String.format(DEFAULT_SNAPSHOT_FILENAME_FORMAT, testVersion, name))
-								.withTestData(
-										String.format(DEFAULT_TEST_DATA_FILENAME_FORMAT, testVersion, name),
-										DEFAULT_TEST_DATA_COUNT)
-				);
-			}
-		}
-
-		/**
-		 * Adds a test specification to be tested for all specified test versions.
-		 *
-		 * <p>This method adds the specification with pre-defined snapshot and data filenames,
-		 * with the format "flink-&lt;testVersion&gt;-&lt;specName&gt;-&lt;data/snapshot&gt;",
-		 * and each specification's test data count is assumed to always be 10.
-		 *
-		 * @param name test specification name.
-		 * @param serializerClass class of the current serializer.
-		 * @param snapshotClass class of the current serializer snapshot class.
-		 * @param serializerProvider provider for an instance of the current serializer.
-		 * @param elementMatcher an {@code hamcrest} matcher to match test data.
-		 *
-		 * @param <T> type of the test data.
-		 */
-		public <T> void add(
-			String name,
-			Class<? extends TypeSerializer> serializerClass,
-			Class<? extends TypeSerializerSnapshot> snapshotClass,
-			Supplier<? extends TypeSerializer<T>> serializerProvider,
-			Matcher<T> elementMatcher)  {
-			for (MigrationVersion testVersion : testVersions) {
-				testSpecifications.add(
-					TestSpecification.<T>builder(
-						getSpecNameForVersion(name, testVersion),
-						serializerClass,
-						snapshotClass,
-						testVersion)
-						.withNewSerializerProvider(serializerProvider)
-						.withSnapshotDataLocation(
-							String.format(DEFAULT_SNAPSHOT_FILENAME_FORMAT, testVersion, name))
-						.withTestData(
-							String.format(DEFAULT_TEST_DATA_FILENAME_FORMAT, testVersion, name),
-							DEFAULT_TEST_DATA_COUNT)
-					.withTestDataMatcher(elementMatcher)
-				);
-			}
-		}
-
-		/**
-		 * Adds a test specification to be tested for all specified test versions.
-		 *
-		 * @param name test specification name.
-		 * @param serializerClass class of the current serializer.
-		 * @param snapshotClass class of the current serializer snapshot class.
-		 * @param serializerProvider provider for an instance of the current serializer.
-		 * @param testSnapshotFilenameProvider provider for the filename of the test snapshot.
-		 * @param testDataFilenameProvider provider for the filename of the test data.
-		 * @param testDataCount expected number of records to be read in the test data files.
-		 *
-		 * @param <T> type of the test data.
-		 */
-		public <T> void add(
-				String name,
-				Class<? extends TypeSerializer> serializerClass,
-				Class<? extends TypeSerializerSnapshot> snapshotClass,
-				Supplier<? extends TypeSerializer<T>> serializerProvider,
-				TestResourceFilenameSupplier testSnapshotFilenameProvider,
-				TestResourceFilenameSupplier testDataFilenameProvider,
-				int testDataCount) {
-			for (MigrationVersion testVersion : testVersions) {
-				testSpecifications.add(
-					TestSpecification.<T>builder(
-						getSpecNameForVersion(name, testVersion),
-						serializerClass,
-						snapshotClass,
-						testVersion)
-					.withNewSerializerProvider(serializerProvider)
-					.withSnapshotDataLocation(testSnapshotFilenameProvider.get(testVersion))
-					.withTestData(testDataFilenameProvider.get(testVersion), testDataCount)
-				);
-			}
-		}
-
-		public Collection<TestSpecification<?>> get() {
-			return Collections.unmodifiableCollection(testSpecifications);
-		}
-
-		private static String getSpecNameForVersion(String baseName, MigrationVersion testVersion) {
-			return testVersion + "-" + baseName;
-		}
-	}
-
-	/**
-	 * Supplier of paths based on {@link MigrationVersion}.
-	 */
-	protected interface TestResourceFilenameSupplier {
-		String get(MigrationVersion testVersion);
-	}
-}


[flink] 16/42: [FLINK-13632] Port ScalaOptionSerializer test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 7143f225bd8f8c9b8a1ae826150840fc117baaa4
Author: klion26 <qc...@gmail.com>
AuthorDate: Fri Jan 31 14:08:16 2020 +0800

    [FLINK-13632] Port ScalaOptionSerializer test to TypeSerializerUpgradeTestBase
---
 ...ScalaOptionSerializerSnapshotMigrationTest.java |  58 ------------
 .../ScalaOptionSerializerUpgradeTest.java          | 104 +++++++++++++++++++++
 .../flink-1.6-scala-option-serializer-data         | Bin 31 -> 0 bytes
 .../flink-1.6-scala-option-serializer-snapshot     | Bin 876 -> 0 bytes
 .../flink-1.7-scala-option-serializer-data         | Bin 31 -> 0 bytes
 .../flink-1.7-scala-option-serializer-snapshot     | Bin 877 -> 0 bytes
 6 files changed, 104 insertions(+), 58 deletions(-)

diff --git a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerSnapshotMigrationTest.java b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerSnapshotMigrationTest.java
deleted file mode 100644
index efc94ec..0000000
--- a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,58 +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.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-import scala.Option;
-
-/**
- * Migration test for the {@link ScalaEitherSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class ScalaOptionSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Option<String>> {
-
-	private static final String SPEC_NAME = "scala-option-serializer";
-
-	public ScalaOptionSerializerSnapshotMigrationTest(TestSpecification<Option<String>> 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(
-			SPEC_NAME,
-			OptionSerializer.class,
-			ScalaOptionSerializerSnapshot.class,
-			() -> new OptionSerializer<>(StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerUpgradeTest.java b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerUpgradeTest.java
new file mode 100644
index 0000000..7752918
--- /dev/null
+++ b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaOptionSerializerUpgradeTest.java
@@ -0,0 +1,104 @@
+/*
+ * 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.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.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import scala.Option;
+
+import static org.hamcrest.CoreMatchers.is;
+
+/**
+ * A {@link org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase} for {@link ScalaEitherSerializerSnapshot}.
+ */
+@RunWith(Parameterized.class)
+public class ScalaOptionSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Option<String>, Option<String>> {
+
+	private static final String SPEC_NAME = "scala-option-serializer";
+
+	public ScalaOptionSerializerUpgradeTest(TestSpecification<Option<String>, Option<String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					ScalaOptionSerializerSetup.class,
+					ScalaOptionSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "scala-option-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ScalaOptionSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Option<String>> {
+
+		@Override
+		public TypeSerializer<Option<String>> createPriorSerializer() {
+			return new OptionSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Option<String> createTestData() {
+			return Option.empty();
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ScalaOptionSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Option<String>> {
+		@Override
+		public TypeSerializer<Option<String>> createUpgradedSerializer() {
+			return new OptionSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<Option<String>> testDataMatcher() {
+			return is(Option.empty());
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Option<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-option-serializer-data b/flink-scala/src/test/resources/flink-1.6-scala-option-serializer-data
deleted file mode 100644
index 3cdb252..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-option-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-option-serializer-snapshot b/flink-scala/src/test/resources/flink-1.6-scala-option-serializer-snapshot
deleted file mode 100644
index d7be0c2..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-option-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-option-serializer-data b/flink-scala/src/test/resources/flink-1.7-scala-option-serializer-data
deleted file mode 100644
index 3cdb252..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-option-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-option-serializer-snapshot b/flink-scala/src/test/resources/flink-1.7-scala-option-serializer-snapshot
deleted file mode 100644
index bdedf0e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-option-serializer-snapshot and /dev/null differ


[flink] 35/42: [FLINK-13632] Port ListViewSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 f4b63d9e1333d389df4df0426e7aab40ed82ae8f
Author: klion26 <qc...@gmail.com>
AuthorDate: Fri Feb 21 17:00:16 2020 +0800

    [FLINK-13632] Port ListViewSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../ListViewSerializerSnapshotMigrationTest.java   |  58 ----------
 .../dataview/ListViewSerializerUpgradeTest.java    | 127 +++++++++++++++++++++
 .../resources/flink-1.6-list-view-serializer-data  | Bin 240 -> 0 bytes
 .../flink-1.6-list-view-serializer-snapshot        | Bin 1038 -> 0 bytes
 .../resources/flink-1.7-list-view-serializer-data  | Bin 240 -> 0 bytes
 .../flink-1.7-list-view-serializer-snapshot        | Bin 314 -> 0 bytes
 6 files changed, 127 insertions(+), 58 deletions(-)

diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerSnapshotMigrationTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 1983046..0000000
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,58 +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.table.dataview;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.ListSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.table.api.dataview.ListView;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration test for the {@link ListViewSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class ListViewSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<ListView<String>> {
-
-	private static final String SPEC_NAME = "list-view-serializer";
-
-	public ListViewSerializerSnapshotMigrationTest(TestSpecification<ListView<String>> 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(
-			SPEC_NAME,
-			ListViewSerializer.class,
-			ListViewSerializerSnapshot.class,
-			() -> new ListViewSerializer<>(new ListSerializer<>(StringSerializer.INSTANCE)));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerUpgradeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerUpgradeTest.java
new file mode 100644
index 0000000..360329c
--- /dev/null
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/ListViewSerializerUpgradeTest.java
@@ -0,0 +1,127 @@
+/*
+ * 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.table.dataview;
+
+import org.apache.flink.api.common.typeinfo.TypeInformation;
+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.common.typeutils.base.ListSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.table.api.dataview.ListView;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link ListViewSerializerSnapshot}.
+ */
+@RunWith(Parameterized.class)
+public class ListViewSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<ListView<String>, ListView<String>> {
+
+	private static final String SPEC_NAME = "list-view-serializer";
+
+	public ListViewSerializerUpgradeTest(TestSpecification<ListView<String>, ListView<String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					ListViewSerializerSetup.class,
+					ListViewSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "list-view-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ListViewSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<ListView<String>> {
+		@Override
+		public TypeSerializer<ListView<String>> createPriorSerializer() {
+			return new ListViewSerializer<>(new ListSerializer<>(StringSerializer.INSTANCE));
+		}
+
+		@Override
+		public ListView<String> createTestData() {
+			return mockTestData();
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ListViewSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<ListView<String>> {
+		@Override
+		public TypeSerializer<ListView<String>> createUpgradedSerializer() {
+			return new ListViewSerializer<>(new ListSerializer<>(StringSerializer.INSTANCE));
+		}
+
+		@Override
+		public Matcher<ListView<String>> testDataMatcher() {
+			// ListViewSerializer will not (de)serialize the TypeInformation, so we have to create
+			// a ListView without TypeInformation for comparison
+			return is(mockTestDataWithoutTypeInfo());
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<ListView<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	public static ListView<String> mockTestData() {
+		ListView<String> view = new ListView<>(TypeInformation.of(String.class));
+		try {
+			view.add("ApacheFlink");
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+		return view;
+	}
+
+	public static ListView<String> mockTestDataWithoutTypeInfo() {
+		ListView<String> view = new ListView<>();
+		try {
+			view.add("ApacheFlink");
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+		return view;
+	}
+}
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-data b/flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-data
deleted file mode 100644
index 7b6c68a..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-data and /dev/null differ
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-snapshot b/flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-snapshot
deleted file mode 100644
index 2e2fd8a..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.6-list-view-serializer-snapshot and /dev/null differ
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-data b/flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-data
deleted file mode 100644
index 7b6c68a..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-data and /dev/null differ
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-snapshot b/flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-snapshot
deleted file mode 100644
index 2bc7b5c..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.7-list-view-serializer-snapshot and /dev/null differ


[flink] 07/42: [FLINK-13632] Port TupleSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 690f9350e39b2fd3d46b4a82760fb7b452ae9d3f
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Tue Jan 21 17:00:09 2020 +0100

    [FLINK-13632] Port TupleSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../runtime/TupleSerializerMigrationTest.java      |  59 -----------
 .../runtime/TupleSerializerUpgradeTest.java        | 115 +++++++++++++++++++++
 .../test/resources/flink-1.6-tuple-serializer-data | Bin 392 -> 0 bytes
 .../resources/flink-1.6-tuple-serializer-snapshot  | Bin 2256 -> 0 bytes
 .../test/resources/flink-1.7-tuple-serializer-data | Bin 392 -> 0 bytes
 .../resources/flink-1.7-tuple-serializer-snapshot  | Bin 2277 -> 0 bytes
 6 files changed, 115 insertions(+), 59 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerMigrationTest.java
deleted file mode 100644
index 4025985..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerMigrationTest.java
+++ /dev/null
@@ -1,59 +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.java.typeutils.runtime;
-
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.IntSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.api.java.tuple.Tuple3;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * {@link TupleSerializer} migration test.
- */
-@RunWith(Parameterized.class)
-public class TupleSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Tuple3> {
-
-	public TupleSerializerMigrationTest(TestSpecification<Tuple3> testSpecification) {
-		super(testSpecification);
-	}
-
-	@Parameterized.Parameters(name = "Test Specification = {0}")
-	public static Collection<TestSpecification<?>> testSpecifications() {
-
-		final TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7);
-
-		testSpecifications.add(
-			"tuple-serializer",
-			TupleSerializer.class,
-			TupleSerializerSnapshot.class,
-			() -> new TupleSerializer<>(
-				Tuple3.class,
-				new TypeSerializer[]{StringSerializer.INSTANCE, StringSerializer.INSTANCE, IntSerializer.INSTANCE})
-		);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerUpgradeTest.java
new file mode 100644
index 0000000..eeb0287
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerUpgradeTest.java
@@ -0,0 +1,115 @@
+/*
+ * 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.java.typeutils.runtime;
+
+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.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.api.java.tuple.Tuple3;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * {@link TupleSerializer} upgrade test.
+ */
+@RunWith(Parameterized.class)
+public class TupleSerializerUpgradeTest
+		extends TypeSerializerUpgradeTestBase<Tuple3<String, String, Integer>, Tuple3<String, String, Integer>> {
+
+	public TupleSerializerUpgradeTest(
+			TestSpecification<Tuple3<String, String, Integer>, Tuple3<String, String, Integer>> 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<>(
+							"tuple-serializer",
+							migrationVersion,
+							TupleSerializerSetup.class,
+							TupleSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "tuple-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	public static final class TupleSerializerSetup
+			implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Tuple3<String, String, Integer>> {
+
+		@SuppressWarnings({"unchecked", "rawtypes"})
+		@Override
+		public TypeSerializer<Tuple3<String, String, Integer>> createPriorSerializer() {
+			return new TupleSerializer(
+					Tuple3.class,
+					new TypeSerializer[]{
+							StringSerializer.INSTANCE,
+							StringSerializer.INSTANCE,
+							IntSerializer.INSTANCE});
+		}
+
+		@Override
+		public Tuple3<String, String, Integer> createTestData() {
+			return new Tuple3<>("hello Gordon", "ciao", 14);
+		}
+	}
+
+	public static final class TupleSerializerVerifier
+			implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Tuple3<String, String, Integer>> {
+
+		@SuppressWarnings({"unchecked", "rawtypes"})
+		@Override
+		public TypeSerializer<Tuple3<String, String, Integer>> createUpgradedSerializer() {
+			return new TupleSerializer(
+					Tuple3.class,
+					new TypeSerializer[]{
+							StringSerializer.INSTANCE,
+							StringSerializer.INSTANCE,
+							IntSerializer.INSTANCE});
+		}
+
+		@Override
+		public Matcher<Tuple3<String, String, Integer>> testDataMatcher() {
+			return is(new Tuple3<>("hello Gordon", "ciao", 14));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Tuple3<String, String, Integer>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-core/src/test/resources/flink-1.6-tuple-serializer-data b/flink-core/src/test/resources/flink-1.6-tuple-serializer-data
deleted file mode 100644
index 079bfd7..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-tuple-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-tuple-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-tuple-serializer-snapshot
deleted file mode 100644
index 6560097..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-tuple-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-tuple-serializer-data b/flink-core/src/test/resources/flink-1.7-tuple-serializer-data
deleted file mode 100644
index 70d0853..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-tuple-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-tuple-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-tuple-serializer-snapshot
deleted file mode 100644
index 4f509b4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-tuple-serializer-snapshot and /dev/null differ


[flink] 26/42: [FLINK-13632] Port MapSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 a8abbbc9b4d3e88ce216f0cfbf20639c83a11020
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Feb 19 20:48:59 2020 +0800

    [FLINK-13632] Port MapSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../base/MapSerializerSnapshotMigrationTest.java   |  56 -----------
 .../typeutils/base/MapSerializerUpgradeTest.java   | 111 +++++++++++++++++++++
 .../test/resources/flink-1.6-map-serializer-data   | Bin 440 -> 0 bytes
 .../resources/flink-1.6-map-serializer-snapshot    | Bin 1356 -> 0 bytes
 .../test/resources/flink-1.7-map-serializer-data   | Bin 390 -> 0 bytes
 .../resources/flink-1.7-map-serializer-snapshot    | Bin 379 -> 0 bytes
 6 files changed, 111 insertions(+), 56 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 804eac4..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,56 +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;
-
-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;
-import java.util.Map;
-
-/**
- * Migration test for the {@link MapSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class MapSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Map<Integer, String>> {
-
-	private static final String SPEC_NAME = "map-serializer";
-
-	public MapSerializerSnapshotMigrationTest(TestSpecification<Map<Integer, String>> 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(
-			SPEC_NAME,
-			MapSerializer.class,
-			MapSerializerSnapshot.class,
-			() -> new MapSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerUpgradeTest.java
new file mode 100644
index 0000000..e3d84b4
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/MapSerializerUpgradeTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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;
+
+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.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A  {@link TypeSerializerUpgradeTestBase} for {@link MapSerializerSnapshot}.
+ */
+@RunWith(Parameterized.class)
+public class MapSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Map<Integer, String>, Map<Integer, String>> {
+
+	private static final String SPEC_NAME = "map-serializer";
+
+	public MapSerializerUpgradeTest(TestSpecification<Map<Integer, String>, Map<Integer, String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					MapSerializerSetup.class,
+					MapSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "map-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class MapSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Map<Integer, String>> {
+		@Override
+		public TypeSerializer<Map<Integer, String>> createPriorSerializer() {
+			return new MapSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Map<Integer, String> createTestData() {
+			Map<Integer, String> data = new HashMap<>(3);
+			for (int i = 0; i < 3; ++i) {
+				data.put(i, String.valueOf(i));
+			}
+			return data;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class MapSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Map<Integer, String>> {
+		@Override
+		public TypeSerializer<Map<Integer, String>> createUpgradedSerializer() {
+			return new MapSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<Map<Integer, String>> testDataMatcher() {
+			Map<Integer, String> data = new HashMap<>(3);
+			for (int i = 0; i < 3; ++i) {
+				data.put(i, String.valueOf(i));
+			}
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Map<Integer, String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-core/src/test/resources/flink-1.6-map-serializer-data b/flink-core/src/test/resources/flink-1.6-map-serializer-data
deleted file mode 100644
index 8f8011b..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-map-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-map-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-map-serializer-snapshot
deleted file mode 100644
index a192ba3..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-map-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-map-serializer-data b/flink-core/src/test/resources/flink-1.7-map-serializer-data
deleted file mode 100644
index 4d7334a..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-map-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-map-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-map-serializer-snapshot
deleted file mode 100644
index 2d5f1f0..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-map-serializer-snapshot and /dev/null differ


[flink] 20/42: [FLINK-13632] Port MapViewSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 dcaa1072e6e0150b137d49c4606571d6ce8023fe
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 21:04:57 2020 +0800

    [FLINK-13632] Port MapViewSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../MapViewSerializerSnapshotMigrationTest.java    |  59 -----------
 .../dataview/MapViewSerializerUpgradeTest.java     | 115 +++++++++++++++++++++
 .../resources/flink-1.6-map-view-serializer-data   | Bin 440 -> 0 bytes
 .../flink-1.6-map-view-serializer-snapshot         | Bin 1503 -> 0 bytes
 .../resources/flink-1.7-map-view-serializer-data   | Bin 390 -> 0 bytes
 .../flink-1.7-map-view-serializer-snapshot         | Bin 454 -> 0 bytes
 6 files changed, 115 insertions(+), 59 deletions(-)

diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerSnapshotMigrationTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 2679f6a..0000000
--- a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,59 +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.table.dataview;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.IntSerializer;
-import org.apache.flink.api.common.typeutils.base.MapSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.table.api.dataview.MapView;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration test for the {@link MapViewSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class MapViewSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<MapView<Integer, String>> {
-
-	private static final String SPEC_NAME = "map-view-serializer";
-
-	public MapViewSerializerSnapshotMigrationTest(TestSpecification<MapView<Integer, String>> 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(
-			SPEC_NAME,
-			MapViewSerializer.class,
-			MapViewSerializerSnapshot.class,
-			() -> new MapViewSerializer<>(new MapSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE)));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerUpgradeTest.java b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerUpgradeTest.java
new file mode 100644
index 0000000..a9f72c1
--- /dev/null
+++ b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/dataview/MapViewSerializerUpgradeTest.java
@@ -0,0 +1,115 @@
+/*
+ * 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.table.dataview;
+
+import org.apache.flink.api.common.typeinfo.TypeInformation;
+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.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.common.typeutils.base.MapSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.table.api.dataview.MapView;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link MapViewSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class MapViewSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<MapView<Integer, String>, MapView<Integer, String>> {
+
+	private static final String SPEC_NAME = "map-view-serializer";
+
+	public MapViewSerializerUpgradeTest(TestSpecification<MapView<Integer, String>, MapView<Integer, String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					MapViewSerializerSetup.class,
+					MapViewSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "map-view-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class MapViewSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<MapView<Integer, String>> {
+		@Override
+		public TypeSerializer<MapView<Integer, String>> createPriorSerializer() {
+			return new MapViewSerializer<>(new MapSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE));
+		}
+
+		@Override
+		public MapView<Integer, String> createTestData() {
+			return mockTestData();
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class MapViewSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<MapView<Integer, String>> {
+		@Override
+		public TypeSerializer<MapView<Integer, String>> createUpgradedSerializer() {
+			return new MapViewSerializer<>(new MapSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE));
+		}
+
+		@Override
+		public Matcher<MapView<Integer, String>> testDataMatcher() {
+			return is(mockTestData());
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<MapView<Integer, String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	public static MapView<Integer, String> mockTestData() {
+		MapView<Integer, String> view = new MapView<>(TypeInformation.of(Integer.class), TypeInformation.of(String.class));
+		try {
+			view.put(1, "1");
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+		return view;
+	}
+}
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-data b/flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-data
deleted file mode 100644
index 6d68f19..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-data and /dev/null differ
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-snapshot b/flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-snapshot
deleted file mode 100644
index 9546a16..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.6-map-view-serializer-snapshot and /dev/null differ
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-data b/flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-data
deleted file mode 100644
index 4d7334a..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-data and /dev/null differ
diff --git a/flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-snapshot b/flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-snapshot
deleted file mode 100644
index 19003a0..0000000
Binary files a/flink-table/flink-table-planner/src/test/resources/flink-1.7-map-view-serializer-snapshot and /dev/null differ


[flink] 12/42: [FLINK-13632] Port StreamElementSerializer test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 04cd45a8cb0a03410ac170b65a11b32cd206f7b8
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Jan 22 11:14:29 2020 +0800

    [FLINK-13632] Port StreamElementSerializer test to TypeSerializerUpgradeTestBase
---
 .../StreamElementSerializerMigrationTest.java      |  55 -----------
 .../StreamElementSerializerUpgradeTest.java        | 103 +++++++++++++++++++++
 .../flink-1.6-stream-element-serializer-data       | Bin 158 -> 0 bytes
 .../flink-1.6-stream-element-serializer-snapshot   | Bin 931 -> 0 bytes
 .../flink-1.7-stream-element-serializer-data       | Bin 158 -> 0 bytes
 .../flink-1.7-stream-element-serializer-snapshot   | Bin 932 -> 0 bytes
 6 files changed, 103 insertions(+), 55 deletions(-)

diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerMigrationTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerMigrationTest.java
deleted file mode 100644
index b6169d4..0000000
--- a/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerMigrationTest.java
+++ /dev/null
@@ -1,55 +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.streaming.runtime.streamrecord;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.StreamElementSerializerSnapshot;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration tests for {@link StreamElementSerializer}.
- */
-@RunWith(Parameterized.class)
-public class StreamElementSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<StreamElement> {
-
-	public StreamElementSerializerMigrationTest(TestSpecification<StreamElement> 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(
-			"stream-element-serializer",
-			StreamElementSerializer.class,
-			StreamElementSerializerSnapshot.class,
-			() -> new StreamElementSerializer<>(StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerUpgradeTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerUpgradeTest.java
new file mode 100644
index 0000000..9d02c60
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/streamrecord/StreamElementSerializerUpgradeTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.streaming.runtime.streamrecord;
+
+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.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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.apache.flink.streaming.util.StreamRecordMatchers.streamRecord;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Migration tests for {@link StreamElementSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class StreamElementSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<StreamElement, StreamElement> {
+
+	public StreamElementSerializerUpgradeTest(TestSpecification<StreamElement, StreamElement> 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<>(
+					"stream-element-serializer",
+					migrationVersion,
+					StreamElementSetup.class,
+					StreamElementVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "StreamElement-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class StreamElementSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<StreamElement> {
+		@Override
+		public TypeSerializer<StreamElement> createPriorSerializer() {
+			return new StreamElementSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public StreamElement createTestData() {
+			return new StreamRecord<>("key", 123456);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class StreamElementVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<StreamElement> {
+		@Override
+		public TypeSerializer<StreamElement> createUpgradedSerializer() {
+			return new StreamElementSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@SuppressWarnings({"unchecked", "rawtypes"})
+		@Override
+		public Matcher<StreamElement> testDataMatcher() {
+			return (Matcher) streamRecord(is("key"), is(123456L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<StreamElement>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-data
deleted file mode 100644
index 81b80c3..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-snapshot
deleted file mode 100644
index 8ffdb43..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-stream-element-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-data
deleted file mode 100644
index 01f05e7..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-snapshot
deleted file mode 100644
index dc7f76b..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-stream-element-serializer-snapshot and /dev/null differ


[flink] 33/42: [FLINK-13632] Port LongValueWithProperHashCodeSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 054572b31d5a472450a04f21b6d9e25db9820eff
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 21:25:12 2020 +0800

    [FLINK-13632] Port LongValueWithProperHashCodeSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 ...perHashCodeSerializerSnapshotMigrationTest.java |  55 -----------
 ...lueWithProperHashCodeSerializerUpgradeTest.java | 101 +++++++++++++++++++++
 ...ong-value-with-proper-hash-code-serializer-data | Bin 80 -> 0 bytes
 ...value-with-proper-hash-code-serializer-snapshot | Bin 488 -> 0 bytes
 ...ong-value-with-proper-hash-code-serializer-data | Bin 80 -> 0 bytes
 ...value-with-proper-hash-code-serializer-snapshot | Bin 476 -> 0 bytes
 6 files changed, 101 insertions(+), 55 deletions(-)

diff --git a/flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerSnapshotMigrationTest.java b/flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerSnapshotMigrationTest.java
deleted file mode 100644
index d996f22..0000000
--- a/flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,55 +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.drivers.transform;
-
-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 {@link LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer}.
- */
-@RunWith(Parameterized.class)
-public class LongValueWithProperHashCodeSerializerSnapshotMigrationTest
-		extends TypeSerializerSnapshotMigrationTestBase<LongValueWithProperHashCode> {
-
-	public LongValueWithProperHashCodeSerializerSnapshotMigrationTest(
-			TestSpecification<LongValueWithProperHashCode> 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(
-			"long-value-with-proper-hash-code-serializer",
-			LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer.class,
-			LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer.LongValueWithProperHashCodeSerializerSnapshot.class,
-			LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer::new);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerUpgradeTest.java b/flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerUpgradeTest.java
new file mode 100644
index 0000000..75bb817
--- /dev/null
+++ b/flink-libraries/flink-gelly-examples/src/test/java/org/apache/flink/graph/drivers/transform/LongValueWithProperHashCodeSerializerUpgradeTest.java
@@ -0,0 +1,101 @@
+/*
+ * 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.drivers.transform;
+
+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.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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class LongValueWithProperHashCodeSerializerUpgradeTest
+		extends TypeSerializerUpgradeTestBase<LongValueWithProperHashCode, LongValueWithProperHashCode> {
+
+	public LongValueWithProperHashCodeSerializerUpgradeTest(
+			TestSpecification<LongValueWithProperHashCode, LongValueWithProperHashCode> 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<>(
+					"long-value-with-proper-hash-code-serializer",
+					migrationVersion,
+					LongValueWithProperHashCodeSerializerSetup.class,
+					LongValueWithProperHashCodeSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "long-value-with-proper-hash-code-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class LongValueWithProperHashCodeSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<LongValueWithProperHashCode> {
+		@Override
+		public TypeSerializer<LongValueWithProperHashCode> createPriorSerializer() {
+			return new LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer();
+		}
+
+		@Override
+		public LongValueWithProperHashCode createTestData() {
+			return new LongValueWithProperHashCode(12345);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class LongValueWithProperHashCodeSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<LongValueWithProperHashCode> {
+		@Override
+		public TypeSerializer<LongValueWithProperHashCode> createUpgradedSerializer() {
+			return new LongValueWithProperHashCode.LongValueWithProperHashCodeSerializer();
+		}
+
+		@Override
+		public Matcher<LongValueWithProperHashCode> testDataMatcher() {
+			return is(new LongValueWithProperHashCode(12345));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<LongValueWithProperHashCode>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-data b/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-data
deleted file mode 100644
index f3e06a4..0000000
Binary files a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-snapshot b/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-snapshot
deleted file mode 100644
index 5aaf88b..0000000
Binary files a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.6-long-value-with-proper-hash-code-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-data b/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-data
deleted file mode 100644
index f3e06a4..0000000
Binary files a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-snapshot b/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-snapshot
deleted file mode 100644
index 28104ca..0000000
Binary files a/flink-libraries/flink-gelly-examples/src/test/resources/flink-1.7-long-value-with-proper-hash-code-serializer-snapshot and /dev/null differ


[flink] 08/42: [FLINK-13632] Port BufferEntrySerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 bf399ba08e02e7ab5b4bf20229a00f5eb27d6964
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Wed Jan 22 09:09:27 2020 +0100

    [FLINK-13632] Port BufferEntrySerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../api/operators/co/IntervalJoinOperator.java     |  18 +++-
 .../api/operators/co/BufferEntryMatchers.java      |  69 +++++++++++++
 .../co/BufferEntrySerializerMigrationTest.java     |  57 -----------
 .../co/BufferEntrySerializerUpgradeTest.java       | 112 +++++++++++++++++++++
 .../flink-1.6-buffer-entry-serializer-data         | Bin 160 -> 0 bytes
 .../flink-1.6-buffer-entry-serializer-snapshot     | Bin 935 -> 0 bytes
 .../flink-1.7-buffer-entry-serializer-data         | Bin 160 -> 0 bytes
 .../flink-1.7-buffer-entry-serializer-snapshot     | Bin 936 -> 0 bytes
 8 files changed, 195 insertions(+), 61 deletions(-)

diff --git a/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/co/IntervalJoinOperator.java b/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/co/IntervalJoinOperator.java
index 3c99022..5555f48 100644
--- a/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/co/IntervalJoinOperator.java
+++ b/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/co/IntervalJoinOperator.java
@@ -361,15 +361,25 @@ public class IntervalJoinOperator<K, T1, T2, OUT>
 	 */
 	@Internal
 	@VisibleForTesting
-	static class BufferEntry<T> {
+	public static class BufferEntry<T> {
 
 		private final T element;
 		private final boolean hasBeenJoined;
 
-		BufferEntry(T element, boolean hasBeenJoined) {
+		public BufferEntry(T element, boolean hasBeenJoined) {
 			this.element = element;
 			this.hasBeenJoined = hasBeenJoined;
 		}
+
+		@VisibleForTesting
+		public T getElement() {
+			return element;
+		}
+
+		@VisibleForTesting
+		public boolean hasBeenJoined() {
+			return hasBeenJoined;
+		}
 	}
 
 	/**
@@ -377,13 +387,13 @@ public class IntervalJoinOperator<K, T1, T2, OUT>
 	 */
 	@Internal
 	@VisibleForTesting
-	static class BufferEntrySerializer<T> extends TypeSerializer<BufferEntry<T>> {
+	public static class BufferEntrySerializer<T> extends TypeSerializer<BufferEntry<T>> {
 
 		private static final long serialVersionUID = -20197698803836236L;
 
 		private final TypeSerializer<T> elementSerializer;
 
-		BufferEntrySerializer(TypeSerializer<T> elementSerializer) {
+		public BufferEntrySerializer(TypeSerializer<T> elementSerializer) {
 			this.elementSerializer = Preconditions.checkNotNull(elementSerializer);
 		}
 
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntryMatchers.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntryMatchers.java
new file mode 100644
index 0000000..4720add
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntryMatchers.java
@@ -0,0 +1,69 @@
+/*
+ * 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.streaming.api.operators.co;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeDiagnosingMatcher;
+
+/**
+ * {@link Matcher Matchers} for {@link IntervalJoinOperator.BufferEntry}.
+ */
+public class BufferEntryMatchers {
+
+	/**
+	 * Creates a matcher that matches when the given element and {@code hasBeenJoined} value match
+	 * the given matchers.
+	 */
+	public static <T> Matcher<IntervalJoinOperator.BufferEntry<T>> bufferEntry(
+			Matcher<T> elementMatcher,
+			Matcher<Boolean> hasBeenJoinedMatcher) {
+		return new IsBufferEntry<>(elementMatcher, hasBeenJoinedMatcher);
+	}
+
+	static class IsBufferEntry<T> extends TypeSafeDiagnosingMatcher<IntervalJoinOperator.BufferEntry<T>> {
+		private final Matcher<T> elementMatcher;
+		private final Matcher<Boolean> hasBeenJoinedMatcher;
+
+		public IsBufferEntry(Matcher<T> elementMatcher, Matcher<Boolean> hasBeenJoinedMatcher) {
+			this.elementMatcher = elementMatcher;
+			this.hasBeenJoinedMatcher = hasBeenJoinedMatcher;
+		}
+
+		@Override
+		protected boolean matchesSafely(
+				IntervalJoinOperator.BufferEntry<T> item, Description mismatchDescription) {
+			mismatchDescription.appendText("BufferEntry with element ");
+			mismatchDescription.appendValue(item.getElement());
+			mismatchDescription.appendText(" with hasBeenJoined ");
+			mismatchDescription.appendValue(item.hasBeenJoined());
+
+			return elementMatcher.matches(item.getElement()) &&
+					hasBeenJoinedMatcher.matches(item.hasBeenJoined());
+		}
+
+		@Override
+		public void describeTo(Description description) {
+			description.appendText("BufferEntry with element ");
+			elementMatcher.describeTo(description);
+			description.appendText(" with hasBeenJoined ");
+			hasBeenJoinedMatcher.describeTo(description);
+		}
+	}
+}
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerMigrationTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerMigrationTest.java
deleted file mode 100644
index d4d2673..0000000
--- a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerMigrationTest.java
+++ /dev/null
@@ -1,57 +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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.streaming.api.operators.co;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.streaming.api.operators.co.IntervalJoinOperator.BufferEntry;
-import org.apache.flink.streaming.api.operators.co.IntervalJoinOperator.BufferEntrySerializer;
-import org.apache.flink.streaming.api.operators.co.IntervalJoinOperator.BufferEntrySerializerSnapshot;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * State migration tests for {@link BufferEntrySerializer}.
- */
-@RunWith(Parameterized.class)
-public class BufferEntrySerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<BufferEntry<String>> {
-
-	public BufferEntrySerializerMigrationTest(TestSpecification<BufferEntry<String>> 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(
-			"buffer-entry-serializer",
-			BufferEntrySerializer.class,
-			BufferEntrySerializerSnapshot.class,
-			() -> new BufferEntrySerializer<>(StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerUpgradeTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerUpgradeTest.java
new file mode 100644
index 0000000..53ad66d
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/co/BufferEntrySerializerUpgradeTest.java
@@ -0,0 +1,112 @@
+/*
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.streaming.api.operators.co;
+
+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.common.typeutils.base.StringSerializer;
+import org.apache.flink.streaming.api.operators.co.IntervalJoinOperator.BufferEntry;
+import org.apache.flink.streaming.api.operators.co.IntervalJoinOperator.BufferEntrySerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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.apache.flink.streaming.api.operators.co.BufferEntryMatchers.bufferEntry;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * State migration tests for {@link BufferEntrySerializer}.
+ */
+@RunWith(Parameterized.class)
+public class BufferEntrySerializerUpgradeTest
+		extends TypeSerializerUpgradeTestBase<BufferEntry<String>, BufferEntry<String>> {
+
+	public BufferEntrySerializerUpgradeTest(
+			TestSpecification<BufferEntry<String>, BufferEntry<String>> 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<>(
+							"buffer-entry-serializer",
+							migrationVersion,
+							BufferEntrySerializerSetup.class,
+							BufferEntrySerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "buffer-entry-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class BufferEntrySerializerSetup
+			implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<BufferEntry<String>> {
+
+		@SuppressWarnings({"unchecked", "rawtypes"})
+		@Override
+		public TypeSerializer<BufferEntry<String>> createPriorSerializer() {
+			return new BufferEntrySerializer(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public BufferEntry<String> createTestData() {
+			return new BufferEntry<>("hello", false);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class BufferEntrySerializerVerifier
+			implements TypeSerializerUpgradeTestBase.UpgradeVerifier<BufferEntry<String>> {
+
+		@SuppressWarnings({"unchecked", "rawtypes"})
+		@Override
+		public TypeSerializer<BufferEntry<String>> createUpgradedSerializer() {
+			return new BufferEntrySerializer(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<BufferEntry<String>> testDataMatcher() {
+			return bufferEntry(is("hello"), is(false));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<BufferEntry<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-data
deleted file mode 100644
index a4af1fc..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-snapshot
deleted file mode 100644
index 6141180..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-buffer-entry-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-data
deleted file mode 100644
index 36c9dc7..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-snapshot
deleted file mode 100644
index af92e1b..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-buffer-entry-serializer-snapshot and /dev/null differ


[flink] 14/42: [FLINK-13632] Port VoidNamespaceSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 6453161580da55be04b2907b9ef7cb59642dcab7
Author: klion26 <qc...@gmail.com>
AuthorDate: Fri Jan 31 12:52:24 2020 +0800

    [FLINK-13632] Port VoidNamespaceSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../state/VoidNamespaceSerializerUpgradeTest.java  | 102 +++++++++++++++++++++
 ...dNamespacieSerializerSnapshotMigrationTest.java |  55 -----------
 .../flink-1.6-void-namespace-serializer-data       | Bin 10 -> 0 bytes
 .../flink-1.6-void-namespace-serializer-snapshot   | Bin 384 -> 0 bytes
 .../flink-1.7-void-namespace-serializer-data       | Bin 10 -> 0 bytes
 .../flink-1.7-void-namespace-serializer-snapshot   | Bin 372 -> 0 bytes
 6 files changed, 102 insertions(+), 55 deletions(-)

diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespaceSerializerUpgradeTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespaceSerializerUpgradeTest.java
new file mode 100644
index 0000000..747bd6d
--- /dev/null
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespaceSerializerUpgradeTest.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.runtime.state;
+
+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.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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link VoidNamespaceSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class VoidNamespaceSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<VoidNamespace, VoidNamespace> {
+
+	private static final String SPEC_NAME = "void-namespace-serializer";
+
+	public VoidNamespaceSerializerUpgradeTest(TestSpecification<VoidNamespace, VoidNamespace> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					VoidNamespaceSerializerSetup.class,
+					VoidNamespaceSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "voidnamespace-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class VoidNamespaceSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<VoidNamespace> {
+		@Override
+		public TypeSerializer<VoidNamespace> createPriorSerializer() {
+			return VoidNamespaceSerializer.INSTANCE;
+		}
+
+		@Override
+		public VoidNamespace createTestData() {
+			return VoidNamespace.INSTANCE;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class VoidNamespaceSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<VoidNamespace> {
+		@Override
+		public TypeSerializer<VoidNamespace> createUpgradedSerializer() {
+			return VoidNamespaceSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<VoidNamespace> testDataMatcher() {
+			return is(VoidNamespace.INSTANCE);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<VoidNamespace>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+}
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespacieSerializerSnapshotMigrationTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespacieSerializerSnapshotMigrationTest.java
deleted file mode 100644
index ac5d69e..0000000
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/state/VoidNamespacieSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,55 +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.runtime.state;
-
-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 test for the {@link VoidNamespaceSerializer}.
- */
-@RunWith(Parameterized.class)
-public class VoidNamespacieSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<VoidNamespace> {
-
-	private static final String SPEC_NAME = "void-namespace-serializer";
-
-	public VoidNamespacieSerializerSnapshotMigrationTest(TestSpecification<VoidNamespace> 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(
-			SPEC_NAME,
-			VoidNamespaceSerializer.class,
-			VoidNamespaceSerializer.VoidNamespaceSerializerSnapshot.class,
-			() -> VoidNamespaceSerializer.INSTANCE);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-data b/flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-data
deleted file mode 100644
index cb43b5c..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-snapshot
deleted file mode 100644
index be8d4f4..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-void-namespace-serializer-snapshot and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-data b/flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-data
deleted file mode 100644
index cb43b5c..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-snapshot
deleted file mode 100644
index a12698d..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-void-namespace-serializer-snapshot and /dev/null differ


[flink] 05/42: [FLINK-13632] Port AvroSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 9a709146769b47727b8887807b882db50ffd8c0f
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Tue Jan 14 13:25:22 2020 +0100

    [FLINK-13632] Port AvroSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../typeutils/AvroSerializerMigrationTest.java     | 259 ---------------------
 .../avro/typeutils/AvroSerializerUpgradeTest.java  | 185 +++++++++++++++
 ...6-avro-generic-type-serializer-address-snapshot | Bin 901 -> 0 bytes
 .../resources/flink-1.6-avro-type-serialized-data  | Bin 23563 -> 0 bytes
 .../flink-1.6-avro-type-serializer-address-data    | Bin 240 -> 0 bytes
 ...flink-1.6-avro-type-serializer-address-snapshot | Bin 710 -> 0 bytes
 .../flink-1.6-avro-type-serializer-snapshot        | Bin 36411 -> 0 bytes
 ...7-avro-generic-type-serializer-address-snapshot | Bin 370 -> 0 bytes
 .../flink-1.7-avro-type-serializer-address-data    | Bin 240 -> 0 bytes
 ...flink-1.7-avro-type-serializer-address-snapshot | Bin 380 -> 0 bytes
 .../src/test/resources/flink_11-kryo_registrations |  86 -------
 11 files changed, 185 insertions(+), 345 deletions(-)

diff --git a/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerMigrationTest.java b/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerMigrationTest.java
deleted file mode 100644
index a162aa3..0000000
--- a/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerMigrationTest.java
+++ /dev/null
@@ -1,259 +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.formats.avro.typeutils;
-
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSerializationUtil;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.core.memory.DataInputDeserializer;
-import org.apache.flink.formats.avro.generated.Address;
-import org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.apache.avro.generic.GenericRecord;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.Arrays;
-import java.util.Base64;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static java.util.Arrays.asList;
-import static junit.framework.TestCase.assertSame;
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-/**
- * Tests migrations for {@link AvroSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class AvroSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Address> {
-
-	private static final String DATA_FILE_FORMAT = "flink-%s-avro-type-serializer-address-data";
-	private static final String SPECIFIC_SNAPSHOT_FILE_FORMAT = "flink-%s-avro-type-serializer-address-snapshot";
-	private static final String GENERIC_SNAPSHOT_FILE_FORMAT = "flink-%s-avro-generic-type-serializer-address-snapshot";
-
-	public AvroSerializerMigrationTest(TestSpecification<Address> testSpec) {
-		super(testSpec);
-	}
-
-	@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(
-			"generic-avro-serializer",
-			AvroSerializer.class,
-			AvroSerializerSnapshot.class,
-			() -> new AvroSerializer(GenericRecord.class, Address.getClassSchema()),
-			testVersion -> String.format(GENERIC_SNAPSHOT_FILE_FORMAT, testVersion),
-			testVersion -> String.format(DATA_FILE_FORMAT, testVersion),
-			10);
-		testSpecifications.add(
-			"specific-avro-serializer",
-			AvroSerializer.class,
-			AvroSerializerSnapshot.class,
-			() -> new AvroSerializer<>(Address.class),
-			testVersion -> String.format(SPECIFIC_SNAPSHOT_FILE_FORMAT, testVersion),
-			testVersion -> String.format(DATA_FILE_FORMAT, testVersion),
-			10);
-
-		return testSpecifications.get();
-	}
-
-	// ---------------------------------------------------------------------------------------------------------------
-	// The following batch of tests are making sure that AvroSerializer class is able to be Java-Deserialized.
-	// see [FLINK-11436] for more information.
-
-	// Once we drop support for versions that carried snapshots with Java-Deserialized serializers we can drop this
-	// batch of tests.
-	// ---------------------------------------------------------------------------------------------------------------
-
-	@Test
-	public void javaDeserializeFromFlink_1_5_ReflectiveRecord() throws IOException {
-		final String avroSerializerBase64 = "AAAAAQAAAQis7QAFc3IANm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJv\n" +
-			"U2VyaWFsaXplcgAAAAAAAAABAgABTAAEdHlwZXQAEUxqYXZhL2xhbmcvQ2xhc3M7eHIANG9yZy5hcGFj\n" +
-			"aGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuVHlwZVNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhwdnIA\n" +
-			"Tm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJvU2VyaWFsaXplck1pZ3Jh\n" +
-			"dGlvblRlc3QkU2ltcGxlUG9qbwAAAAAAAAAAAAAAeHA=";
-
-		TypeSerializer<?> serializer = javaDeserialize(avroSerializerBase64);
-		assertThat(serializer, instanceOf(AvroSerializer.class));
-
-		AvroSerializer<?> avroSerializer = (AvroSerializer<?>) javaDeserialize(avroSerializerBase64);
-		assertSame(avroSerializer.getType(), SimplePojo.class);
-		assertThat(avroSerializer.getAvroSchema(), notNullValue());
-	}
-
-	@Test
-	public void javaDeserializeFromFlink_1_5_SpecificRecord() throws IOException {
-		final String avroSerializerBase64 = "AAAAAQAAASOs7QAFc3IANm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJv\n" +
-			"U2VyaWFsaXplcgAAAAAAAAABAgABTAAEdHlwZXQAEUxqYXZhL2xhbmcvQ2xhc3M7eHIANG9yZy5hcGFj\n" +
-			"aGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuVHlwZVNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhwdnIA\n" +
-			"L29yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLmdlbmVyYXRlZC5BZGRyZXNz7Paj+KjgQ2oMAAB4\n" +
-			"cgArb3JnLmFwYWNoZS5hdnJvLnNwZWNpZmljLlNwZWNpZmljUmVjb3JkQmFzZQKi+azGtzQdDAAAeHA=";
-
-		TypeSerializer<?> serializer = javaDeserialize(avroSerializerBase64);
-		assertThat(serializer, instanceOf(AvroSerializer.class));
-
-		AvroSerializer<?> avroSerializer = (AvroSerializer<?>) javaDeserialize(avroSerializerBase64);
-		assertSame(avroSerializer.getType(), Address.class);
-		assertThat(avroSerializer.getAvroSchema(), is(Address.SCHEMA$));
-	}
-
-	@Test
-	public void javaDeserializeFromFlink_1_6() throws IOException {
-		final String avroSerializer = "AAAAAQAAAUis7QAFc3IANm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJv\n" +
-			"U2VyaWFsaXplcgAAAAAAAAABAgACTAAMc2NoZW1hU3RyaW5ndAASTGphdmEvbGFuZy9TdHJpbmc7TAAE\n" +
-			"dHlwZXQAEUxqYXZhL2xhbmcvQ2xhc3M7eHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBl\n" +
-			"dXRpbHMuVHlwZVNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhwcHZyAC9vcmcuYXBhY2hlLmZsaW5rLmZvcm1h\n" +
-			"dHMuYXZyby5nZW5lcmF0ZWQuQWRkcmVzc+z2o/io4ENqDAAAeHIAK29yZy5hcGFjaGUuYXZyby5zcGVj\n" +
-			"aWZpYy5TcGVjaWZpY1JlY29yZEJhc2UCovmsxrc0HQwAAHhw";
-
-		TypeSerializer<?> avro = javaDeserialize(avroSerializer);
-
-		assertThat(avro, instanceOf(AvroSerializer.class));
-	}
-
-	@Test
-	public void javaDeserializeFromFlink_1_6_GenericRecord() throws IOException {
-		String avroSerializerBase64 = "AAAAAQAAAges7QAFc3IANm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJv\n" +
-			"U2VyaWFsaXplcgAAAAAAAAABAgACTAAMc2NoZW1hU3RyaW5ndAASTGphdmEvbGFuZy9TdHJpbmc7TAAE\n" +
-			"dHlwZXQAEUxqYXZhL2xhbmcvQ2xhc3M7eHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBl\n" +
-			"dXRpbHMuVHlwZVNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhwdAEBeyJ0eXBlIjoicmVjb3JkIiwibmFtZSI6\n" +
-			"IkFkZHJlc3MiLCJuYW1lc3BhY2UiOiJvcmcuYXBhY2hlLmZsaW5rLmZvcm1hdHMuYXZyby5nZW5lcmF0\n" +
-			"ZWQiLCJmaWVsZHMiOlt7Im5hbWUiOiJudW0iLCJ0eXBlIjoiaW50In0seyJuYW1lIjoic3RyZWV0Iiwi\n" +
-			"dHlwZSI6InN0cmluZyJ9LHsibmFtZSI6ImNpdHkiLCJ0eXBlIjoic3RyaW5nIn0seyJuYW1lIjoic3Rh\n" +
-			"dGUiLCJ0eXBlIjoic3RyaW5nIn0seyJuYW1lIjoiemlwIiwidHlwZSI6InN0cmluZyJ9XX12cgAlb3Jn\n" +
-			"LmFwYWNoZS5hdnJvLmdlbmVyaWMuR2VuZXJpY1JlY29yZAAAAAAAAAAAAAAAeHA=";
-
-		TypeSerializer<?> serializer = javaDeserialize(avroSerializerBase64);
-
-		AvroSerializer<?> avroSerializer = (AvroSerializer<?>) serializer;
-		assertSame(avroSerializer.getType(), GenericRecord.class);
-		assertThat(avroSerializer.getAvroSchema(), notNullValue());
-	}
-
-	@Test
-	public void javaDeserializeFromFlink_1_7() throws IOException {
-		String avroSerializerBase64 = "AAAAAQAAAeKs7QAFc3IANm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJv\n" +
-			"U2VyaWFsaXplcgAAAAAAAAACAgADTAAOcHJldmlvdXNTY2hlbWF0AEBMb3JnL2FwYWNoZS9mbGluay9m\n" +
-			"b3JtYXRzL2F2cm8vdHlwZXV0aWxzL1NlcmlhbGl6YWJsZUF2cm9TY2hlbWE7TAAGc2NoZW1hcQB+AAFM\n" +
-			"AAR0eXBldAARTGphdmEvbGFuZy9DbGFzczt4cgA0b3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5\n" +
-			"cGV1dGlscy5UeXBlU2VyaWFsaXplcgAAAAAAAAABAgAAeHBzcgA+b3JnLmFwYWNoZS5mbGluay5mb3Jt\n" +
-			"YXRzLmF2cm8udHlwZXV0aWxzLlNlcmlhbGl6YWJsZUF2cm9TY2hlbWEAAAAAAAAAAQMAAHhwdwEAeHNx\n" +
-			"AH4ABXcBAHh2cgAvb3JnLmFwYWNoZS5mbGluay5mb3JtYXRzLmF2cm8uZ2VuZXJhdGVkLkFkZHJlc3Ps\n" +
-			"9qP4qOBDagwAAHhyACtvcmcuYXBhY2hlLmF2cm8uc3BlY2lmaWMuU3BlY2lmaWNSZWNvcmRCYXNlAqL5\n" +
-			"rMa3NB0MAAB4cA==";
-
-		AvroSerializer<?> avroSerializer = (AvroSerializer<?>) javaDeserialize(avroSerializerBase64);
-		assertSame(avroSerializer.getType(), Address.class);
-		assertThat(avroSerializer.getAvroSchema(), is(Address.SCHEMA$));
-	}
-
-	@Test
-	public void javaDeserializeFromFlink_1_7_afterInitialization() throws IOException {
-		String avroSerializerBase64 = "AAAAAQAAAeKs7QAFc3IANm9yZy5hcGFjaGUuZmxpbmsuZm9ybWF0cy5hdnJvLnR5cGV1dGlscy5BdnJv\n" +
-			"U2VyaWFsaXplcgAAAAAAAAACAgADTAAOcHJldmlvdXNTY2hlbWF0AEBMb3JnL2FwYWNoZS9mbGluay9m\n" +
-			"b3JtYXRzL2F2cm8vdHlwZXV0aWxzL1NlcmlhbGl6YWJsZUF2cm9TY2hlbWE7TAAGc2NoZW1hcQB+AAFM\n" +
-			"AAR0eXBldAARTGphdmEvbGFuZy9DbGFzczt4cgA0b3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5\n" +
-			"cGV1dGlscy5UeXBlU2VyaWFsaXplcgAAAAAAAAABAgAAeHBzcgA+b3JnLmFwYWNoZS5mbGluay5mb3Jt\n" +
-			"YXRzLmF2cm8udHlwZXV0aWxzLlNlcmlhbGl6YWJsZUF2cm9TY2hlbWEAAAAAAAAAAQMAAHhwdwEAeHNx\n" +
-			"AH4ABXcBAHh2cgAvb3JnLmFwYWNoZS5mbGluay5mb3JtYXRzLmF2cm8uZ2VuZXJhdGVkLkFkZHJlc3Ps\n" +
-			"9qP4qOBDagwAAHhyACtvcmcuYXBhY2hlLmF2cm8uc3BlY2lmaWMuU3BlY2lmaWNSZWNvcmRCYXNlAqL5\n" +
-			"rMa3NB0MAAB4cA==";
-
-		AvroSerializer<?> avroSerializer = (AvroSerializer<?>) javaDeserialize(avroSerializerBase64);
-		assertSame(avroSerializer.getType(), Address.class);
-		assertThat(avroSerializer.getAvroSchema(), is(Address.SCHEMA$));
-	}
-
-	@Test
-	public void compositeSerializerFromFlink_1_6_WithNestedAvroSerializer() throws IOException {
-		String streamElementSerializerBase64 = "AAAAAQAAAq2s7QAFc3IAR29yZy5hcGFjaGUuZmxpbmsuc3RyZWFtaW5nLnJ1bnRpbWUuc3RyZWFtcmVj\n" +
-			"b3JkLlN0cmVhbUVsZW1lbnRTZXJpYWxpemVyAAAAAAAAAAECAAFMAA50eXBlU2VyaWFsaXplcnQANkxv\n" +
-			"cmcvYXBhY2hlL2ZsaW5rL2FwaS9jb21tb24vdHlwZXV0aWxzL1R5cGVTZXJpYWxpemVyO3hyADRvcmcu\n" +
-			"YXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLlR5cGVTZXJpYWxpemVyAAAAAAAAAAECAAB4\n" +
-			"cHNyADZvcmcuYXBhY2hlLmZsaW5rLmZvcm1hdHMuYXZyby50eXBldXRpbHMuQXZyb1NlcmlhbGl6ZXIA\n" +
-			"AAAAAAAAAQIAAkwADHNjaGVtYVN0cmluZ3QAEkxqYXZhL2xhbmcvU3RyaW5nO0wABHR5cGV0ABFMamF2\n" +
-			"YS9sYW5nL0NsYXNzO3hxAH4AAnQBAXsidHlwZSI6InJlY29yZCIsIm5hbWUiOiJBZGRyZXNzIiwibmFt\n" +
-			"ZXNwYWNlIjoib3JnLmFwYWNoZS5mbGluay5mb3JtYXRzLmF2cm8uZ2VuZXJhdGVkIiwiZmllbGRzIjpb\n" +
-			"eyJuYW1lIjoibnVtIiwidHlwZSI6ImludCJ9LHsibmFtZSI6InN0cmVldCIsInR5cGUiOiJzdHJpbmci\n" +
-			"fSx7Im5hbWUiOiJjaXR5IiwidHlwZSI6InN0cmluZyJ9LHsibmFtZSI6InN0YXRlIiwidHlwZSI6InN0\n" +
-			"cmluZyJ9LHsibmFtZSI6InppcCIsInR5cGUiOiJzdHJpbmcifV19dnIAJW9yZy5hcGFjaGUuYXZyby5n\n" +
-			"ZW5lcmljLkdlbmVyaWNSZWNvcmQAAAAAAAAAAAAAAHhw";
-
-		StreamElementSerializer<?> ser = (StreamElementSerializer<?>) javaDeserialize(streamElementSerializerBase64);
-		TypeSerializer<?> containedTypeSerializer = ser.getContainedTypeSerializer();
-
-		assertThat(containedTypeSerializer, instanceOf(AvroSerializer.class));
-
-		AvroSerializer<?> avroSerializer = (AvroSerializer<?>) containedTypeSerializer;
-		assertSame(avroSerializer.getType(), GenericRecord.class);
-		assertThat(avroSerializer.getAvroSchema(), is(Address.SCHEMA$));
-	}
-
-	@Test
-	public void makeSureThatFieldsWereNotChanged() {
-		// This test should be removed once we completely migrate all the composite serializers.
-
-		List<String> serializedFieldNames = Arrays.stream(AvroSerializer.class.getDeclaredFields())
-			.filter(field -> !Modifier.isTransient(field.getModifiers()))
-			.filter(field -> !Modifier.isStatic(field.getModifiers()))
-			.map(Field::getName)
-			.sorted()
-			.collect(Collectors.toList());
-
-		assertThat(serializedFieldNames, is(asList("previousSchema", "schema", "type")));
-	}
-
-	@SuppressWarnings("deprecation")
-	private static TypeSerializer<?> javaDeserialize(String base64) throws IOException {
-		byte[] bytes = Base64.getMimeDecoder().decode(base64);
-		DataInputDeserializer in = new DataInputDeserializer(bytes);
-		return TypeSerializerSerializationUtil.tryReadSerializer(in, Thread.currentThread().getContextClassLoader());
-	}
-
-	/**
-	 * A simple pojo used in these tests.
-	 */
-	public static class SimplePojo {
-		private String foo;
-
-		@SuppressWarnings("unused")
-		public String getFoo() {
-			return foo;
-		}
-
-		@SuppressWarnings("unused")
-		public void setFoo(String foo) {
-			this.foo = foo;
-		}
-	}
-}
diff --git a/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java b/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java
new file mode 100644
index 0000000..f647c92
--- /dev/null
+++ b/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java
@@ -0,0 +1,185 @@
+/*
+ * 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.formats.avro.typeutils;
+
+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.formats.avro.generated.Address;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.apache.avro.generic.GenericData;
+import org.apache.avro.generic.GenericRecord;
+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;
+
+/**
+ * Tests based on {@link TypeSerializerUpgradeTestBase} for the {@link AvroSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class AvroSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public AvroSerializerUpgradeTest(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 : migrationVersions) {
+			testSpecifications.add(
+					new TestSpecification<>(
+							"generic-avro-serializer",
+							migrationVersion,
+							GenericAvroSerializerSetup.class,
+							GenericAvroSerializerVerifier.class));
+
+			testSpecifications.add(
+					new TestSpecification<>(
+							"specific-avro-serializer",
+							migrationVersion,
+							SpecificAvroSerializerSetup.class,
+							SpecificAvroSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "generic-avro-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class GenericAvroSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<GenericRecord> {
+
+		@Override
+		public TypeSerializer<GenericRecord> createPriorSerializer() {
+			return new AvroSerializer<>(
+					GenericRecord.class,
+					Address.getClassSchema());
+		}
+
+		@Override
+		public GenericRecord createTestData() {
+			GenericData.Record record = new GenericData.Record(Address.getClassSchema());
+			record.put("num", 239);
+			record.put("street", "Baker Street");
+			record.put("city", "London");
+			record.put("state", "London");
+			record.put("zip", "NW1 6XE");
+			return record;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class GenericAvroSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<GenericRecord> {
+
+		@SuppressWarnings({"unchecked", "rawtypes"})
+		@Override
+		public TypeSerializer<GenericRecord> createUpgradedSerializer() {
+			return new AvroSerializer(
+					GenericRecord.class,
+					Address.getClassSchema());
+		}
+
+		@Override
+		public Matcher<GenericRecord> testDataMatcher() {
+			GenericData.Record record = new GenericData.Record(Address.getClassSchema());
+			record.put("num", 239);
+			record.put("street", "Baker Street");
+			record.put("city", "London");
+			record.put("state", "London");
+			record.put("zip", "NW1 6XE");
+			return is(record);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<GenericRecord>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "specific-avro-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class SpecificAvroSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Address> {
+
+		@Override
+		public TypeSerializer<Address> createPriorSerializer() {
+			@SuppressWarnings({"unchecked", "rawtypes"})
+			AvroSerializer<Address> avroSerializer = new AvroSerializer(Address.class);
+			return avroSerializer;
+		}
+
+		@Override
+		public Address createTestData() {
+			Address addr = new Address();
+			addr.setNum(239);
+			addr.setStreet("Baker Street");
+			addr.setCity("London");
+			addr.setState("London");
+			addr.setZip("NW1 6XE");
+			return addr;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class SpecificAvroSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Address> {
+
+		@Override
+		public TypeSerializer<Address> createUpgradedSerializer() {
+			@SuppressWarnings({"unchecked", "rawtypes"})
+			AvroSerializer<Address> avroSerializer = new AvroSerializer(Address.class);
+			return avroSerializer;
+		}
+
+		@Override
+		public Matcher<Address> testDataMatcher() {
+			Address addr = new Address();
+			addr.setNum(239);
+			addr.setStreet("Baker Street");
+			addr.setCity("London");
+			addr.setState("London");
+			addr.setZip("NW1 6XE");
+			return is(addr);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Address>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-generic-type-serializer-address-snapshot b/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-generic-type-serializer-address-snapshot
deleted file mode 100644
index 57cbc42..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-generic-type-serializer-address-snapshot and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serialized-data b/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serialized-data
deleted file mode 100644
index 23853cf..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serialized-data and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-data b/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-data
deleted file mode 100644
index 74acf72..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-data and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-snapshot b/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-snapshot
deleted file mode 100644
index d68be81..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-address-snapshot and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-snapshot b/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-snapshot
deleted file mode 100644
index 1474300..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.6-avro-type-serializer-snapshot and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-generic-type-serializer-address-snapshot b/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-generic-type-serializer-address-snapshot
deleted file mode 100644
index f27d2dc..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-generic-type-serializer-address-snapshot and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-data b/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-data
deleted file mode 100644
index 74acf72..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-data and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-snapshot b/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-snapshot
deleted file mode 100644
index 7c8f6c2..0000000
Binary files a/flink-formats/flink-avro/src/test/resources/flink-1.7-avro-type-serializer-address-snapshot and /dev/null differ
diff --git a/flink-formats/flink-avro/src/test/resources/flink_11-kryo_registrations b/flink-formats/flink-avro/src/test/resources/flink_11-kryo_registrations
deleted file mode 100644
index 7000e62..0000000
--- a/flink-formats/flink-avro/src/test/resources/flink_11-kryo_registrations
+++ /dev/null
@@ -1,86 +0,0 @@
-0,int
-1,java.lang.String
-2,float
-3,boolean
-4,byte
-5,char
-6,short
-7,long
-8,double
-9,void
-10,scala.collection.convert.Wrappers$SeqWrapper
-11,scala.collection.convert.Wrappers$IteratorWrapper
-12,scala.collection.convert.Wrappers$MapWrapper
-13,scala.collection.convert.Wrappers$JListWrapper
-14,scala.collection.convert.Wrappers$JMapWrapper
-15,scala.Some
-16,scala.util.Left
-17,scala.util.Right
-18,scala.collection.immutable.Vector
-19,scala.collection.immutable.Set$Set1
-20,scala.collection.immutable.Set$Set2
-21,scala.collection.immutable.Set$Set3
-22,scala.collection.immutable.Set$Set4
-23,scala.collection.immutable.HashSet$HashTrieSet
-24,scala.collection.immutable.Map$Map1
-25,scala.collection.immutable.Map$Map2
-26,scala.collection.immutable.Map$Map3
-27,scala.collection.immutable.Map$Map4
-28,scala.collection.immutable.HashMap$HashTrieMap
-29,scala.collection.immutable.Range$Inclusive
-30,scala.collection.immutable.NumericRange$Inclusive
-31,scala.collection.immutable.NumericRange$Exclusive
-32,scala.collection.mutable.BitSet
-33,scala.collection.mutable.HashMap
-34,scala.collection.mutable.HashSet
-35,scala.collection.convert.Wrappers$IterableWrapper
-36,scala.Tuple1
-37,scala.Tuple2
-38,scala.Tuple3
-39,scala.Tuple4
-40,scala.Tuple5
-41,scala.Tuple6
-42,scala.Tuple7
-43,scala.Tuple8
-44,scala.Tuple9
-45,scala.Tuple10
-46,scala.Tuple11
-47,scala.Tuple12
-48,scala.Tuple13
-49,scala.Tuple14
-50,scala.Tuple15
-51,scala.Tuple16
-52,scala.Tuple17
-53,scala.Tuple18
-54,scala.Tuple19
-55,scala.Tuple20
-56,scala.Tuple21
-57,scala.Tuple22
-58,scala.Tuple1$mcJ$sp
-59,scala.Tuple1$mcI$sp
-60,scala.Tuple1$mcD$sp
-61,scala.Tuple2$mcJJ$sp
-62,scala.Tuple2$mcJI$sp
-63,scala.Tuple2$mcJD$sp
-64,scala.Tuple2$mcIJ$sp
-65,scala.Tuple2$mcII$sp
-66,scala.Tuple2$mcID$sp
-67,scala.Tuple2$mcDJ$sp
-68,scala.Tuple2$mcDI$sp
-69,scala.Tuple2$mcDD$sp
-70,scala.Symbol
-71,scala.reflect.ClassTag
-72,scala.runtime.BoxedUnit
-73,java.util.Arrays$ArrayList
-74,java.util.BitSet
-75,java.util.PriorityQueue
-76,java.util.regex.Pattern
-77,java.sql.Date
-78,java.sql.Time
-79,java.sql.Timestamp
-80,java.net.URI
-81,java.net.InetSocketAddress
-82,java.util.UUID
-83,java.util.Locale
-84,java.text.SimpleDateFormat
-85,org.apache.avro.generic.GenericData$Array


[flink] 40/42: [FLINK-13632] Port EnumValueSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 da1a402e3d8b7c696e034e466f70a20d5335cc13
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Apr 15 19:49:58 2020 +0800

    [FLINK-13632] Port EnumValueSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../resources/flink-1.6-scala-enum-serializer-data | Bin 40 -> 0 bytes
 .../flink-1.6-scala-enum-serializer-snapshot       | Bin 1865 -> 0 bytes
 .../resources/flink-1.7-scala-enum-serializer-data | Bin 40 -> 0 bytes
 .../flink-1.7-scala-enum-serializer-snapshot       | Bin 1853 -> 0 bytes
 ... => EnumValueSerializerCompatibilityTest.scala} |   6 +-
 .../EnumValueSerializerSnapshotMigrationTest.scala |  61 ------
 .../typeutils/EnumValueSerializerUpgradeTest.scala | 231 +++++----------------
 7 files changed, 57 insertions(+), 241 deletions(-)

diff --git a/flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-data b/flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-data
deleted file mode 100644
index 6459c29..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-snapshot b/flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-snapshot
deleted file mode 100644
index 3cf1738..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-enum-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-data b/flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-data
deleted file mode 100644
index 6459c29..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-snapshot b/flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-snapshot
deleted file mode 100644
index 99ea254..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-enum-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerCompatibilityTest.scala
similarity index 97%
copy from flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala
copy to flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerCompatibilityTest.scala
index 97c2b05..c3cdda4 100644
--- a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala
+++ b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerCompatibilityTest.scala
@@ -33,7 +33,7 @@ import scala.reflect.NameTransformer
 import scala.tools.nsc.reporters.ConsoleReporter
 import scala.tools.nsc.{GenericRunnerSettings, Global}
 
-class EnumValueSerializerUpgradeTest extends TestLogger with JUnitSuiteLike {
+class EnumValueSerializerCompatibilityTest extends TestLogger with JUnitSuiteLike {
 
   private val _tempFolder = new TemporaryFolder()
 
@@ -123,7 +123,7 @@ class EnumValueSerializerUpgradeTest extends TestLogger with JUnitSuiteLike {
 
   def checkCompatibility(enumSourceA: String, enumSourceB: String)
     : TypeSerializerSchemaCompatibility[Enumeration#Value] = {
-    import EnumValueSerializerUpgradeTest._
+    import EnumValueSerializerCompatibilityTest._
 
     val classLoader = compileAndLoadEnum(tempFolder.newFolder(), s"$enumName.scala", enumSourceA)
 
@@ -156,7 +156,7 @@ class EnumValueSerializerUpgradeTest extends TestLogger with JUnitSuiteLike {
   }
 }
 
-object EnumValueSerializerUpgradeTest {
+object EnumValueSerializerCompatibilityTest {
   def compileAndLoadEnum(root: File, filename: String, source: String): ClassLoader = {
     val file = writeSourceFile(root, filename, source)
 
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerSnapshotMigrationTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerSnapshotMigrationTest.scala
deleted file mode 100644
index daff774..0000000
--- a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerSnapshotMigrationTest.scala
+++ /dev/null
@@ -1,61 +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 java.util
-
-import org.apache.flink.api.common.ExecutionConfig
-import org.apache.flink.api.common.typeutils.{TypeSerializer, TypeSerializerSnapshotMigrationTestBase}
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase.{TestSpecification, TestSpecifications}
-import org.apache.flink.api.scala.createTypeInformation
-import org.apache.flink.testutils.migration.MigrationVersion
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
-
-/**
-  * Migration tests for the [[EnumValueSerializer]].
- */
-@RunWith(classOf[Parameterized])
-class EnumValueSerializerSnapshotMigrationTest(
-  spec: TestSpecification[Letters.Value])
-extends TypeSerializerSnapshotMigrationTestBase[Letters.Value](spec) {}
-
-object EnumValueSerializerSnapshotMigrationTest {
-
-  private val supplier =
-    new util.function.Supplier[EnumValueSerializer[Letters.type]] {
-      override def get(): EnumValueSerializer[Letters.type] =
-        new EnumValueSerializer(Letters)
-    }
-
-  @Parameterized.Parameters(name = "Test Specification = {0}")
-  def testSpecifications(): util.Collection[TestSpecification[_]] = {
-    val spec =
-      new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7)
-
-    spec.add(
-      "scala-enum-serializer",
-      classOf[EnumValueSerializer[Letters.Value]],
-      classOf[ScalaEnumSerializerSnapshot[Letters.Value]],
-      supplier
-    )
-
-    spec.get()
-  }
-}
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala
index 97c2b05..9c96df6 100644
--- a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala
+++ b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/EnumValueSerializerUpgradeTest.scala
@@ -18,191 +18,68 @@
 
 package org.apache.flink.api.scala.typeutils
 
-import java.io._
-import java.net.{URL, URLClassLoader}
-
-import org.apache.flink.api.common.typeutils.{TypeSerializerSchemaCompatibility, TypeSerializerSnapshotSerializationUtil}
-import org.apache.flink.core.memory.{DataInputViewStreamWrapper, DataOutputViewStreamWrapper}
-import org.apache.flink.util.TestLogger
-import org.junit.rules.TemporaryFolder
-import org.junit.{Rule, Test}
-import org.junit.Assert._
-import org.scalatest.junit.JUnitSuiteLike
-
-import scala.reflect.NameTransformer
-import scala.tools.nsc.reporters.ConsoleReporter
-import scala.tools.nsc.{GenericRunnerSettings, Global}
-
-class EnumValueSerializerUpgradeTest extends TestLogger with JUnitSuiteLike {
-
-  private val _tempFolder = new TemporaryFolder()
-
-  @Rule
-  def tempFolder = _tempFolder
-
-  val enumName = "EnumValueSerializerUpgradeTestEnum"
-
-  val enumA =
-    s"""
-      |object $enumName extends Enumeration {
-      |  val A, B, C = Value
-      |}
-    """.stripMargin
-
-  val enumB =
-    s"""
-       |object $enumName extends Enumeration {
-       |  val A, B, C, D = Value
-       |}
-    """.stripMargin
-
-  val enumC =
-    s"""
-       |object $enumName extends Enumeration {
-       |  val A, C = Value
-       |}
-    """.stripMargin
-
-  val enumD =
-    s"""
-       |object $enumName extends Enumeration {
-       |  val A, C, B = Value
-       |}
-    """.stripMargin
-
-  val enumE =
-    s"""
-       |object $enumName extends Enumeration {
-       |  val A = Value(42)
-       |  val B = Value(5)
-       |  val C = Value(1337)
-       |}
-    """.stripMargin
-
-  /**
-    * Check that identical enums don't require migration
-    */
-  @Test
-  def checkIdenticalEnums(): Unit = {
-    assertTrue(checkCompatibility(enumA, enumA).isCompatibleAsIs)
-  }
-
-  /**
-    * Check that appending fields to the enum does not require migration
-    */
-  @Test
-  def checkAppendedField(): Unit = {
-    assertTrue(checkCompatibility(enumA, enumB).isCompatibleAsIs)
-  }
-
-  /**
-    * Check that removing enum fields makes the snapshot incompatible.
-    */
-  @Test
-  def checkRemovedField(): Unit = {
-    assertTrue(checkCompatibility(enumA, enumC).isIncompatible)
-  }
-
-  /**
-    * Check that changing the enum field order makes the snapshot incompatible.
-    */
-  @Test
-  def checkDifferentFieldOrder(): Unit = {
-    assertTrue(checkCompatibility(enumA, enumD).isIncompatible)
-  }
-
-  /**
-    * Check that changing the enum ids causes a migration
-    */
-  @Test
-  def checkDifferentIds(): Unit = {
-    assertTrue(
-      "Different ids should be incompatible.",
-      checkCompatibility(enumA, enumE).isIncompatible)
-  }
-
-  def checkCompatibility(enumSourceA: String, enumSourceB: String)
-    : TypeSerializerSchemaCompatibility[Enumeration#Value] = {
-    import EnumValueSerializerUpgradeTest._
-
-    val classLoader = compileAndLoadEnum(tempFolder.newFolder(), s"$enumName.scala", enumSourceA)
-
-    val enum = instantiateEnum[Enumeration](classLoader, enumName)
-
-    val enumValueSerializer = new EnumValueSerializer(enum)
-    val snapshot = enumValueSerializer.snapshotConfiguration()
-
-    val baos = new ByteArrayOutputStream()
-    val output = new DataOutputViewStreamWrapper(baos)
-    TypeSerializerSnapshotSerializationUtil.writeSerializerSnapshot(
-      output, snapshot, enumValueSerializer)
-
-    output.close()
-    baos.close()
-
-    val bais = new ByteArrayInputStream(baos.toByteArray)
-    val input=  new DataInputViewStreamWrapper(bais)
-
-    val classLoader2 = compileAndLoadEnum(tempFolder.newFolder(), s"$enumName.scala", enumSourceB)
-
-    val snapshot2 = TypeSerializerSnapshotSerializationUtil.readSerializerSnapshot(
-      input,
-      classLoader2,
-      enumValueSerializer)
-    val enum2 = instantiateEnum[Enumeration](classLoader2, enumName)
-
-    val enumValueSerializer2 = new EnumValueSerializer(enum2)
-    snapshot2.resolveSchemaCompatibility(enumValueSerializer2)
-  }
-}
+import java.util
+
+import org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase.TestSpecification
+import org.apache.flink.api.common.typeutils.{TypeSerializer, TypeSerializerMatchers, TypeSerializerSchemaCompatibility, TypeSerializerUpgradeTestBase}
+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 [[EnumValueSerializer]].
+ */
+@RunWith(classOf[Parameterized])
+class EnumValueSerializerUpgradeTest(
+  spec: TestSpecification[Letters.Value, Letters.Value])
+extends TypeSerializerUpgradeTestBase[Letters.Value, Letters.Value](spec) {}
 
 object EnumValueSerializerUpgradeTest {
-  def compileAndLoadEnum(root: File, filename: String, source: String): ClassLoader = {
-    val file = writeSourceFile(root, filename, source)
 
-    compileScalaFile(file)
-
-    new URLClassLoader(
-      Array[URL](root.toURI.toURL),
-      Thread.currentThread().getContextClassLoader)
-  }
-
-  def instantiateEnum[T <: Enumeration](classLoader: ClassLoader, enumName: String): T = {
-    val clazz = classLoader.loadClass(enumName + "$").asInstanceOf[Class[_ <: Enumeration]]
-    val field = clazz.getField(NameTransformer.MODULE_INSTANCE_NAME)
-
-    field.get(null).asInstanceOf[T]
+  private val supplier =
+    new util.function.Supplier[EnumValueSerializer[Letters.type]] {
+      override def get(): EnumValueSerializer[Letters.type] =
+        new EnumValueSerializer(Letters)
+    }
+
+  @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[Letters.Value, Letters.Value](
+        "scala-enum-serializer",
+          migrationVersion,
+          classOf[EnumValueSerializerSetup],
+          classOf[EnumValueSerializerVerifier]))
+    }
+
+    testSpecifications
   }
 
-  def writeSourceFile(root: File, filename: String, source: String): File = {
-    val file = new File(root, filename)
-    val fileWriter = new FileWriter(file)
-
-    fileWriter.write(source)
-
-    fileWriter.close()
-
-    file
+  /**
+   * This class is only public to work with
+   * [[org.apache.flink.api.common.typeutils.ClassRelocator]].
+   */
+  final class EnumValueSerializerSetup
+      extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[Letters.Value] {
+    override def createPriorSerializer: TypeSerializer[Letters.Value] = supplier.get()
+
+    override def createTestData: Letters.Value = Letters.A
   }
 
-  def compileScalaFile(file: File): Unit = {
-    val in = new BufferedReader(new StringReader(""))
-    val out = new PrintWriter(new BufferedWriter(
-      new OutputStreamWriter(System.out)))
-
-    val settings = new GenericRunnerSettings(out.println _)
+  final class EnumValueSerializerVerifier extends
+      TypeSerializerUpgradeTestBase.UpgradeVerifier[Letters.Value] {
+    override def createUpgradedSerializer: TypeSerializer[Letters.Value] = supplier.get()
 
-    // use the java classpath so that scala libraries are available to the compiler
-    settings.usejavacp.value = true
-    settings.outdir.value = file.getParent
+    override def testDataMatcher: Matcher[Letters.Value] = is(Letters.A)
 
-    val reporter = new ConsoleReporter(settings)
-    val global = new Global(settings, reporter)
-    val run = new global.Run
-
-    run.compile(List(file.getAbsolutePath))
-
-    reporter.printSummary()
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+        Matcher[TypeSerializerSchemaCompatibility[Letters.Value]] =
+      TypeSerializerMatchers.isCompatibleAsIs[Letters.Value]()
   }
 }
-


[flink] 34/42: [FLINK-13632] Port Kafka011Serializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 bd37c3c27f47d7d163ca4ca9203a47b738497ddf
Author: klion26 <qc...@gmail.com>
AuthorDate: Fri Feb 21 19:51:18 2020 +0800

    [FLINK-13632] Port Kafka011Serializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../connectors/kafka/FlinkKafkaProducer011.java    |  18 ++-
 .../kafka/Kafka011SerializerUpgradeTest.java       | 162 +++++++++++++++++++++
 .../KafkaSerializerSnapshotsMigrationTest.java     |  59 --------
 .../flink-1.6-context-state-serializer-data        | Bin 270 -> 0 bytes
 .../flink-1.6-context-state-serializer-snapshot    | Bin 452 -> 0 bytes
 .../flink-1.6-transaction-state-serializer-data    | Bin 110 -> 0 bytes
 ...flink-1.6-transaction-state-serializer-snapshot | Bin 460 -> 0 bytes
 .../flink-1.7-context-state-serializer-data        | Bin 270 -> 0 bytes
 .../flink-1.7-context-state-serializer-snapshot    | Bin 440 -> 0 bytes
 .../flink-1.7-transaction-state-serializer-data    | Bin 110 -> 0 bytes
 ...flink-1.7-transaction-state-serializer-snapshot | Bin 448 -> 0 bytes
 11 files changed, 175 insertions(+), 64 deletions(-)

diff --git a/flink-connectors/flink-connector-kafka-0.11/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer011.java b/flink-connectors/flink-connector-kafka-0.11/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer011.java
index 32bd558..f8642f9 100644
--- a/flink-connectors/flink-connector-kafka-0.11/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer011.java
+++ b/flink-connectors/flink-connector-kafka-0.11/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer011.java
@@ -1083,7 +1083,7 @@ public class FlinkKafkaProducer011<IN>
 	 */
 	@VisibleForTesting
 	@Internal
-	static class KafkaTransactionState {
+	public static class KafkaTransactionState {
 
 		private final transient FlinkKafkaProducer<byte[], byte[]> producer;
 
@@ -1094,15 +1094,21 @@ public class FlinkKafkaProducer011<IN>
 
 		final short epoch;
 
-		KafkaTransactionState(String transactionalId, FlinkKafkaProducer<byte[], byte[]> producer) {
+		@VisibleForTesting
+		@Internal
+		public KafkaTransactionState(String transactionalId, FlinkKafkaProducer<byte[], byte[]> producer) {
 			this(transactionalId, producer.getProducerId(), producer.getEpoch(), producer);
 		}
 
-		KafkaTransactionState(FlinkKafkaProducer<byte[], byte[]> producer) {
+		@VisibleForTesting
+		@Internal
+		public KafkaTransactionState(FlinkKafkaProducer<byte[], byte[]> producer) {
 			this(null, -1, (short) -1, producer);
 		}
 
-		KafkaTransactionState(
+		@VisibleForTesting
+		@Internal
+		public KafkaTransactionState(
 				@Nullable String transactionalId,
 				long producerId,
 				short epoch,
@@ -1165,7 +1171,9 @@ public class FlinkKafkaProducer011<IN>
 	public static class KafkaTransactionContext {
 		final Set<String> transactionalIds;
 
-		KafkaTransactionContext(Set<String> transactionalIds) {
+		@VisibleForTesting
+		@Internal
+		public KafkaTransactionContext(Set<String> transactionalIds) {
 			checkNotNull(transactionalIds);
 			this.transactionalIds = transactionalIds;
 		}
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/Kafka011SerializerUpgradeTest.java b/flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/Kafka011SerializerUpgradeTest.java
new file mode 100644
index 0000000..2d1144b
--- /dev/null
+++ b/flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/Kafka011SerializerUpgradeTest.java
@@ -0,0 +1,162 @@
+/*
+ * 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.streaming.connectors.kafka;
+
+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.streaming.connectors.kafka.internal.FlinkKafkaProducer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.mockito.Mockito;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for the {@link FlinkKafkaProducer011.TransactionStateSerializer}
+ * and {@link FlinkKafkaProducer011.ContextStateSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class Kafka011SerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public Kafka011SerializerUpgradeTest(TestSpecification<Object, Object> testSpecification) {
+		super(testSpecification);
+	}
+
+	@SuppressWarnings("unchecked")
+	@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<>(
+					"transaction-state-serializer",
+					migrationVersion,
+					TransactionStateSerializerSetup.class,
+					TransactionStateSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"context-state-serializer",
+					migrationVersion,
+					ContextStateSerializerSetup.class,
+					ContextStateSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "transaction-state-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TransactionStateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<FlinkKafkaProducer011.KafkaTransactionState> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer011.KafkaTransactionState> createPriorSerializer() {
+			return new FlinkKafkaProducer011.TransactionStateSerializer();
+		}
+
+		@Override
+		public FlinkKafkaProducer011.KafkaTransactionState createTestData() {
+			@SuppressWarnings("unchecked")
+			FlinkKafkaProducer<byte[], byte[]> mock = Mockito.mock(FlinkKafkaProducer.class);
+			return new FlinkKafkaProducer011.KafkaTransactionState("1234", 3456, (short) 789, mock);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TransactionStateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<FlinkKafkaProducer011.KafkaTransactionState> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer011.KafkaTransactionState> createUpgradedSerializer() {
+			return new FlinkKafkaProducer011.TransactionStateSerializer();
+		}
+
+		@Override
+		public Matcher<FlinkKafkaProducer011.KafkaTransactionState> testDataMatcher() {
+			@SuppressWarnings("unchecked")
+			FlinkKafkaProducer<byte[], byte[]> mock = Mockito.mock(FlinkKafkaProducer.class);
+			return is(new FlinkKafkaProducer011.KafkaTransactionState("1234", 3456, (short) 789, mock));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<FlinkKafkaProducer011.KafkaTransactionState>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "context-state-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ContextStateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<FlinkKafkaProducer011.KafkaTransactionContext> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer011.KafkaTransactionContext> createPriorSerializer() {
+			return new FlinkKafkaProducer011.ContextStateSerializer();
+		}
+
+		@Override
+		public FlinkKafkaProducer011.KafkaTransactionContext createTestData() {
+			Set<String> transactionIds = new HashSet<>();
+			transactionIds.add("123");
+			transactionIds.add("456");
+			transactionIds.add("789");
+			return new FlinkKafkaProducer011.KafkaTransactionContext(transactionIds);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ContextStateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<FlinkKafkaProducer011.KafkaTransactionContext> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer011.KafkaTransactionContext> createUpgradedSerializer() {
+			return new FlinkKafkaProducer011.ContextStateSerializer();
+		}
+
+		@Override
+		public Matcher<FlinkKafkaProducer011.KafkaTransactionContext> testDataMatcher() {
+			Set<String> transactionIds = new HashSet<>();
+			transactionIds.add("123");
+			transactionIds.add("456");
+			transactionIds.add("789");
+			return is(new FlinkKafkaProducer011.KafkaTransactionContext(transactionIds));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<FlinkKafkaProducer011.KafkaTransactionContext>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java b/flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java
deleted file mode 100644
index 85272c8..0000000
--- a/flink-connectors/flink-connector-kafka-0.11/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java
+++ /dev/null
@@ -1,59 +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.streaming.connectors.kafka;
-
-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 the {@link FlinkKafkaProducer011.TransactionStateSerializer}
- * and {@link FlinkKafkaProducer011.ContextStateSerializer}.
- */
-@RunWith(Parameterized.class)
-public class KafkaSerializerSnapshotsMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public KafkaSerializerSnapshotsMigrationTest(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(
-			"transaction-state-serializer",
-			FlinkKafkaProducer011.TransactionStateSerializer.class,
-			FlinkKafkaProducer011.TransactionStateSerializer.TransactionStateSerializerSnapshot.class,
-			FlinkKafkaProducer011.TransactionStateSerializer::new);
-		testSpecifications.add(
-			"context-state-serializer",
-			FlinkKafkaProducer011.ContextStateSerializer.class,
-			FlinkKafkaProducer011.ContextStateSerializer.ContextStateSerializerSnapshot.class,
-			FlinkKafkaProducer011.ContextStateSerializer::new);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-data b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-data
deleted file mode 100644
index e7d439a..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-snapshot b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-snapshot
deleted file mode 100644
index f6f36e7..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-context-state-serializer-snapshot and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-data b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-data
deleted file mode 100644
index 2476af5..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-snapshot b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-snapshot
deleted file mode 100644
index 87182ea..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.6-transaction-state-serializer-snapshot and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-data b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-data
deleted file mode 100644
index e7d439a..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-snapshot b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-snapshot
deleted file mode 100644
index 870f4b4..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-context-state-serializer-snapshot and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-data b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-data
deleted file mode 100644
index 2476af5..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-snapshot b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-snapshot
deleted file mode 100644
index 52370eb..0000000
Binary files a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/flink-1.7-transaction-state-serializer-snapshot and /dev/null differ


[flink] 24/42: [FLINK-13632] Port KafkaSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 6762882bee9dde4cbb655950ecbf1afa0011f0a9
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 14:05:55 2020 +0800

    [FLINK-13632] Port KafkaSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../connectors/kafka/FlinkKafkaProducer.java       |  14 +-
 .../KafkaSerializerSnapshotsMigrationTest.java     |  59 --------
 .../kafka/KafkaSerializerUpgradeTest.java          | 162 +++++++++++++++++++++
 .../flink-1.7-context-state-serializer-data        | Bin 270 -> 0 bytes
 .../flink-1.7-context-state-serializer-snapshot    | Bin 434 -> 0 bytes
 .../flink-1.7-transaction-state-serializer-data    | Bin 110 -> 0 bytes
 ...flink-1.7-transaction-state-serializer-snapshot | Bin 442 -> 0 bytes
 7 files changed, 171 insertions(+), 64 deletions(-)

diff --git a/flink-connectors/flink-connector-kafka/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer.java b/flink-connectors/flink-connector-kafka/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer.java
index 9d033b7..b095195 100644
--- a/flink-connectors/flink-connector-kafka/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer.java
+++ b/flink-connectors/flink-connector-kafka/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer.java
@@ -1281,7 +1281,7 @@ public class FlinkKafkaProducer<IN>
 	 */
 	@VisibleForTesting
 	@Internal
-	protected static class KafkaTransactionState {
+	public static class KafkaTransactionState {
 
 		private final transient FlinkKafkaInternalProducer<byte[], byte[]> producer;
 
@@ -1292,15 +1292,18 @@ public class FlinkKafkaProducer<IN>
 
 		final short epoch;
 
-		KafkaTransactionState(String transactionalId, FlinkKafkaInternalProducer<byte[], byte[]> producer) {
+		@VisibleForTesting
+		public KafkaTransactionState(String transactionalId, FlinkKafkaInternalProducer<byte[], byte[]> producer) {
 			this(transactionalId, producer.getProducerId(), producer.getEpoch(), producer);
 		}
 
-		KafkaTransactionState(FlinkKafkaInternalProducer<byte[], byte[]> producer) {
+		@VisibleForTesting
+		public KafkaTransactionState(FlinkKafkaInternalProducer<byte[], byte[]> producer) {
 			this(null, -1, (short) -1, producer);
 		}
 
-		KafkaTransactionState(
+		@VisibleForTesting
+		public KafkaTransactionState(
 			@Nullable String transactionalId,
 			long producerId,
 			short epoch,
@@ -1367,7 +1370,8 @@ public class FlinkKafkaProducer<IN>
 	public static class KafkaTransactionContext {
 		final Set<String> transactionalIds;
 
-		KafkaTransactionContext(Set<String> transactionalIds) {
+		@VisibleForTesting
+		public KafkaTransactionContext(Set<String> transactionalIds) {
 			checkNotNull(transactionalIds);
 			this.transactionalIds = transactionalIds;
 		}
diff --git a/flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java b/flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java
deleted file mode 100644
index ac69205..0000000
--- a/flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerSnapshotsMigrationTest.java
+++ /dev/null
@@ -1,59 +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.streaming.connectors.kafka;
-
-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 the {@link FlinkKafkaProducer.TransactionStateSerializer}
- * and {@link FlinkKafkaProducer.ContextStateSerializer}.
- */
-@RunWith(Parameterized.class)
-public class KafkaSerializerSnapshotsMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public KafkaSerializerSnapshotsMigrationTest(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_7);
-
-		testSpecifications.add(
-			"transaction-state-serializer",
-			FlinkKafkaProducer.TransactionStateSerializer.class,
-			FlinkKafkaProducer.TransactionStateSerializer.TransactionStateSerializerSnapshot.class,
-			FlinkKafkaProducer.TransactionStateSerializer::new);
-		testSpecifications.add(
-			"context-state-serializer",
-			FlinkKafkaProducer.ContextStateSerializer.class,
-			FlinkKafkaProducer.ContextStateSerializer.ContextStateSerializerSnapshot.class,
-			FlinkKafkaProducer.ContextStateSerializer::new);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerUpgradeTest.java b/flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerUpgradeTest.java
new file mode 100644
index 0000000..bb1146f
--- /dev/null
+++ b/flink-connectors/flink-connector-kafka/src/test/java/org/apache/flink/streaming/connectors/kafka/KafkaSerializerUpgradeTest.java
@@ -0,0 +1,162 @@
+/*
+ * 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.streaming.connectors.kafka;
+
+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.streaming.connectors.kafka.internal.FlinkKafkaInternalProducer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.mockito.Mockito;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for  {@link FlinkKafkaProducer.TransactionStateSerializer}
+ * and {@link FlinkKafkaProducer.ContextStateSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class KafkaSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public KafkaSerializerUpgradeTest(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<>(
+					"transaction-state-serializer",
+					migrationVersion,
+					TransactionStateSerializerSetup.class,
+					TransactionStateSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"context-state-serializer",
+					migrationVersion,
+					ContextStateSerializerSetup.class,
+					ContextStateSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "transaction-state-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TransactionStateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<FlinkKafkaProducer.KafkaTransactionState> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer.KafkaTransactionState> createPriorSerializer() {
+			return new FlinkKafkaProducer.TransactionStateSerializer();
+		}
+
+		@Override
+		public FlinkKafkaProducer.KafkaTransactionState createTestData() {
+			@SuppressWarnings("unchecked")
+			FlinkKafkaInternalProducer<byte[], byte[]> mock = Mockito.mock(FlinkKafkaInternalProducer.class);
+			return new FlinkKafkaProducer.KafkaTransactionState("1234", 3456, (short) 789, mock);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TransactionStateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<FlinkKafkaProducer.KafkaTransactionState> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer.KafkaTransactionState> createUpgradedSerializer() {
+			return new FlinkKafkaProducer.TransactionStateSerializer();
+		}
+
+		@Override
+		public Matcher<FlinkKafkaProducer.KafkaTransactionState> testDataMatcher() {
+			@SuppressWarnings("unchecked")
+			FlinkKafkaInternalProducer<byte[], byte[]> mock = Mockito.mock(FlinkKafkaInternalProducer.class);
+			return is(new FlinkKafkaProducer.KafkaTransactionState("1234", 3456, (short) 789, mock));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<FlinkKafkaProducer.KafkaTransactionState>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "context-state-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ContextStateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<FlinkKafkaProducer.KafkaTransactionContext> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer.KafkaTransactionContext> createPriorSerializer() {
+			return new FlinkKafkaProducer.ContextStateSerializer();
+		}
+
+		@Override
+		public FlinkKafkaProducer.KafkaTransactionContext createTestData() {
+			Set<String> transactionIds = new HashSet<>();
+			transactionIds.add("123");
+			transactionIds.add("456");
+			transactionIds.add("789");
+			return new FlinkKafkaProducer.KafkaTransactionContext(transactionIds);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ContextStateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<FlinkKafkaProducer.KafkaTransactionContext> {
+		@Override
+		public TypeSerializer<FlinkKafkaProducer.KafkaTransactionContext> createUpgradedSerializer() {
+			return new FlinkKafkaProducer.ContextStateSerializer();
+		}
+
+		@Override
+		public Matcher<FlinkKafkaProducer.KafkaTransactionContext> testDataMatcher() {
+			Set<String> transactionIds = new HashSet<>();
+			transactionIds.add("123");
+			transactionIds.add("456");
+			transactionIds.add("789");
+			return is(new FlinkKafkaProducer.KafkaTransactionContext(transactionIds));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<FlinkKafkaProducer.KafkaTransactionContext>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+}
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-data b/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-data
deleted file mode 100644
index e7d439a..0000000
Binary files a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-snapshot b/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-snapshot
deleted file mode 100644
index 14f0dd4..0000000
Binary files a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-context-state-serializer-snapshot and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-data b/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-data
deleted file mode 100644
index 2476af5..0000000
Binary files a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-snapshot b/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-snapshot
deleted file mode 100644
index 35063ba..0000000
Binary files a/flink-connectors/flink-connector-kafka/src/test/resources/flink-1.7-transaction-state-serializer-snapshot and /dev/null differ


[flink] 02/42: [FLINK-17956] Add Flink 1.11 MigrationVersion

Posted by al...@apache.org.
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 30071aa5c1ac16ada0731b31608e9fff77bf8e88
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Wed May 27 08:49:58 2020 +0200

    [FLINK-17956] Add Flink 1.11 MigrationVersion
---
 .../java/org/apache/flink/testutils/migration/MigrationVersion.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/flink-core/src/test/java/org/apache/flink/testutils/migration/MigrationVersion.java b/flink-core/src/test/java/org/apache/flink/testutils/migration/MigrationVersion.java
index 4a9cb7d..fc98840 100644
--- a/flink-core/src/test/java/org/apache/flink/testutils/migration/MigrationVersion.java
+++ b/flink-core/src/test/java/org/apache/flink/testutils/migration/MigrationVersion.java
@@ -38,7 +38,8 @@ public enum MigrationVersion {
 	v1_7("1.7"),
 	v1_8("1.8"),
 	v1_9("1.9"),
-	v1_10("1.10");
+	v1_10("1.10"),
+	v1_11("1.11");
 
 	private String versionStr;
 


[flink] 13/42: [FLINK-13632] Port BaseTypeSerializer test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 c5fcfe668fbf1b3b8982ebd0f632fe20a4f41c9a
Author: klion26 <qc...@gmail.com>
AuthorDate: Thu Jan 30 14:22:58 2020 +0800

    [FLINK-13632] Port BaseTypeSerializer test to TypeSerializerUpgradeTestBase
---
 .../BaseTypeSerializerSnapshotMigrationTest.java   |   73 --
 .../base/BasicTypeSerializerUpgradeTest.java       |  199 ++++
 ...sicTypeSerializerUpgradeTestSpecifications.java | 1002 ++++++++++++++++++++
 .../resources/flink-1.6-big-dec-serializer-data    |  Bin 300 -> 0 bytes
 .../flink-1.6-big-dec-serializer-snapshot          |  Bin 394 -> 0 bytes
 .../resources/flink-1.6-big-int-serializer-data    |  Bin 64 -> 0 bytes
 .../flink-1.6-big-int-serializer-snapshot          |  Bin 394 -> 0 bytes
 .../resources/flink-1.6-boolean-serializer-data    |    1 -
 .../flink-1.6-boolean-serializer-snapshot          |  Bin 396 -> 0 bytes
 .../flink-1.6-boolean-value-serializer-data        |  Bin 10 -> 0 bytes
 .../flink-1.6-boolean-value-serializer-snapshot    |  Bin 406 -> 0 bytes
 .../test/resources/flink-1.6-byte-serializer-data  |    1 -
 .../resources/flink-1.6-byte-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-byte-value-serializer-data |    1 -
 .../flink-1.6-byte-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../test/resources/flink-1.6-char-serializer-data  |  Bin 20 -> 0 bytes
 .../resources/flink-1.6-char-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-char-value-serializer-data |  Bin 20 -> 0 bytes
 .../flink-1.6-char-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../test/resources/flink-1.6-date-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.6-date-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-double-serializer-data     |    1 -
 .../resources/flink-1.6-double-serializer-snapshot |  Bin 394 -> 0 bytes
 .../flink-1.6-double-value-serializer-data         |    1 -
 .../flink-1.6-double-value-serializer-snapshot     |  Bin 404 -> 0 bytes
 .../test/resources/flink-1.6-float-serializer-data |    1 -
 .../resources/flink-1.6-float-serializer-snapshot  |  Bin 392 -> 0 bytes
 .../flink-1.6-float-value-serializer-data          |    1 -
 .../flink-1.6-float-value-serializer-snapshot      |  Bin 402 -> 0 bytes
 .../test/resources/flink-1.6-int-serializer-data   |  Bin 40 -> 0 bytes
 .../resources/flink-1.6-int-serializer-snapshot    |  Bin 388 -> 0 bytes
 .../resources/flink-1.6-int-value-serializer-data  |  Bin 40 -> 0 bytes
 .../flink-1.6-int-value-serializer-snapshot        |  Bin 398 -> 0 bytes
 .../test/resources/flink-1.6-long-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.6-long-serializer-snapshot   |  Bin 390 -> 0 bytes
 .../resources/flink-1.6-long-value-serializer-data |  Bin 80 -> 0 bytes
 .../flink-1.6-long-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../resources/flink-1.6-null-value-serializer-data |    0
 .../flink-1.6-null-value-serializer-snapshot       |  Bin 400 -> 0 bytes
 .../test/resources/flink-1.6-short-serializer-data |  Bin 20 -> 0 bytes
 .../resources/flink-1.6-short-serializer-snapshot  |  Bin 392 -> 0 bytes
 .../flink-1.6-short-value-serializer-data          |  Bin 20 -> 0 bytes
 .../flink-1.6-short-value-serializer-snapshot      |  Bin 402 -> 0 bytes
 .../resources/flink-1.6-sql-date-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.6-sql-date-serializer-snapshot         |  Bin 396 -> 0 bytes
 .../resources/flink-1.6-sql-time-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.6-sql-time-serializer-snapshot         |  Bin 396 -> 0 bytes
 .../flink-1.6-sql-timestamp-serializer-data        |  Bin 120 -> 0 bytes
 .../flink-1.6-sql-timestamp-serializer-snapshot    |  Bin 406 -> 0 bytes
 .../resources/flink-1.6-string-serializer-data     |    1 -
 .../resources/flink-1.6-string-serializer-snapshot |  Bin 394 -> 0 bytes
 .../flink-1.6-string-value-serializer-data         |    1 -
 .../flink-1.6-string-value-serializer-snapshot     |  Bin 404 -> 0 bytes
 .../resources/flink-1.7-big-dec-serializer-data    |  Bin 300 -> 0 bytes
 .../flink-1.7-big-dec-serializer-snapshot          |  Bin 155 -> 0 bytes
 .../resources/flink-1.7-big-int-serializer-data    |  Bin 150 -> 0 bytes
 .../flink-1.7-big-int-serializer-snapshot          |  Bin 155 -> 0 bytes
 .../resources/flink-1.7-boolean-serializer-data    |    1 -
 .../flink-1.7-boolean-serializer-snapshot          |  Bin 158 -> 0 bytes
 .../flink-1.7-boolean-value-serializer-data        |  Bin 10 -> 0 bytes
 .../flink-1.7-boolean-value-serializer-snapshot    |  Bin 173 -> 0 bytes
 .../test/resources/flink-1.7-byte-serializer-data  |    1 -
 .../resources/flink-1.7-byte-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-byte-value-serializer-data |    1 -
 .../flink-1.7-byte-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../test/resources/flink-1.7-char-serializer-data  |  Bin 20 -> 0 bytes
 .../resources/flink-1.7-char-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-char-value-serializer-data |  Bin 20 -> 0 bytes
 .../flink-1.7-char-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../test/resources/flink-1.7-date-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.7-date-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-double-serializer-data     |    1 -
 .../resources/flink-1.7-double-serializer-snapshot |  Bin 155 -> 0 bytes
 .../flink-1.7-double-value-serializer-data         |    1 -
 .../flink-1.7-double-value-serializer-snapshot     |  Bin 170 -> 0 bytes
 .../test/resources/flink-1.7-float-serializer-data |    1 -
 .../resources/flink-1.7-float-serializer-snapshot  |  Bin 152 -> 0 bytes
 .../flink-1.7-float-value-serializer-data          |    1 -
 .../flink-1.7-float-value-serializer-snapshot      |  Bin 167 -> 0 bytes
 .../test/resources/flink-1.7-int-serializer-data   |  Bin 40 -> 0 bytes
 .../resources/flink-1.7-int-serializer-snapshot    |  Bin 146 -> 0 bytes
 .../resources/flink-1.7-int-value-serializer-data  |  Bin 40 -> 0 bytes
 .../flink-1.7-int-value-serializer-snapshot        |  Bin 161 -> 0 bytes
 .../test/resources/flink-1.7-long-serializer-data  |  Bin 80 -> 0 bytes
 .../resources/flink-1.7-long-serializer-snapshot   |  Bin 149 -> 0 bytes
 .../resources/flink-1.7-long-value-serializer-data |  Bin 80 -> 0 bytes
 .../flink-1.7-long-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../resources/flink-1.7-null-value-serializer-data |    0
 .../flink-1.7-null-value-serializer-snapshot       |  Bin 164 -> 0 bytes
 .../test/resources/flink-1.7-short-serializer-data |  Bin 20 -> 0 bytes
 .../resources/flink-1.7-short-serializer-snapshot  |  Bin 152 -> 0 bytes
 .../flink-1.7-short-value-serializer-data          |  Bin 20 -> 0 bytes
 .../flink-1.7-short-value-serializer-snapshot      |  Bin 167 -> 0 bytes
 .../resources/flink-1.7-sql-date-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.7-sql-date-serializer-snapshot         |  Bin 158 -> 0 bytes
 .../resources/flink-1.7-sql-time-serializer-data   |  Bin 80 -> 0 bytes
 .../flink-1.7-sql-time-serializer-snapshot         |  Bin 158 -> 0 bytes
 .../flink-1.7-sql-timestamp-serializer-data        |  Bin 120 -> 0 bytes
 .../flink-1.7-sql-timestamp-serializer-snapshot    |  Bin 173 -> 0 bytes
 .../resources/flink-1.7-string-serializer-data     |    1 -
 .../resources/flink-1.7-string-serializer-snapshot |  Bin 155 -> 0 bytes
 .../flink-1.7-string-value-serializer-data         |    1 -
 .../flink-1.7-string-value-serializer-snapshot     |  Bin 170 -> 0 bytes
 103 files changed, 1201 insertions(+), 91 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BaseTypeSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BaseTypeSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 2ed4a85..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BaseTypeSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,73 +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;
-
-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 basic type serializers' snapshots.
- */
-@RunWith(Parameterized.class)
-public class BaseTypeSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public BaseTypeSerializerSnapshotMigrationTest(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("big-dec-serializer", BigDecSerializer.class, BigDecSerializer.BigDecSerializerSnapshot.class, () -> BigDecSerializer.INSTANCE);
-		testSpecifications.add("big-int-serializer", BigIntSerializer.class, BigIntSerializer.BigIntSerializerSnapshot.class, () -> BigIntSerializer.INSTANCE);
-		testSpecifications.add("boolean-serializer", BooleanSerializer.class, BooleanSerializer.BooleanSerializerSnapshot.class, () -> BooleanSerializer.INSTANCE);
-		testSpecifications.add("boolean-value-serializer", BooleanValueSerializer.class, BooleanValueSerializer.BooleanValueSerializerSnapshot.class, () -> BooleanValueSerializer.INSTANCE);
-		testSpecifications.add("byte-serializer", ByteSerializer.class, ByteSerializer.ByteSerializerSnapshot.class, () -> ByteSerializer.INSTANCE);
-		testSpecifications.add("byte-value-serializer", ByteValueSerializer.class, ByteValueSerializer.ByteValueSerializerSnapshot.class, () -> ByteValueSerializer.INSTANCE);
-		testSpecifications.add("char-serializer", CharSerializer.class, CharSerializer.CharSerializerSnapshot.class, () -> CharSerializer.INSTANCE);
-		testSpecifications.add("char-value-serializer", CharValueSerializer.class, CharValueSerializer.CharValueSerializerSnapshot.class, () -> CharValueSerializer.INSTANCE);
-		testSpecifications.add("date-serializer", DateSerializer.class, DateSerializer.DateSerializerSnapshot.class, () -> DateSerializer.INSTANCE);
-		testSpecifications.add("double-serializer", DoubleSerializer.class, DoubleSerializer.DoubleSerializerSnapshot.class, () -> DoubleSerializer.INSTANCE);
-		testSpecifications.add("double-value-serializer", DoubleValueSerializer.class, DoubleValueSerializer.DoubleValueSerializerSnapshot.class, () -> DoubleValueSerializer.INSTANCE);
-		testSpecifications.add("float-serializer", FloatSerializer.class, FloatSerializer.FloatSerializerSnapshot.class, () -> FloatSerializer.INSTANCE);
-		testSpecifications.add("float-value-serializer", FloatValueSerializer.class, FloatValueSerializer.FloatValueSerializerSnapshot.class, () -> FloatValueSerializer.INSTANCE);
-		testSpecifications.add("int-serializer", IntSerializer.class, IntSerializer.IntSerializerSnapshot.class, () -> IntSerializer.INSTANCE);
-		testSpecifications.add("int-value-serializer", IntValueSerializer.class, IntValueSerializer.IntValueSerializerSnapshot.class, () -> IntValueSerializer.INSTANCE);
-		testSpecifications.add("long-serializer", LongSerializer.class, LongSerializer.LongSerializerSnapshot.class, () -> LongSerializer.INSTANCE);
-		testSpecifications.add("long-value-serializer", LongValueSerializer.class, LongValueSerializer.LongValueSerializerSnapshot.class, () -> LongValueSerializer.INSTANCE);
-		testSpecifications.add("null-value-serializer", NullValueSerializer.class, NullValueSerializer.NullValueSerializerSnapshot.class, () -> NullValueSerializer.INSTANCE);
-		testSpecifications.add("short-serializer", ShortSerializer.class, ShortSerializer.ShortSerializerSnapshot.class, () -> ShortSerializer.INSTANCE);
-		testSpecifications.add("short-value-serializer", ShortValueSerializer.class, ShortValueSerializer.ShortValueSerializerSnapshot.class, () -> ShortValueSerializer.INSTANCE);
-		testSpecifications.add("sql-date-serializer", SqlDateSerializer.class, SqlDateSerializer.SqlDateSerializerSnapshot.class, () -> SqlDateSerializer.INSTANCE);
-		testSpecifications.add("sql-time-serializer", SqlTimeSerializer.class, SqlTimeSerializer.SqlTimeSerializerSnapshot.class, () -> SqlTimeSerializer.INSTANCE);
-		testSpecifications.add("sql-timestamp-serializer", SqlTimestampSerializer.class, SqlTimestampSerializer.SqlTimestampSerializerSnapshot.class, () -> SqlTimestampSerializer.INSTANCE);
-		testSpecifications.add("string-serializer", StringSerializer.class, StringSerializer.StringSerializerSnapshot.class, () -> StringSerializer.INSTANCE);
-		testSpecifications.add("string-value-serializer", StringValueSerializer.class, StringValueSerializer.StringValueSerializerSnapshot.class, () -> StringValueSerializer.INSTANCE);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTest.java
new file mode 100644
index 0000000..4b3bbd8
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTest.java
@@ -0,0 +1,199 @@
+/*
+ * 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;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for BaseType Serializers.
+ */
+@RunWith(Parameterized.class)
+public class BasicTypeSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public BasicTypeSerializerUpgradeTest(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<>(
+					"big-dec-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.BigDecSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.BigDecSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"big-int-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.BigIntSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.BigIntSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"boolean-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.BooleanSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.BooleanSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"boolean-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.BooleanValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.BooleanValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"byte-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.ByteSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.ByteSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"byte-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.ByteValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.ByteValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"char-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.CharSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.CharSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"char-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.CharValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.CharValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"date-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.DateSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.DateSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"double-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.DoubleSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.DoubleSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"double-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.DoubleValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.DoubleValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"float-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.FloatSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.FloatSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"float-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.FloatValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.FloatValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"int-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.IntSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.IntSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"int-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.IntValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.IntValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"long-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.LongSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.LongSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"long-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.LongValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.LongValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"null-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.NullValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.NullValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"short-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.ShortSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.ShortSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"short-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.ShortValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.ShortValueSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"sql-date-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.SqlDateSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.SqlDateSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"sql-time-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.SqlTimeSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.SqlTimeSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"sql-timestamp-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.SqlTimestampSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.SqlTimestampSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"string-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.StringSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.StringSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"string-value-serializer",
+					migrationVersion,
+					BasicTypeSerializerUpgradeTestSpecifications.StringValueSerializerSetup.class,
+					BasicTypeSerializerUpgradeTestSpecifications.StringValueSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+}
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTestSpecifications.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTestSpecifications.java
new file mode 100644
index 0000000..3bea9f7
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/BasicTypeSerializerUpgradeTestSpecifications.java
@@ -0,0 +1,1002 @@
+/*
+ * 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;
+
+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.BooleanValue;
+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.hamcrest.Matchers;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.Date;
+
+
+/**
+ * Test specifications for {@link BasicTypeSerializerUpgradeTest}.
+ */
+public class BasicTypeSerializerUpgradeTestSpecifications {
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "big-dec-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * BigDecSerializerSetup.
+	 */
+	public static final class BigDecSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<BigDecimal> {
+		@Override
+		public TypeSerializer<BigDecimal> createPriorSerializer() {
+			return BigDecSerializer.INSTANCE;
+		}
+
+		@Override
+		public BigDecimal createTestData() {
+			return new BigDecimal("123456789012345678901234567890123456.789");
+		}
+	}
+
+	/**
+	 * BigDecSerializerVerifier.
+	 */
+	public static final class BigDecSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<BigDecimal> {
+		@Override
+		public TypeSerializer<BigDecimal> createUpgradedSerializer() {
+			return BigDecSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<BigDecimal> testDataMatcher() {
+			return Matchers.is(new BigDecimal("123456789012345678901234567890123456.789"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<BigDecimal>> schemaCompatibilityMatcher(
+				MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "big-int-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * BigIntSerializerSetup.
+	 */
+	public static final class BigIntSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<BigInteger> {
+		@Override
+		public TypeSerializer<BigInteger> createPriorSerializer() {
+			return BigIntSerializer.INSTANCE;
+		}
+
+		@Override
+		public BigInteger createTestData() {
+			return new BigInteger("123456789012345678901234567890123456");
+		}
+	}
+
+	/**
+	 * BigIntSerializerVerifier.
+	 */
+	public static final class BigIntSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<BigInteger> {
+		@Override
+		public TypeSerializer<BigInteger> createUpgradedSerializer() {
+			return BigIntSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<BigInteger> testDataMatcher() {
+			return Matchers.is(new BigInteger("123456789012345678901234567890123456"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<BigInteger>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "BooleanSerializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * BooleanSerializerSetup.
+	 */
+	public static final class BooleanSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Boolean> {
+		@Override
+		public TypeSerializer<Boolean> createPriorSerializer() {
+			return BooleanSerializer.INSTANCE;
+		}
+
+		@Override
+		public Boolean createTestData() {
+			return Boolean.TRUE;
+		}
+	}
+
+	/**
+	 * BooleanSerializerVerifier.
+	 */
+	public static final class BooleanSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Boolean> {
+		@Override
+		public TypeSerializer<Boolean> createUpgradedSerializer() {
+			return BooleanSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Boolean> testDataMatcher() {
+			return Matchers.is(Boolean.TRUE);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Boolean>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "boolean-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * BooleanValueSerializerSetup.
+	 */
+	public static final class BooleanValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<BooleanValue> {
+		@Override
+		public TypeSerializer<BooleanValue> createPriorSerializer() {
+			return BooleanValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public BooleanValue createTestData() {
+			return BooleanValue.TRUE;
+		}
+	}
+
+	/**
+	 * BooleanValueSerializerVerifier.
+	 */
+	public static final class BooleanValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<BooleanValue> {
+		@Override
+		public TypeSerializer<BooleanValue> createUpgradedSerializer() {
+			return BooleanValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<BooleanValue> testDataMatcher() {
+			return Matchers.is(BooleanValue.TRUE);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<BooleanValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "byte-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * ByteSerializerSetup.
+	 */
+	public static final class ByteSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Byte> {
+		@Override
+		public TypeSerializer<Byte> createPriorSerializer() {
+			return ByteSerializer.INSTANCE;
+		}
+
+		@Override
+		public Byte createTestData() {
+			return Byte.valueOf("42");
+		}
+	}
+
+	/**
+	 * ByteSerializerVerifier.
+	 */
+	public static final class ByteSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Byte> {
+		@Override
+		public TypeSerializer<Byte> createUpgradedSerializer() {
+			return ByteSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Byte> testDataMatcher() {
+			return Matchers.is(Byte.valueOf("42"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Byte>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "byte-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * ByteValueSerializerSetup.
+	 */
+	public static final class ByteValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<ByteValue> {
+		@Override
+		public TypeSerializer<ByteValue> createPriorSerializer() {
+			return ByteValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public ByteValue createTestData() {
+			return new ByteValue((byte) 42);
+		}
+	}
+
+	/**
+	 * ByteValueSerializerVerifier.
+	 */
+	public static final class ByteValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<ByteValue> {
+		@Override
+		public TypeSerializer<ByteValue> createUpgradedSerializer() {
+			return ByteValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<ByteValue> testDataMatcher() {
+			return Matchers.is(new ByteValue((byte) 42));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<ByteValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "char-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * CharSerializerSetup.
+	 */
+	public static final class CharSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Character> {
+		@Override
+		public TypeSerializer<Character> createPriorSerializer() {
+			return CharSerializer.INSTANCE;
+		}
+
+		@Override
+		public Character createTestData() {
+			return Character.MAX_VALUE;
+		}
+	}
+
+	/**
+	 * CharSerializerVerifier.
+	 */
+	public static final class CharSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Character> {
+		@Override
+		public TypeSerializer<Character> createUpgradedSerializer() {
+			return CharSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Character> testDataMatcher() {
+			return Matchers.is(Character.MAX_VALUE);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Character>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "char-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * CharValueSerializerSetup.
+	 */
+	public static final class CharValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<CharValue> {
+		@Override
+		public TypeSerializer<CharValue> createPriorSerializer() {
+			return CharValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public CharValue createTestData() {
+			return new CharValue((char) 42);
+		}
+	}
+
+	/**
+	 * CharValueSerializerVerifier.
+	 */
+	public static final class CharValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<CharValue> {
+		@Override
+		public TypeSerializer<CharValue> createUpgradedSerializer() {
+			return CharValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<CharValue> testDataMatcher() {
+			return Matchers.is(new CharValue((char) 42));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<CharValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "date-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * DateSerializerSetup.
+	 */
+	public static final class DateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Date> {
+		@Override
+		public TypeSerializer<Date> createPriorSerializer() {
+			return DateSerializer.INSTANCE;
+		}
+
+		@Override
+		public Date createTestData() {
+			return new Date(1580382960L);
+		}
+	}
+
+	/**
+	 * DateSerializerVerifier.
+	 */
+	public static final class DateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Date> {
+		@Override
+		public TypeSerializer<Date> createUpgradedSerializer() {
+			return DateSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Date> testDataMatcher() {
+			return Matchers.is(new Date(1580382960L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Date>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "double-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * DoubleSerializerSetup.
+	 */
+	public static final class DoubleSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Double> {
+		@Override
+		public TypeSerializer<Double> createPriorSerializer() {
+			return DoubleSerializer.INSTANCE;
+		}
+
+		@Override
+		public Double createTestData() {
+			return new Double("12345.6789");
+		}
+	}
+
+	/**
+	 * DoubleSerializerVerifier.
+	 */
+	public static final class DoubleSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Double> {
+		@Override
+		public TypeSerializer<Double> createUpgradedSerializer() {
+			return DoubleSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Double> testDataMatcher() {
+			return Matchers.is(new Double("12345.6789"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Double>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "double-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * DoubleValueSerializerSetup.
+	 */
+	public static final class DoubleValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<DoubleValue> {
+		@Override
+		public TypeSerializer<DoubleValue> createPriorSerializer() {
+			return DoubleValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public DoubleValue createTestData() {
+			return new DoubleValue(12345.6789);
+		}
+	}
+
+	/**
+	 * DoubleValueSerializerVerifier.
+	 */
+	public static final class DoubleValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<DoubleValue> {
+		@Override
+		public TypeSerializer<DoubleValue> createUpgradedSerializer() {
+			return DoubleValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<DoubleValue> testDataMatcher() {
+			return Matchers.is(new DoubleValue(12345.6789));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<DoubleValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "float-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * FloatSerializerSetup.
+	 */
+	public static final class FloatSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Float> {
+		@Override
+		public TypeSerializer<Float> createPriorSerializer() {
+			return FloatSerializer.INSTANCE;
+		}
+
+		@Override
+		public Float createTestData() {
+			return new Float("123.456");
+		}
+	}
+
+	/**
+	 * FloatSerializerVerifier.
+	 */
+	public static final class FloatSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Float> {
+		@Override
+		public TypeSerializer<Float> createUpgradedSerializer() {
+			return FloatSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Float> testDataMatcher() {
+			return Matchers.is(new Float("123.456"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Float>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "float-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * FloatValueSerializerSetup.
+	 */
+	public static final class FloatValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<FloatValue> {
+		@Override
+		public TypeSerializer<FloatValue> createPriorSerializer() {
+			return FloatValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public FloatValue createTestData() {
+			return new FloatValue(123.456f);
+		}
+	}
+
+	/**
+	 * FloatValueSerializerVerifier.
+	 */
+	public static final class FloatValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<FloatValue> {
+		@Override
+		public TypeSerializer<FloatValue> createUpgradedSerializer() {
+			return FloatValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<FloatValue> testDataMatcher() {
+			return Matchers.is(new FloatValue(123.456f));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<FloatValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "int-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * IntSerializerSetup.
+	 */
+	public static final class IntSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Integer> {
+		@Override
+		public TypeSerializer<Integer> createPriorSerializer() {
+			return IntSerializer.INSTANCE;
+		}
+
+		@Override
+		public Integer createTestData() {
+			return 123456;
+		}
+	}
+
+	/**
+	 * IntSerializerVerifier.
+	 */
+	public static final class IntSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Integer> {
+		@Override
+		public TypeSerializer<Integer> createUpgradedSerializer() {
+			return IntSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Integer> testDataMatcher() {
+			return Matchers.is(123456);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Integer>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "int-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * IntValueSerializerSetup.
+	 */
+	public static final class IntValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<IntValue> {
+		@Override
+		public TypeSerializer<IntValue> createPriorSerializer() {
+			return IntValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public IntValue createTestData() {
+			return new IntValue(123456);
+		}
+	}
+
+	/**
+	 * IntValueSerializerVerifier.
+	 */
+	public static final class IntValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<IntValue> {
+		@Override
+		public TypeSerializer<IntValue> createUpgradedSerializer() {
+			return IntValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<IntValue> testDataMatcher() {
+			return Matchers.is(new IntValue(123456));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<IntValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "long-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * LongSerializerSetup.
+	 */
+	public static final class LongSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Long> {
+		@Override
+		public TypeSerializer<Long> createPriorSerializer() {
+			return LongSerializer.INSTANCE;
+		}
+
+		@Override
+		public Long createTestData() {
+			return 1234567890L;
+		}
+	}
+
+	/**
+	 * LongSerializerVerifier.
+	 */
+	public static final class LongSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Long> {
+		@Override
+		public TypeSerializer<Long> createUpgradedSerializer() {
+			return LongSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Long> testDataMatcher() {
+			return Matchers.is(1234567890L);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Long>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "long-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * LongValueSerializerSetup.
+	 */
+	public static final class LongValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<LongValue> {
+		@Override
+		public TypeSerializer<LongValue> createPriorSerializer() {
+			return LongValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public LongValue createTestData() {
+			return new LongValue(1234567890);
+		}
+	}
+
+	/**
+	 * LongValueSerializerVerifier.
+	 */
+	public static final class LongValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<LongValue> {
+		@Override
+		public TypeSerializer<LongValue> createUpgradedSerializer() {
+			return LongValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<LongValue> testDataMatcher() {
+			return Matchers.is(new LongValue(1234567890));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<LongValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "null-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * NullValueSerializerSetup.
+	 */
+	public static final class NullValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<NullValue> {
+		@Override
+		public TypeSerializer<NullValue> createPriorSerializer() {
+			return NullValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public NullValue createTestData() {
+			return NullValue.getInstance();
+		}
+	}
+
+	/**
+	 * NullValueSerializerVerifier.
+	 */
+	public static final class NullValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<NullValue> {
+		@Override
+		public TypeSerializer<NullValue> createUpgradedSerializer() {
+			return NullValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<NullValue> testDataMatcher() {
+			return Matchers.is(NullValue.getInstance());
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<NullValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "short-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * ShortSerializerSetup.
+	 */
+	public static final class ShortSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Short> {
+		@Override
+		public TypeSerializer<Short> createPriorSerializer() {
+			return ShortSerializer.INSTANCE;
+		}
+
+		@Override
+		public Short createTestData() {
+			return 123;
+		}
+	}
+
+	/**
+	 * ShortSerializerVerifier.
+	 */
+	public static final class ShortSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Short> {
+		@Override
+		public TypeSerializer<Short> createUpgradedSerializer() {
+			return ShortSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Short> testDataMatcher() {
+			return Matchers.is((short) 123);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Short>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "short-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * ShortValueSerializerSetup.
+	 */
+	public static final class ShortValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<ShortValue> {
+		@Override
+		public TypeSerializer<ShortValue> createPriorSerializer() {
+			return ShortValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public ShortValue createTestData() {
+			return new ShortValue((short) 123);
+		}
+	}
+
+	/**
+	 * ShortValueSerializerVerifier.
+	 */
+	public static final class ShortValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<ShortValue> {
+		@Override
+		public TypeSerializer<ShortValue> createUpgradedSerializer() {
+			return ShortValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<ShortValue> testDataMatcher() {
+			return Matchers.is(new ShortValue((short) 123));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<ShortValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "sql-date-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * SqlDateSerializerSetup.
+	 */
+	public static final class SqlDateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<java.sql.Date> {
+		@Override
+		public TypeSerializer<java.sql.Date> createPriorSerializer() {
+			return SqlDateSerializer.INSTANCE;
+		}
+
+		@Override
+		public java.sql.Date createTestData() {
+			return new java.sql.Date(1580382960L);
+		}
+	}
+
+	/**
+	 * SqlDateSerializerVerifier.
+	 */
+	public static final class SqlDateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<java.sql.Date> {
+		@Override
+		public TypeSerializer<java.sql.Date> createUpgradedSerializer() {
+			return SqlDateSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<java.sql.Date> testDataMatcher() {
+			return Matchers.is(new java.sql.Date(1580382960L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<java.sql.Date>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "sql-time-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * SqlTimeSerializerSetup.
+	 */
+	public static final class SqlTimeSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Time> {
+		@Override
+		public TypeSerializer<Time> createPriorSerializer() {
+			return SqlTimeSerializer.INSTANCE;
+		}
+
+		@Override
+		public Time createTestData() {
+			return new Time(1580382960L);
+		}
+	}
+
+	/**
+	 * SqlTimeSerializerVerifier.
+	 */
+	public static final class SqlTimeSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Time> {
+		@Override
+		public TypeSerializer<Time> createUpgradedSerializer() {
+			return SqlTimeSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Time> testDataMatcher() {
+			return Matchers.is(new Time(1580382960L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Time>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "sql-timestamp-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * SqlTimestampSerializerSetup.
+	 */
+	public static final class SqlTimestampSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Timestamp> {
+		@Override
+		public TypeSerializer<Timestamp> createPriorSerializer() {
+			return SqlTimestampSerializer.INSTANCE;
+		}
+
+		@Override
+		public Timestamp createTestData() {
+			return new Timestamp(1580382960L);
+		}
+	}
+
+	/**
+	 * SqlTimestampSerializerVerifier.
+	 */
+	public static final class SqlTimestampSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Timestamp> {
+		@Override
+		public TypeSerializer<Timestamp> createUpgradedSerializer() {
+			return SqlTimestampSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<Timestamp> testDataMatcher() {
+			return Matchers.is(new Timestamp(1580382960L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Timestamp>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "string-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * StringSerializerSetup.
+	 */
+	public static final class StringSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<String> {
+		@Override
+		public TypeSerializer<String> createPriorSerializer() {
+			return StringSerializer.INSTANCE;
+		}
+
+		@Override
+		public String createTestData() {
+			return "123456789012345678901234567890123456";
+		}
+	}
+
+	/**
+	 * StringSerializerVerifier.
+	 */
+	public static final class StringSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<String> {
+		@Override
+		public TypeSerializer<String> createUpgradedSerializer() {
+			return StringSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<String> testDataMatcher() {
+			return Matchers.is("123456789012345678901234567890123456");
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<String>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "string-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * StringValueSerializerSetup.
+	 */
+	public static final class StringValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<StringValue> {
+		@Override
+		public TypeSerializer<StringValue> createPriorSerializer() {
+			return StringValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public StringValue createTestData() {
+			return new StringValue("123456789012345678901234567890123456");
+		}
+	}
+
+	/**
+	 * StringValueSerializerVerifier.
+	 */
+	public static final class StringValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<StringValue> {
+		@Override
+		public TypeSerializer<StringValue> createUpgradedSerializer() {
+			return StringValueSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<StringValue> testDataMatcher() {
+			return Matchers.is(new StringValue("123456789012345678901234567890123456"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<StringValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
+
diff --git a/flink-core/src/test/resources/flink-1.6-big-dec-serializer-data b/flink-core/src/test/resources/flink-1.6-big-dec-serializer-data
deleted file mode 100644
index 77e75f8..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-big-dec-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-big-dec-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-big-dec-serializer-snapshot
deleted file mode 100644
index 0bc8486..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-big-dec-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-big-int-serializer-data b/flink-core/src/test/resources/flink-1.6-big-int-serializer-data
deleted file mode 100644
index fdc853a..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-big-int-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-big-int-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-big-int-serializer-snapshot
deleted file mode 100644
index ed8d782..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-big-int-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-boolean-serializer-data b/flink-core/src/test/resources/flink-1.6-boolean-serializer-data
deleted file mode 100644
index 21808bb..0000000
--- a/flink-core/src/test/resources/flink-1.6-boolean-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-boolean-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-boolean-serializer-snapshot
deleted file mode 100644
index 533a105..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-boolean-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-boolean-value-serializer-data b/flink-core/src/test/resources/flink-1.6-boolean-value-serializer-data
deleted file mode 100644
index cb43b5c..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-boolean-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-boolean-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-boolean-value-serializer-snapshot
deleted file mode 100644
index c870827..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-boolean-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-byte-serializer-data b/flink-core/src/test/resources/flink-1.6-byte-serializer-data
deleted file mode 100644
index cf0e76b..0000000
--- a/flink-core/src/test/resources/flink-1.6-byte-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-NNNNNNNNNN
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-byte-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-byte-serializer-snapshot
deleted file mode 100644
index 4cfdc41..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-byte-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-byte-value-serializer-data b/flink-core/src/test/resources/flink-1.6-byte-value-serializer-data
deleted file mode 100644
index cf0e76b..0000000
--- a/flink-core/src/test/resources/flink-1.6-byte-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-NNNNNNNNNN
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-byte-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-byte-value-serializer-snapshot
deleted file mode 100644
index f4637ed..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-byte-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-char-serializer-data b/flink-core/src/test/resources/flink-1.6-char-serializer-data
deleted file mode 100644
index 9ecd9cd..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-char-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-char-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-char-serializer-snapshot
deleted file mode 100644
index 3f5b3d1..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-char-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-char-value-serializer-data b/flink-core/src/test/resources/flink-1.6-char-value-serializer-data
deleted file mode 100644
index 9ecd9cd..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-char-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-char-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-char-value-serializer-snapshot
deleted file mode 100644
index d53d503..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-char-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-date-serializer-data b/flink-core/src/test/resources/flink-1.6-date-serializer-data
deleted file mode 100644
index 7cbcacc..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-date-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-date-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-date-serializer-snapshot
deleted file mode 100644
index 16e2c3f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-date-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-double-serializer-data b/flink-core/src/test/resources/flink-1.6-double-serializer-data
deleted file mode 100644
index 49fbf3f..0000000
--- a/flink-core/src/test/resources/flink-1.6-double-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-double-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-double-serializer-snapshot
deleted file mode 100644
index 8939b39..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-double-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-double-value-serializer-data b/flink-core/src/test/resources/flink-1.6-double-value-serializer-data
deleted file mode 100644
index 49fbf3f..0000000
--- a/flink-core/src/test/resources/flink-1.6-double-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-double-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-double-value-serializer-snapshot
deleted file mode 100644
index 457df0f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-double-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-float-serializer-data b/flink-core/src/test/resources/flink-1.6-float-serializer-data
deleted file mode 100644
index 2d8b79f..0000000
--- a/flink-core/src/test/resources/flink-1.6-float-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@I�@I�@I�@I�@I�@I�@I�@I�@I�@I�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-float-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-float-serializer-snapshot
deleted file mode 100644
index fe6797b..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-float-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-float-value-serializer-data b/flink-core/src/test/resources/flink-1.6-float-value-serializer-data
deleted file mode 100644
index 2d8b79f..0000000
--- a/flink-core/src/test/resources/flink-1.6-float-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@I�@I�@I�@I�@I�@I�@I�@I�@I�@I�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-float-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-float-value-serializer-snapshot
deleted file mode 100644
index c2fb4c9..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-float-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-int-serializer-data b/flink-core/src/test/resources/flink-1.6-int-serializer-data
deleted file mode 100644
index a69d5c4..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-int-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-int-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-int-serializer-snapshot
deleted file mode 100644
index 53baae3..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-int-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-int-value-serializer-data b/flink-core/src/test/resources/flink-1.6-int-value-serializer-data
deleted file mode 100644
index a69d5c4..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-int-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-int-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-int-value-serializer-snapshot
deleted file mode 100644
index 7a9e4bf..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-int-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-long-serializer-data b/flink-core/src/test/resources/flink-1.6-long-serializer-data
deleted file mode 100644
index 0bf438f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-long-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-long-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-long-serializer-snapshot
deleted file mode 100644
index fb44387..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-long-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-long-value-serializer-data b/flink-core/src/test/resources/flink-1.6-long-value-serializer-data
deleted file mode 100644
index 0bf438f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-long-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-long-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-long-value-serializer-snapshot
deleted file mode 100644
index 7ef6b05..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-long-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-null-value-serializer-data b/flink-core/src/test/resources/flink-1.6-null-value-serializer-data
deleted file mode 100644
index e69de29..0000000
diff --git a/flink-core/src/test/resources/flink-1.6-null-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-null-value-serializer-snapshot
deleted file mode 100644
index f0ead87..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-null-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-short-serializer-data b/flink-core/src/test/resources/flink-1.6-short-serializer-data
deleted file mode 100644
index c1a8300..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-short-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-short-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-short-serializer-snapshot
deleted file mode 100644
index 55b7620..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-short-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-short-value-serializer-data b/flink-core/src/test/resources/flink-1.6-short-value-serializer-data
deleted file mode 100644
index c1a8300..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-short-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-short-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-short-value-serializer-snapshot
deleted file mode 100644
index eb52425..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-short-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-sql-date-serializer-data b/flink-core/src/test/resources/flink-1.6-sql-date-serializer-data
deleted file mode 100644
index 7cbcacc..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-sql-date-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-sql-date-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-sql-date-serializer-snapshot
deleted file mode 100644
index 1a1a1ac..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-sql-date-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-sql-time-serializer-data b/flink-core/src/test/resources/flink-1.6-sql-time-serializer-data
deleted file mode 100644
index 6666e4b..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-sql-time-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-sql-time-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-sql-time-serializer-snapshot
deleted file mode 100644
index 715f7eb..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-sql-time-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-data b/flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-data
deleted file mode 100644
index fc74907..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-snapshot
deleted file mode 100644
index 852556f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-sql-timestamp-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-string-serializer-data b/flink-core/src/test/resources/flink-1.6-string-serializer-data
deleted file mode 100644
index 383ccad..0000000
--- a/flink-core/src/test/resources/flink-1.6-string-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-string-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-string-serializer-snapshot
deleted file mode 100644
index a8be15e..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-string-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-string-value-serializer-data b/flink-core/src/test/resources/flink-1.6-string-value-serializer-data
deleted file mode 100644
index bc2d605..0000000
--- a/flink-core/src/test/resources/flink-1.6-string-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-string-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-string-value-serializer-snapshot
deleted file mode 100644
index 3d39434..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-string-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-big-dec-serializer-data b/flink-core/src/test/resources/flink-1.7-big-dec-serializer-data
deleted file mode 100644
index 77e75f8..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-big-dec-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-big-dec-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-big-dec-serializer-snapshot
deleted file mode 100644
index 06f174d..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-big-dec-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-big-int-serializer-data b/flink-core/src/test/resources/flink-1.7-big-int-serializer-data
deleted file mode 100644
index 5cabbfc..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-big-int-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-big-int-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-big-int-serializer-snapshot
deleted file mode 100644
index 3a8111e..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-big-int-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-boolean-serializer-data b/flink-core/src/test/resources/flink-1.7-boolean-serializer-data
deleted file mode 100644
index 21808bb..0000000
--- a/flink-core/src/test/resources/flink-1.7-boolean-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-boolean-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-boolean-serializer-snapshot
deleted file mode 100644
index c65c7db..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-boolean-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-boolean-value-serializer-data b/flink-core/src/test/resources/flink-1.7-boolean-value-serializer-data
deleted file mode 100644
index cb43b5c..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-boolean-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-boolean-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-boolean-value-serializer-snapshot
deleted file mode 100644
index d4e5cf8..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-boolean-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-byte-serializer-data b/flink-core/src/test/resources/flink-1.7-byte-serializer-data
deleted file mode 100644
index 0120536..0000000
--- a/flink-core/src/test/resources/flink-1.7-byte-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-byte-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-byte-serializer-snapshot
deleted file mode 100644
index a09d139..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-byte-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-byte-value-serializer-data b/flink-core/src/test/resources/flink-1.7-byte-value-serializer-data
deleted file mode 100644
index 0120536..0000000
--- a/flink-core/src/test/resources/flink-1.7-byte-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-byte-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-byte-value-serializer-snapshot
deleted file mode 100644
index c37f0aa..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-byte-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-char-serializer-data b/flink-core/src/test/resources/flink-1.7-char-serializer-data
deleted file mode 100644
index 9ecd9cd..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-char-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-char-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-char-serializer-snapshot
deleted file mode 100644
index 2671531..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-char-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-char-value-serializer-data b/flink-core/src/test/resources/flink-1.7-char-value-serializer-data
deleted file mode 100644
index 9ecd9cd..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-char-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-char-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-char-value-serializer-snapshot
deleted file mode 100644
index 3d10a36..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-char-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-date-serializer-data b/flink-core/src/test/resources/flink-1.7-date-serializer-data
deleted file mode 100644
index d374944..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-date-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-date-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-date-serializer-snapshot
deleted file mode 100644
index d5084d2..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-date-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-double-serializer-data b/flink-core/src/test/resources/flink-1.7-double-serializer-data
deleted file mode 100644
index 49fbf3f..0000000
--- a/flink-core/src/test/resources/flink-1.7-double-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-double-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-double-serializer-snapshot
deleted file mode 100644
index 2cce3e5..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-double-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-double-value-serializer-data b/flink-core/src/test/resources/flink-1.7-double-value-serializer-data
deleted file mode 100644
index 49fbf3f..0000000
--- a/flink-core/src/test/resources/flink-1.7-double-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n@	!���n
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-double-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-double-value-serializer-snapshot
deleted file mode 100644
index 1c87532..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-double-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-float-serializer-data b/flink-core/src/test/resources/flink-1.7-float-serializer-data
deleted file mode 100644
index 2d8b79f..0000000
--- a/flink-core/src/test/resources/flink-1.7-float-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@I�@I�@I�@I�@I�@I�@I�@I�@I�@I�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-float-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-float-serializer-snapshot
deleted file mode 100644
index 76e52b4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-float-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-float-value-serializer-data b/flink-core/src/test/resources/flink-1.7-float-value-serializer-data
deleted file mode 100644
index 2d8b79f..0000000
--- a/flink-core/src/test/resources/flink-1.7-float-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-@I�@I�@I�@I�@I�@I�@I�@I�@I�@I�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-float-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-float-value-serializer-snapshot
deleted file mode 100644
index c6d2d12..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-float-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-int-serializer-data b/flink-core/src/test/resources/flink-1.7-int-serializer-data
deleted file mode 100644
index a69d5c4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-int-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-int-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-int-serializer-snapshot
deleted file mode 100644
index de2be82..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-int-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-int-value-serializer-data b/flink-core/src/test/resources/flink-1.7-int-value-serializer-data
deleted file mode 100644
index a69d5c4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-int-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-int-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-int-value-serializer-snapshot
deleted file mode 100644
index 124b4e4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-int-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-long-serializer-data b/flink-core/src/test/resources/flink-1.7-long-serializer-data
deleted file mode 100644
index 0bf438f..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-long-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-long-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-long-serializer-snapshot
deleted file mode 100644
index 85cfea9..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-long-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-long-value-serializer-data b/flink-core/src/test/resources/flink-1.7-long-value-serializer-data
deleted file mode 100644
index 0bf438f..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-long-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-long-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-long-value-serializer-snapshot
deleted file mode 100644
index 93de3c5..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-long-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-null-value-serializer-data b/flink-core/src/test/resources/flink-1.7-null-value-serializer-data
deleted file mode 100644
index e69de29..0000000
diff --git a/flink-core/src/test/resources/flink-1.7-null-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-null-value-serializer-snapshot
deleted file mode 100644
index c7a05b1..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-null-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-short-serializer-data b/flink-core/src/test/resources/flink-1.7-short-serializer-data
deleted file mode 100644
index c1a8300..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-short-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-short-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-short-serializer-snapshot
deleted file mode 100644
index 3d79053..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-short-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-short-value-serializer-data b/flink-core/src/test/resources/flink-1.7-short-value-serializer-data
deleted file mode 100644
index c1a8300..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-short-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-short-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-short-value-serializer-snapshot
deleted file mode 100644
index 91db2ab..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-short-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-sql-date-serializer-data b/flink-core/src/test/resources/flink-1.7-sql-date-serializer-data
deleted file mode 100644
index 141ae41..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-sql-date-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-sql-date-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-sql-date-serializer-snapshot
deleted file mode 100644
index ded2e33..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-sql-date-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-sql-time-serializer-data b/flink-core/src/test/resources/flink-1.7-sql-time-serializer-data
deleted file mode 100644
index 086ab90..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-sql-time-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-sql-time-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-sql-time-serializer-snapshot
deleted file mode 100644
index f9a4597..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-sql-time-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-data b/flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-data
deleted file mode 100644
index 5639302..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-snapshot
deleted file mode 100644
index 300a1b6..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-sql-timestamp-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-string-serializer-data b/flink-core/src/test/resources/flink-1.7-string-serializer-data
deleted file mode 100644
index 383ccad..0000000
--- a/flink-core/src/test/resources/flink-1.7-string-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-string-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-string-serializer-snapshot
deleted file mode 100644
index a9d82ff..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-string-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-string-value-serializer-data b/flink-core/src/test/resources/flink-1.7-string-value-serializer-data
deleted file mode 100644
index 0857b1e..0000000
--- a/flink-core/src/test/resources/flink-1.7-string-value-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-hello-worldhello-worldhello-worldhello-worldhello-worldhello-worldhello-worldhello-worldhello-worldhello-world
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-string-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-string-value-serializer-snapshot
deleted file mode 100644
index a435f70..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-string-value-serializer-snapshot and /dev/null differ


[flink] 01/42: [FLINK-13632] Remove old PojoSerializerSnapshotMigrationTest

Posted by al...@apache.org.
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 fdb12114461794eec1ba857ed5d0eff51bb9ad8f
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Fri Jan 24 10:52:23 2020 +0100

    [FLINK-13632] Remove old PojoSerializerSnapshotMigrationTest
---
 .../PojoSerializerSnapshotMigrationTest.java       | 169 ---------------------
 ...1.6-pojo-new-and-removed-fields-serializer-data | Bin 320 -> 0 bytes
 ...pojo-new-and-removed-fields-serializer-snapshot | Bin 4696 -> 0 bytes
 ...nk-1.6-pojo-registered-subclass-serializer-data | Bin 350 -> 0 bytes
 ....6-pojo-registered-subclass-serializer-snapshot | Bin 9236 -> 0 bytes
 .../test/resources/flink-1.6-pojo-serializer-data  | Bin 230 -> 0 bytes
 .../resources/flink-1.6-pojo-serializer-snapshot   | Bin 4133 -> 0 bytes
 ...-1.6-pojo-unregistered-subclass-serializer-data | Bin 1320 -> 0 bytes
 ...-pojo-unregistered-subclass-serializer-snapshot | Bin 8890 -> 0 bytes
 ...1.7-pojo-new-and-removed-fields-serializer-data | Bin 320 -> 0 bytes
 ...pojo-new-and-removed-fields-serializer-snapshot | Bin 4724 -> 0 bytes
 ...nk-1.7-pojo-registered-subclass-serializer-data | Bin 350 -> 0 bytes
 ....7-pojo-registered-subclass-serializer-snapshot | Bin 12183 -> 0 bytes
 .../test/resources/flink-1.7-pojo-serializer-data  | Bin 230 -> 0 bytes
 .../resources/flink-1.7-pojo-serializer-snapshot   | Bin 4148 -> 0 bytes
 ...-1.7-pojo-unregistered-subclass-serializer-data | Bin 1320 -> 0 bytes
 ...-pojo-unregistered-subclass-serializer-snapshot | Bin 11832 -> 0 bytes
 17 files changed, 169 deletions(-)

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
deleted file mode 100644
index fa83f05..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,169 +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.java.typeutils.runtime;
-
-import org.apache.flink.api.common.ExecutionConfig;
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.java.typeutils.TypeExtractor;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-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;
-
-/**
- * Migration tests for the {@link PojoSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public static class TestPojo {
-		public int id;
-		public String name;
-		public int age;
-
-		public TestPojo() {}
-
-		public TestPojo(int id, String name, int age) {
-			this.id = id;
-			this.name = name;
-			this.age = age;
-		}
-	}
-
-	/**
-	 * Data test files of test specification that used this type
-	 * had 2 fields {@code idRemoved} and {@code heightRemoved} that
-	 * are no longer present in this current POJO.
-	 */
-	public static class TestPojoWithNewAndRemovedFields {
-
-		public enum Color {
-			RED,
-			BLUE,
-			GREEN,
-			YELLOW
-		}
-
-		public String name;
-		public int age;
-		public String githubId;
-		public Color favoriteColor;
-		public boolean married;
-
-		public TestPojoWithNewAndRemovedFields() {}
-
-		public TestPojoWithNewAndRemovedFields(String name, int age, String githubId, Color favoriteColor, boolean married) {
-			this.name = name;
-			this.age = age;
-			this.githubId = githubId;
-			this.favoriteColor = favoriteColor;
-			this.married = married;
-		}
-	}
-
-	/**
-	 * 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);
-	}
-
-	@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(
-			"pojo-serializer",
-			PojoSerializer.class,
-			PojoSerializerSnapshot.class,
-			PojoSerializerSnapshotMigrationTest::testPojoSerializerSupplier);
-
-		testSpecifications.addWithCompatibilityMatcher(
-			"pojo-new-and-removed-fields-serializer",
-			PojoSerializer.class,
-			PojoSerializerSnapshot.class,
-			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();
-	}
-
-	private static TypeSerializer<TestPojo> testPojoSerializerSupplier() {
-		TypeSerializer<TestPojo> serializer =
-			TypeExtractor.createTypeInfo(TestPojo.class).createSerializer(new ExecutionConfig());
-
-		assertTrue(serializer instanceof PojoSerializer);
-		return serializer;
-	}
-
-	private static TypeSerializer<TestPojoWithNewAndRemovedFields> testPojoWithNewAndRemovedFieldsSerializerSupplier() {
-		TypeSerializer<TestPojoWithNewAndRemovedFields> serializer =
-			TypeExtractor.createTypeInfo(TestPojoWithNewAndRemovedFields.class).createSerializer(new ExecutionConfig());
-
-		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-new-and-removed-fields-serializer-data b/flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-data
deleted file mode 100644
index 8d8e619..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-snapshot
deleted file mode 100644
index 9ebb10c..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-new-and-removed-fields-serializer-snapshot and /dev/null differ
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
deleted file mode 100644
index ca0b187..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data and /dev/null 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
deleted file mode 100644
index 4bb2055..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-serializer-data b/flink-core/src/test/resources/flink-1.6-pojo-serializer-data
deleted file mode 100644
index 153528f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-pojo-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-pojo-serializer-snapshot
deleted file mode 100644
index 4d53f6c..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-serializer-snapshot and /dev/null 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
deleted file mode 100644
index 3450dd4..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data and /dev/null 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
deleted file mode 100644
index 9231146..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-data b/flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-data
deleted file mode 100644
index 8d8e619..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-snapshot
deleted file mode 100644
index 7de3813..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-new-and-removed-fields-serializer-snapshot and /dev/null 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
deleted file mode 100644
index ca0b187..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data and /dev/null 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
deleted file mode 100644
index ca6c054..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-serializer-data b/flink-core/src/test/resources/flink-1.7-pojo-serializer-data
deleted file mode 100644
index 153528f..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-pojo-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-pojo-serializer-snapshot
deleted file mode 100644
index 4f5c928..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-serializer-snapshot and /dev/null 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
deleted file mode 100644
index 3450dd4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data and /dev/null 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
deleted file mode 100644
index 99a7482..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot and /dev/null differ


[flink] 36/42: [FLINK-13632] Port JavaSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 6c7cdd63b79f80f65a1584fbfe7d8ce09795ef5d
Author: klion26 <qc...@gmail.com>
AuthorDate: Thu Apr 2 17:46:38 2020 +0800

    [FLINK-13632] Port JavaSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../apache/flink/runtime/state/JavaSerializer.java |   8 +-
 .../state/JavaSerializerSnapshotMigrationTest.java |  57 -----------
 .../runtime/state/JavaSerializerUpgradeTest.java   | 105 +++++++++++++++++++++
 .../test/resources/flink-1.6-java-serializer-data  | Bin 180 -> 0 bytes
 .../resources/flink-1.6-java-serializer-snapshot   | Bin 366 -> 0 bytes
 .../test/resources/flink-1.7-java-serializer-data  | Bin 180 -> 0 bytes
 .../resources/flink-1.7-java-serializer-snapshot   | Bin 354 -> 0 bytes
 7 files changed, 112 insertions(+), 58 deletions(-)

diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/state/JavaSerializer.java b/flink-runtime/src/main/java/org/apache/flink/runtime/state/JavaSerializer.java
index 9e00985..20d53d1 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/state/JavaSerializer.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/state/JavaSerializer.java
@@ -19,6 +19,7 @@
 package org.apache.flink.runtime.state;
 
 import org.apache.flink.annotation.Internal;
+import org.apache.flink.annotation.VisibleForTesting;
 import org.apache.flink.api.common.typeutils.SimpleTypeSerializerSnapshot;
 import org.apache.flink.api.common.typeutils.TypeSerializerSnapshot;
 import org.apache.flink.api.common.typeutils.base.TypeSerializerSingleton;
@@ -32,8 +33,13 @@ import org.apache.flink.util.InstantiationUtil;
 import java.io.IOException;
 import java.io.Serializable;
 
+/**
+ * A {@link org.apache.flink.api.common.typeutils.TypeSerializer} that uses Java serialization. This
+ * should not be used for anything.
+ */
 @Internal
-final class JavaSerializer<T extends Serializable> extends TypeSerializerSingleton<T> {
+@VisibleForTesting
+public final class JavaSerializer<T extends Serializable> extends TypeSerializerSingleton<T> {
 
 	private static final long serialVersionUID = 5067491650263321234L;
 
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerSnapshotMigrationTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerSnapshotMigrationTest.java
deleted file mode 100644
index bcf18f5..0000000
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,57 +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.runtime.state;
-
-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.io.Serializable;
-import java.util.Collection;
-
-/**
- * Migration test for the {@link JavaSerializer}.
- */
-@RunWith(Parameterized.class)
-public class JavaSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Serializable> {
-
-	private static final String SPEC_NAME = "java-serializer";
-
-	public JavaSerializerSnapshotMigrationTest(TestSpecification<Serializable> 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(
-			SPEC_NAME,
-			JavaSerializer.class,
-			JavaSerializer.JavaSerializerSnapshot.class,
-			() -> new JavaSerializer<>());
-
-		return testSpecifications.get();
-	}
-}
-
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerUpgradeTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerUpgradeTest.java
new file mode 100644
index 0000000..40bddd1
--- /dev/null
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/state/JavaSerializerUpgradeTest.java
@@ -0,0 +1,105 @@
+/*
+ * 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.runtime.state;
+
+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.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link JavaSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class JavaSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Serializable, Serializable> {
+
+	private static final String SPEC_NAME = "java-serializer";
+
+	public JavaSerializerUpgradeTest(TestSpecification<Serializable, Serializable> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					JavaSerializerSetup.class,
+					JavaSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "java-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class JavaSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Serializable> {
+		@Override
+		public TypeSerializer<Serializable> createPriorSerializer() {
+			return new JavaSerializer<>();
+		}
+
+		@Override
+		public Serializable createTestData() {
+			return 26;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class JavaSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Serializable> {
+		@Override
+		public TypeSerializer<Serializable> createUpgradedSerializer() {
+			return new JavaSerializer<>();
+		}
+
+		@Override
+		public Matcher<Serializable> testDataMatcher() {
+			return is(26);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Serializable>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
+
diff --git a/flink-runtime/src/test/resources/flink-1.6-java-serializer-data b/flink-runtime/src/test/resources/flink-1.6-java-serializer-data
deleted file mode 100644
index 7579df03..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-java-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.6-java-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.6-java-serializer-snapshot
deleted file mode 100644
index cec8f75..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-java-serializer-snapshot and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-java-serializer-data b/flink-runtime/src/test/resources/flink-1.7-java-serializer-data
deleted file mode 100644
index 7579df03..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-java-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-java-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.7-java-serializer-snapshot
deleted file mode 100644
index 0bb9093..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-java-serializer-snapshot and /dev/null differ


[flink] 15/42: [FLINK-13632] Port NullableSerializer test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 5a730d4633db4665b12eda5d783eb035905b28b8
Author: klion26 <qc...@gmail.com>
AuthorDate: Thu Jan 30 17:00:54 2020 +0800

    [FLINK-13632] Port NullableSerializer test to TypeSerializerUpgradeTestBase
---
 .../runtime/NullableSerializerMigrationTest.java   |  83 ------------
 .../runtime/NullableSerializerUpgradeTest.java     | 146 +++++++++++++++++++++
 .../flink-1.6-nullable-not-padded-serializer-data  | Bin 58 -> 0 bytes
 ...ink-1.6-nullable-not-padded-serializer-snapshot | Bin 944 -> 0 bytes
 .../flink-1.6-nullable-padded-serializer-data      | Bin 90 -> 0 bytes
 .../flink-1.6-nullable-padded-serializer-snapshot  | Bin 952 -> 0 bytes
 .../flink-1.7-nullable-not-padded-serializer-data  | Bin 58 -> 0 bytes
 ...ink-1.7-nullable-not-padded-serializer-snapshot | Bin 941 -> 0 bytes
 .../flink-1.7-nullable-padded-serializer-data      | Bin 90 -> 0 bytes
 .../flink-1.7-nullable-padded-serializer-snapshot  | Bin 949 -> 0 bytes
 10 files changed, 146 insertions(+), 83 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerMigrationTest.java
deleted file mode 100644
index 1da7da7..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerMigrationTest.java
+++ /dev/null
@@ -1,83 +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.java.typeutils.runtime;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.LongSerializer;
-import org.apache.flink.api.java.typeutils.runtime.NullableSerializer.NullableSerializerSnapshot;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.Matcher;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * {@link NullableSerializer} migration test.
- */
-@RunWith(Parameterized.class)
-public class NullableSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Long> {
-
-	public NullableSerializerMigrationTest(TestSpecification<Long> 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(
-			"nullable-padded-serializer",
-			NullableSerializer.class,
-			NullableSerializerSnapshot.class,
-			() -> NullableSerializer.wrap(LongSerializer.INSTANCE, true),
-			NULL_OR_LONG);
-
-		testSpecifications.add(
-			"nullable-not-padded-serializer",
-			NullableSerializer.class,
-			NullableSerializerSnapshot.class,
-			() -> NullableSerializer.wrap(LongSerializer.INSTANCE, false),
-			NULL_OR_LONG);
-
-		return testSpecifications.get();
-	}
-
-	@SuppressWarnings("unchecked")
-	private static final Matcher<Long> NULL_OR_LONG = new NullableMatcher();
-
-	private static final class NullableMatcher extends BaseMatcher<Long> {
-
-		@Override
-		public boolean matches(Object item) {
-			return item == null || item instanceof Long;
-		}
-
-		@Override
-		public void describeTo(Description description) {
-			description.appendText("a null or a long");
-		}
-	}
-
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerUpgradeTest.java
new file mode 100644
index 0000000..af1eca95
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/NullableSerializerUpgradeTest.java
@@ -0,0 +1,146 @@
+/*
+ * 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.java.typeutils.runtime;
+
+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.common.typeutils.base.LongSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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.CoreMatchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link NullableSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class NullableSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Long, Long> {
+
+	public NullableSerializerUpgradeTest(TestSpecification<Long, Long> 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<>(
+					"nullable-padded-serializer",
+					migrationVersion,
+					NullablePaddedSerializerSetup.class,
+					NullablePaddedSerializerVerifier.class));
+
+			testSpecifications.add(
+				new TestSpecification<>(
+					"nullable-not-padded-serializer",
+					migrationVersion,
+					NullableNotPaddedSerializerSetup.class,
+					NullableNotPaddedSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "nullable-padded-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NullablePaddedSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Long> {
+		@Override
+		public TypeSerializer<Long> createPriorSerializer() {
+			return NullableSerializer.wrap(LongSerializer.INSTANCE, true);
+		}
+
+		@Override
+		public Long createTestData() {
+			return null;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NullablePaddedSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Long> {
+		@Override
+		public TypeSerializer<Long> createUpgradedSerializer() {
+			return NullableSerializer.wrap(LongSerializer.INSTANCE, true);
+		}
+
+		@Override
+		public Matcher<Long> testDataMatcher() {
+			return is((Long) null);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Long>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "nullable-not-padded-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NullableNotPaddedSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Long> {
+		@Override
+		public TypeSerializer<Long> createPriorSerializer() {
+			return NullableSerializer.wrap(LongSerializer.INSTANCE, false);
+		}
+
+		@Override
+		public Long createTestData() {
+			return null;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NullableNotPaddedSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Long> {
+		@Override
+		public TypeSerializer<Long> createUpgradedSerializer() {
+			return NullableSerializer.wrap(LongSerializer.INSTANCE, false);
+		}
+
+		@Override
+		public Matcher<Long> testDataMatcher() {
+			return is((Long) null);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Long>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-data b/flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-data
deleted file mode 100644
index ca6d29f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-snapshot
deleted file mode 100644
index 8c8b27f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-nullable-not-padded-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-data b/flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-data
deleted file mode 100644
index 42439f7..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-snapshot
deleted file mode 100644
index 9bd3af7..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-nullable-padded-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-data b/flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-data
deleted file mode 100644
index aecf5b8..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-snapshot
deleted file mode 100644
index a2e0807..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-nullable-not-padded-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-data b/flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-data
deleted file mode 100644
index 426221e..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-snapshot
deleted file mode 100644
index 685f8dd..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-nullable-padded-serializer-snapshot and /dev/null differ


[flink] 37/42: [FLINK-13632] Port LockableTypeSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 c6c34c11bda8b9d854e275e776e29c3f0ac5e490
Author: klion26 <qc...@gmail.com>
AuthorDate: Thu Apr 2 23:44:44 2020 +0800

    [FLINK-13632] Port LockableTypeSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../flink/cep/nfa/sharedbuffer/Lockable.java       |   2 +-
 ...ockableTypeSerializerSnapshotMigrationTest.java |  56 -----------
 .../LockableTypeSerializerUpgradeTest.java         | 102 +++++++++++++++++++++
 .../flink-1.6-lockable-type-serializer-data        | Bin 160 -> 0 bytes
 .../flink-1.6-lockable-type-serializer-snapshot    | Bin 561 -> 0 bytes
 .../flink-1.7-lockable-type-serializer-data        | Bin 160 -> 0 bytes
 .../flink-1.7-lockable-type-serializer-snapshot    | Bin 241 -> 0 bytes
 7 files changed, 103 insertions(+), 57 deletions(-)

diff --git a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/Lockable.java b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/Lockable.java
index 4dc6a27..8dd5d70 100644
--- a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/Lockable.java
+++ b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/Lockable.java
@@ -100,7 +100,7 @@ public final class Lockable<T> {
 		private static final long serialVersionUID = 3298801058463337340L;
 		private final TypeSerializer<E> elementSerializer;
 
-		LockableTypeSerializer(TypeSerializer<E> elementSerializer) {
+		public LockableTypeSerializer(TypeSerializer<E> elementSerializer) {
 			this.elementSerializer = elementSerializer;
 		}
 
diff --git a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerSnapshotMigrationTest.java b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 4682617..0000000
--- a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,56 +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.cep.nfa.sharedbuffer;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration test for the {@link LockableTypeSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class LockableTypeSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Lockable<String>> {
-
-	private static final String SPEC_NAME = "lockable-type-serializer";
-
-	public LockableTypeSerializerSnapshotMigrationTest(TestSpecification<Lockable<String>> 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(
-			SPEC_NAME,
-			Lockable.LockableTypeSerializer.class,
-			LockableTypeSerializerSnapshot.class,
-			() -> new Lockable.LockableTypeSerializer<>(StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerUpgradeTest.java b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerUpgradeTest.java
new file mode 100644
index 0000000..1c7f9c7
--- /dev/null
+++ b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/sharedbuffer/LockableTypeSerializerUpgradeTest.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.cep.nfa.sharedbuffer;
+
+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.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link Lockable.LockableTypeSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class LockableTypeSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Lockable<String>, Lockable<String>> {
+
+	private static final String SPEC_NAME = "lockable-type-serializer";
+
+	public LockableTypeSerializerUpgradeTest(TestSpecification<Lockable<String>, Lockable<String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					LockableTypeSerializerSetup.class,
+					LockableTypeSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "lockabletype-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class LockableTypeSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Lockable<String>> {
+		@Override
+		public TypeSerializer<Lockable<String>> createPriorSerializer() {
+			return new Lockable.LockableTypeSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Lockable<String> createTestData() {
+			return new Lockable<>("flink", 10);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class LockableTypeSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Lockable<String>> {
+		@Override
+		public TypeSerializer<Lockable<String>> createUpgradedSerializer() {
+			return new Lockable.LockableTypeSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<Lockable<String>> testDataMatcher() {
+			return is(new Lockable<>("flink", 10));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Lockable<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-data
deleted file mode 100644
index b175040..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-snapshot
deleted file mode 100644
index 3d9fa0c..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-lockable-type-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-data
deleted file mode 100644
index b175040..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-snapshot
deleted file mode 100644
index 42b3d45..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-lockable-type-serializer-snapshot and /dev/null differ


[flink] 09/42: [FLINK-13632] Port ValueSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 59fd396a8c3b2c79fd52d819d7755e74ee3a66df
Author: klion26 <qc...@gmail.com>
AuthorDate: Tue Jan 21 10:07:45 2020 +0800

    [FLINK-13632] Port ValueSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../runtime/ValueSerializerMigrationTest.java      |  88 -------------
 .../runtime/ValueSerializerUpgradeTest.java        | 138 +++++++++++++++++++++
 .../test/resources/flink-1.6-value-serializer-data | Bin 150 -> 0 bytes
 .../resources/flink-1.6-value-serializer-snapshot  | Bin 1310 -> 0 bytes
 .../test/resources/flink-1.7-value-serializer-data | Bin 150 -> 0 bytes
 .../resources/flink-1.7-value-serializer-snapshot  | Bin 1298 -> 0 bytes
 6 files changed, 138 insertions(+), 88 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerMigrationTest.java
deleted file mode 100644
index 55a1bae..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerMigrationTest.java
+++ /dev/null
@@ -1,88 +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.java.typeutils.runtime;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.java.typeutils.runtime.ValueSerializer.ValueSerializerSnapshot;
-import org.apache.flink.api.java.typeutils.runtime.ValueSerializerMigrationTest.NameValue;
-import org.apache.flink.core.memory.DataInputView;
-import org.apache.flink.core.memory.DataOutputView;
-import org.apache.flink.testutils.migration.MigrationVersion;
-import org.apache.flink.types.Value;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.io.IOException;
-import java.util.Collection;
-
-/**
- * State migration test for {@link RowSerializer}.
- */
-@RunWith(Parameterized.class)
-public class ValueSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<NameValue> {
-
-	public ValueSerializerMigrationTest(TestSpecification<NameValue> testSpecification) {
-		super(testSpecification);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Parameterized.Parameters(name = "Test Specification = {0}")
-	public static Collection<TestSpecification<?>> testSpecifications() {
-
-		TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7);
-
-		testSpecifications.add(
-			"value-serializer",
-			ValueSerializer.class,
-			ValueSerializerSnapshot.class,
-			() -> new ValueSerializer<>(NameValue.class));
-
-		return testSpecifications.get();
-	}
-
-	/**
-	 * A dummy class used for this test.
-	 */
-	public static final class NameValue implements Value {
-
-		public static final long serialVersionUID = 2277251654485371327L;
-
-		private String name;
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			this.name = name;
-		}
-
-		@Override
-		public void write(DataOutputView out) throws IOException {
-			out.writeUTF(name);
-		}
-
-		@Override
-		public void read(DataInputView in) throws IOException {
-			name = in.readUTF();
-		}
-	}
-
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerUpgradeTest.java
new file mode 100644
index 0000000..12d4a97
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/ValueSerializerUpgradeTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.java.typeutils.runtime;
+
+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.core.memory.DataInputView;
+import org.apache.flink.core.memory.DataOutputView;
+import org.apache.flink.testutils.migration.MigrationVersion;
+import org.apache.flink.types.Value;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Objects;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * State migration test for {@link RowSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class ValueSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<ValueSerializerUpgradeTest.NameValue, ValueSerializerUpgradeTest.NameValue> {
+	public ValueSerializerUpgradeTest(TestSpecification<NameValue, NameValue> 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<>(
+					"value-serializer",
+					migrationVersion,
+					ValueSerializerSetup.class,
+					ValueSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	public static final class ValueSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<NameValue> {
+		@Override
+		public TypeSerializer<NameValue> createPriorSerializer() {
+			return new ValueSerializer<>(NameValue.class);
+		}
+
+		@Override
+		public NameValue createTestData() {
+			NameValue value = new NameValue();
+			value.setName("klion26");
+			return value;
+		}
+	}
+
+	public static final class ValueSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<NameValue> {
+		@Override
+		public TypeSerializer<NameValue> createUpgradedSerializer() {
+			return new ValueSerializer<>(NameValue.class);
+		}
+
+		@Override
+		public Matcher<NameValue> testDataMatcher() {
+			NameValue value = new NameValue();
+			value.setName("klion26");
+			return is(value);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<NameValue>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	/**
+	 * A dummy class used for this test.
+	 */
+	public static final class NameValue implements Value {
+
+		public static final long serialVersionUID = 2277251654485371327L;
+
+		private String name;
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			this.name = name;
+		}
+
+		@Override
+		public void write(DataOutputView out) throws IOException {
+			out.writeUTF(name);
+		}
+
+		@Override
+		public void read(DataInputView in) throws IOException {
+			name = in.readUTF();
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (obj == this) {
+				return true;
+			}
+			if (!(obj instanceof NameValue)) {
+				return false;
+			}
+
+			NameValue other = (NameValue) obj;
+			return Objects.equals(this.name, other.name);
+		}
+	}
+}
diff --git a/flink-core/src/test/resources/flink-1.6-value-serializer-data b/flink-core/src/test/resources/flink-1.6-value-serializer-data
deleted file mode 100644
index f2bb149..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-value-serializer-snapshot
deleted file mode 100644
index 90cbdcf..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-value-serializer-data b/flink-core/src/test/resources/flink-1.7-value-serializer-data
deleted file mode 100644
index cbd0d18..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-value-serializer-snapshot
deleted file mode 100644
index 5194920..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-value-serializer-snapshot and /dev/null differ


[flink] 11/42: [FLINK-13632] Port TimerSerializer test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 c967de544bdcbd3ea091ea562c99df77d50fff3f
Author: klion26 <qc...@gmail.com>
AuthorDate: Tue Jan 21 18:19:57 2020 +0800

    [FLINK-13632] Port TimerSerializer test to TypeSerializerUpgradeTestBase
---
 .../api/operators/TimerHeapInternalTimer.java      |   2 +-
 .../TimerSerializerSnapshotMigrationTest.java      |  61 ------------
 .../api/operators/TimerSerializerUpgradeTest.java  | 107 +++++++++++++++++++++
 .../test/resources/flink-1.6-timer-serializer-data | Bin 240 -> 0 bytes
 .../resources/flink-1.6-timer-serializer-snapshot  | Bin 1406 -> 0 bytes
 .../test/resources/flink-1.7-timer-serializer-data | Bin 240 -> 0 bytes
 .../resources/flink-1.7-timer-serializer-snapshot  | Bin 1414 -> 0 bytes
 7 files changed, 108 insertions(+), 62 deletions(-)

diff --git a/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/TimerHeapInternalTimer.java b/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/TimerHeapInternalTimer.java
index a6194ed..e02901b 100644
--- a/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/TimerHeapInternalTimer.java
+++ b/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/TimerHeapInternalTimer.java
@@ -50,7 +50,7 @@ public final class TimerHeapInternalTimer<K, N> implements InternalTimer<K, N>,
 	 */
 	private transient int timerHeapIndex;
 
-	TimerHeapInternalTimer(long timestamp, @Nonnull K key, @Nonnull N namespace) {
+	public TimerHeapInternalTimer(long timestamp, @Nonnull K key, @Nonnull N namespace) {
 		this.timestamp = timestamp;
 		this.key = key;
 		this.namespace = namespace;
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerSnapshotMigrationTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 6b07a09..0000000
--- a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,61 +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.streaming.api.operators;
-
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.IntSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration test for {@link TimerSerializer}.
- */
-@RunWith(Parameterized.class)
-public class TimerSerializerSnapshotMigrationTest
-	extends TypeSerializerSnapshotMigrationTestBase<TimerHeapInternalTimer<String, Integer>> {
-
-	public TimerSerializerSnapshotMigrationTest(
-		TestSpecification<TimerHeapInternalTimer<String, Integer>> 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(
-			"timer-serializer",
-			TimerSerializer.class,
-			TimerSerializerSnapshot.class,
-			TimerSerializerSnapshotMigrationTest::stringIntTimerSerializerSupplier);
-
-		return testSpecifications.get();
-	}
-
-	private static TypeSerializer<TimerHeapInternalTimer<String, Integer>> stringIntTimerSerializerSupplier() {
-		return new TimerSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE);
-	}
-}
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerUpgradeTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerUpgradeTest.java
new file mode 100644
index 0000000..21c12f4
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/TimerSerializerUpgradeTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.streaming.api.operators;
+
+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.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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 test for {@link TimerSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class TimerSerializerUpgradeTest
+	extends TypeSerializerUpgradeTestBase<TimerHeapInternalTimer<String, Integer>, TimerHeapInternalTimer<String, Integer>> {
+
+	public TimerSerializerUpgradeTest(
+		TestSpecification<TimerHeapInternalTimer<String, Integer>, TimerHeapInternalTimer<String, Integer>> testSpecification) {
+		super(testSpecification);
+	}
+
+	@SuppressWarnings("unchecked")
+	@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<>(
+					"timer-serializer",
+					migrationVersion,
+					TimerSerializerSetup.class,
+					TimerSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	private static TypeSerializer<TimerHeapInternalTimer<String, Integer>> stringIntTimerSerializerSupplier() {
+		return new TimerSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE);
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "TimerSerializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TimerSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TimerHeapInternalTimer<String, Integer>> {
+		@Override
+		public TypeSerializer<TimerHeapInternalTimer<String, Integer>> createPriorSerializer() {
+			return new TimerSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE);
+		}
+
+		@Override
+		public TimerHeapInternalTimer<String, Integer> createTestData() {
+			return new TimerHeapInternalTimer<>(12345, "key", 678);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TimerSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TimerHeapInternalTimer<String, Integer>> {
+		@Override
+		public TypeSerializer<TimerHeapInternalTimer<String, Integer>> createUpgradedSerializer() {
+			return new TimerSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<TimerHeapInternalTimer<String, Integer>> testDataMatcher() {
+			return is(new TimerHeapInternalTimer<>(12345, "key", 678));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TimerHeapInternalTimer<String, Integer>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-data
deleted file mode 100644
index 02f84d9..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-snapshot
deleted file mode 100644
index fee77f2..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-timer-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-data
deleted file mode 100644
index 9069def..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-snapshot
deleted file mode 100644
index d5f3fda..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-timer-serializer-snapshot and /dev/null differ


[flink] 41/42: [FLINK-13632] Port TraversableSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 4248de26c3500f86596c2d06c91a9c76c576f3cd
Author: klion26 <qc...@gmail.com>
AuthorDate: Thu Apr 30 15:33:02 2020 +0800

    [FLINK-13632] Port TraversableSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../flink-1.6-traversable-serializer-bitset-data   | Bin 140 -> 0 bytes
 ...link-1.6-traversable-serializer-bitset-snapshot | Bin 992 -> 0 bytes
 ...link-1.6-traversable-serializer-indexedseq-data | Bin 130 -> 0 bytes
 ...-1.6-traversable-serializer-indexedseq-snapshot | Bin 992 -> 0 bytes
 ...flink-1.6-traversable-serializer-linearseq-data | Bin 130 -> 0 bytes
 ...k-1.6-traversable-serializer-linearseq-snapshot | Bin 992 -> 0 bytes
 .../flink-1.6-traversable-serializer-map-data      | Bin 138 -> 0 bytes
 .../flink-1.6-traversable-serializer-map-snapshot  | Bin 3033 -> 0 bytes
 ...nk-1.6-traversable-serializer-mutable-list-data | Bin 160 -> 0 bytes
 ....6-traversable-serializer-mutable-list-snapshot | Bin 993 -> 0 bytes
 .../flink-1.6-traversable-serializer-seq-data      | Bin 130 -> 0 bytes
 .../flink-1.6-traversable-serializer-seq-snapshot  | Bin 992 -> 0 bytes
 .../flink-1.6-traversable-serializer-set-data      | Bin 135 -> 0 bytes
 .../flink-1.6-traversable-serializer-set-snapshot  | Bin 992 -> 0 bytes
 ...1.6-traversable-serializer-with-case-class-data | Bin 145 -> 0 bytes
 ...traversable-serializer-with-case-class-snapshot | Bin 3036 -> 0 bytes
 ...flink-1.6-traversable-serializer-with-pojo-data | Bin 253 -> 0 bytes
 ...k-1.6-traversable-serializer-with-pojo-snapshot | Bin 6854 -> 0 bytes
 .../flink-1.7-traversable-serializer-bitset-data   | Bin 140 -> 0 bytes
 ...link-1.7-traversable-serializer-bitset-snapshot | Bin 987 -> 0 bytes
 ...link-1.7-traversable-serializer-indexedseq-data | Bin 130 -> 0 bytes
 ...-1.7-traversable-serializer-indexedseq-snapshot | Bin 987 -> 0 bytes
 ...flink-1.7-traversable-serializer-linearseq-data | Bin 130 -> 0 bytes
 ...k-1.7-traversable-serializer-linearseq-snapshot | Bin 987 -> 0 bytes
 .../flink-1.7-traversable-serializer-map-data      | Bin 138 -> 0 bytes
 .../flink-1.7-traversable-serializer-map-snapshot  | Bin 3905 -> 0 bytes
 ...nk-1.7-traversable-serializer-mutable-list-data | Bin 160 -> 0 bytes
 ....7-traversable-serializer-mutable-list-snapshot | Bin 988 -> 0 bytes
 .../flink-1.7-traversable-serializer-seq-data      | Bin 130 -> 0 bytes
 .../flink-1.7-traversable-serializer-seq-snapshot  | Bin 987 -> 0 bytes
 .../flink-1.7-traversable-serializer-set-data      | Bin 135 -> 0 bytes
 .../flink-1.7-traversable-serializer-set-snapshot  | Bin 987 -> 0 bytes
 ...1.7-traversable-serializer-with-case-class-data | Bin 145 -> 0 bytes
 ...traversable-serializer-with-case-class-snapshot | Bin 3909 -> 0 bytes
 ...flink-1.7-traversable-serializer-with-pojo-data | Bin 253 -> 0 bytes
 ...k-1.7-traversable-serializer-with-pojo-snapshot | Bin 9607 -> 0 bytes
 ...raversableSerializerSnapshotMigrationTest.scala | 118 --------
 .../TraversableSerializerUpgradeTest.scala         | 326 +++++++++++++++++++++
 38 files changed, 326 insertions(+), 118 deletions(-)

diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-data
deleted file mode 100644
index d6c225f..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-snapshot
deleted file mode 100644
index fd9e834..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-bitset-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-data
deleted file mode 100644
index 328992e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-snapshot
deleted file mode 100644
index 9c51467..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-indexedseq-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-data
deleted file mode 100644
index 328992e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-snapshot
deleted file mode 100644
index 46ceea1..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-linearseq-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-data
deleted file mode 100644
index bf82319..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-snapshot
deleted file mode 100644
index d8b191e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-map-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-data
deleted file mode 100644
index ca814e2..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-snapshot
deleted file mode 100644
index 7e4befd..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-mutable-list-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-data
deleted file mode 100644
index 328992e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-snapshot
deleted file mode 100644
index db73915..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-seq-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-data
deleted file mode 100644
index 2380dd3..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-snapshot
deleted file mode 100644
index e5f86d1..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-set-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-data
deleted file mode 100644
index fc90039..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-snapshot
deleted file mode 100644
index ac3573e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-case-class-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-data b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-data
deleted file mode 100644
index 63003a8..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-snapshot b/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-snapshot
deleted file mode 100644
index 085ec94..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-traversable-serializer-with-pojo-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-data
deleted file mode 100644
index d6c225f..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-snapshot
deleted file mode 100644
index 90c34f5..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-bitset-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-data
deleted file mode 100644
index 328992e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-snapshot
deleted file mode 100644
index 72ed196..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-indexedseq-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-data
deleted file mode 100644
index 328992e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-snapshot
deleted file mode 100644
index b9732f5..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-linearseq-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-data
deleted file mode 100644
index bf82319..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-snapshot
deleted file mode 100644
index 598afc5..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-map-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-data
deleted file mode 100644
index ca814e2..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-snapshot
deleted file mode 100644
index bf8c7d3..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-mutable-list-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-data
deleted file mode 100644
index 328992e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-snapshot
deleted file mode 100644
index e7cb734..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-seq-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-data
deleted file mode 100644
index 2380dd3..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-snapshot
deleted file mode 100644
index 463fe1f..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-set-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-data
deleted file mode 100644
index fc90039..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-snapshot
deleted file mode 100644
index fb4085f..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-case-class-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-data b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-data
deleted file mode 100644
index 63003a8..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-snapshot b/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-snapshot
deleted file mode 100644
index 4334c76..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-traversable-serializer-with-pojo-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerSnapshotMigrationTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerSnapshotMigrationTest.scala
deleted file mode 100644
index 0352e6d..0000000
--- a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerSnapshotMigrationTest.scala
+++ /dev/null
@@ -1,118 +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 java.util
-import java.util.function.Supplier
-
-import org.apache.flink.api.common.ExecutionConfig
-import org.apache.flink.api.common.typeinfo.TypeInformation
-import org.apache.flink.api.common.typeutils.{TypeSerializer, TypeSerializerSnapshotMigrationTestBase}
-import org.apache.flink.api.scala.createTypeInformation
-import org.apache.flink.testutils.migration.MigrationVersion
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
-
-import scala.collection.{BitSet, LinearSeq, mutable}
-
-/**
-  * [[TraversableSerializer]] migration test.
-  */
-@RunWith(classOf[Parameterized])
-class TraversableSerializerSnapshotMigrationTest(
-  testSpecification: TypeSerializerSnapshotMigrationTestBase.TestSpecification[
-    TraversableOnce[_]
-  ]) extends TypeSerializerSnapshotMigrationTestBase[TraversableOnce[_]](
-      testSpecification
-    )
-
-object TraversableSerializerSnapshotMigrationTest {
-
-  object Types {
-
-    class Pojo(var name: String, var count: Int) {
-      def this() = this("", -1)
-
-      override def equals(other: Any): Boolean = {
-        other match {
-          case oP: Pojo => name == oP.name && count == oP.count
-          case _        => false
-        }
-      }
-    }
-
-    val seqTypeInfo = implicitly[TypeInformation[Seq[Int]]]
-    val indexedSeqTypeInfo =
-      implicitly[TypeInformation[IndexedSeq[Int]]]
-    val linearSeqTypeInfo = implicitly[TypeInformation[LinearSeq[Int]]]
-    val mapTypeInfo = implicitly[TypeInformation[Map[String, Int]]]
-    val setTypeInfo = implicitly[TypeInformation[Set[Int]]]
-    val bitsetTypeInfo = implicitly[TypeInformation[BitSet]]
-    val mutableListTypeInfo =
-      implicitly[TypeInformation[mutable.MutableList[Int]]]
-    val seqTupleTypeInfo = implicitly[TypeInformation[Seq[(Int, String)]]]
-    val seqPojoTypeInfo = implicitly[TypeInformation[Seq[Pojo]]]
-  }
-
-  import Types._
-
-  @SuppressWarnings(Array("unchecked"))
-  @Parameterized.Parameters(name = "Test Specification = {0}")
-  def testSpecifications: util.Collection[
-    TypeSerializerSnapshotMigrationTestBase.TestSpecification[_]] = {
-
-    val testSpecifications: TypeSerializerSnapshotMigrationTestBase.TestSpecifications =
-      new TypeSerializerSnapshotMigrationTestBase.TestSpecifications(
-        MigrationVersion.v1_6,
-        MigrationVersion.v1_7)
-
-    val serializerSpecs = Seq(
-      ("bitset", bitsetTypeInfo),
-      ("indexedseq", indexedSeqTypeInfo),
-      ("linearseq", linearSeqTypeInfo),
-      ("map", mapTypeInfo),
-      ("mutable-list", mutableListTypeInfo),
-      ("seq", seqTypeInfo),
-      ("set", setTypeInfo),
-      ("with-case-class", seqTupleTypeInfo),
-      ("with-pojo", seqPojoTypeInfo)
-    )
-
-    serializerSpecs foreach {
-      case (data, typeInfo) =>
-        testSpecifications.add(
-          s"traversable-serializer-$data",
-          classOf[TraversableSerializer[_, _]],
-          classOf[TraversableSerializerSnapshot[_, _]],
-          new TypeSerializerSupplier(typeInfo)
-        )
-    }
-
-    testSpecifications.get
-  }
-
-  private class TypeSerializerSupplier[T](typeInfo: TypeInformation[T])
-    extends Supplier[TypeSerializer[T]] {
-    override def get(): TypeSerializer[T] = {
-      typeInfo
-        .createSerializer(new ExecutionConfig)
-        .asInstanceOf[TypeSerializer[T]]
-    }
-  }
-}
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerUpgradeTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerUpgradeTest.scala
new file mode 100644
index 0000000..0d503a9
--- /dev/null
+++ b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/TraversableSerializerUpgradeTest.scala
@@ -0,0 +1,326 @@
+/*
+ * 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 java.util.function.Supplier
+
+import org.apache.flink.api.common.ExecutionConfig
+import org.apache.flink.api.common.typeinfo.TypeInformation
+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.testutils.migration.MigrationVersion
+import org.hamcrest.Matcher
+import org.hamcrest.Matchers.is
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+import scala.collection.{BitSet, LinearSeq, mutable}
+
+/**
+ * A [[TypeSerializerUpgradeTestBase]] for [[TraversableSerializer]].
+ */
+@RunWith(classOf[Parameterized])
+class TraversableSerializerUpgradeTest(
+  testSpecification: TypeSerializerUpgradeTestBase.TestSpecification[
+TraversableOnce[_], TraversableOnce[_]])
+  extends TypeSerializerUpgradeTestBase[TraversableOnce[_], TraversableOnce[_]](testSpecification)
+
+object TraversableSerializerUpgradeTest {
+
+  object Types {
+
+    class Pojo(var name: String, var count: Int) {
+      def this() = this("", -1)
+
+      override def equals(other: Any): Boolean = {
+        other match {
+          case oP: Pojo => name == oP.name && count == oP.count
+          case _ => false
+        }
+      }
+    }
+
+    val seqTypeInfo = implicitly[TypeInformation[Seq[Int]]]
+    val indexedSeqTypeInfo =
+      implicitly[TypeInformation[IndexedSeq[Int]]]
+    val linearSeqTypeInfo = implicitly[TypeInformation[LinearSeq[Int]]]
+    val mapTypeInfo = implicitly[TypeInformation[Map[String, Int]]]
+    val setTypeInfo = implicitly[TypeInformation[Set[Int]]]
+    val bitsetTypeInfo = implicitly[TypeInformation[BitSet]]
+    val mutableListTypeInfo =
+      implicitly[TypeInformation[mutable.MutableList[Int]]]
+    val seqTupleTypeInfo = implicitly[TypeInformation[Seq[(Int, String)]]]
+    val seqPojoTypeInfo = implicitly[TypeInformation[Seq[Pojo]]]
+  }
+
+  import Types._
+
+  @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 TestSpecification[BitSet, BitSet](
+          "traversable-serializer-bitset",
+          migrationVersion,
+          classOf[BitsetSerializerSetup],
+          classOf[BitsetSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[IndexedSeq[Int], IndexedSeq[Int]](
+          "traversable-serializer-indexedseq",
+          migrationVersion,
+          classOf[IndexedSeqSerializerSetup],
+          classOf[IndexedSeqSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[LinearSeq[Int], LinearSeq[Int]](
+          "traversable-serializer-linearseq",
+          migrationVersion,
+          classOf[LinearSeqSerializerSetup],
+          classOf[LinearSeqSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[Map[String, Int], Map[String, Int]](
+          "traversable-serializer-map",
+          migrationVersion,
+          classOf[MapSerializerSetup],
+          classOf[MapSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[mutable.MutableList[Int], mutable.MutableList[Int]](
+          "traversable-serializer-mutable-list",
+          migrationVersion,
+          classOf[MutableListSerializerSetup],
+          classOf[MutableListSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[Seq[Int], Seq[Int]](
+          "traversable-serializer-seq",
+          migrationVersion,
+          classOf[SeqSerializerSetup],
+          classOf[SeqSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[Set[Int], Set[Int]](
+          "traversable-serializer-set",
+          migrationVersion,
+          classOf[SetSerializerSetup],
+          classOf[SetSerializerVerifier]))
+      testSpecifications.add(
+        new TestSpecification[Seq[(Int, String)], Seq[(Int, String)]](
+          "traversable-serializer-with-case-class",
+          migrationVersion,
+          classOf[SeqWithCaseClassSetup],
+          classOf[SeqWithCaseClassVerifier]))
+      testSpecifications.add(
+        new TestSpecification[Seq[Pojo], Seq[Pojo]](
+          "traversable-serializer-with-pojo",
+          migrationVersion,
+          classOf[SeqWithPojoSetup],
+          classOf[SeqWithPojoVerifier]))
+    }
+    testSpecifications
+  }
+
+  final class BitsetSerializerSetup extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[BitSet] {
+    override def createPriorSerializer: TypeSerializer[BitSet] =
+      new TypeSerializerSupplier(bitsetTypeInfo).get()
+
+    override def createTestData: BitSet = BitSet(3, 2, 0)
+  }
+
+  final class BitsetSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[BitSet] {
+    override def createUpgradedSerializer: TypeSerializer[BitSet] =
+      new TypeSerializerSupplier(bitsetTypeInfo).get()
+
+    override def testDataMatcher: Matcher[BitSet] = is(BitSet(3, 2, 0))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[BitSet]] =
+      TypeSerializerMatchers.isCompatibleAsIs[BitSet]()
+  }
+
+  final class IndexedSeqSerializerSetup extends
+    TypeSerializerUpgradeTestBase.PreUpgradeSetup[IndexedSeq[Int]] {
+    override def createPriorSerializer: TypeSerializer[IndexedSeq[Int]] =
+      new TypeSerializerSupplier(indexedSeqTypeInfo).get()
+
+    override def createTestData: IndexedSeq[Int] = IndexedSeq(1, 2, 3)
+  }
+
+  final class IndexedSeqSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[IndexedSeq[Int]] {
+    override def createUpgradedSerializer: TypeSerializer[IndexedSeq[Int]] =
+      new TypeSerializerSupplier(indexedSeqTypeInfo).get()
+
+    override def testDataMatcher: Matcher[IndexedSeq[Int]] = is(IndexedSeq(1, 2, 3))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[IndexedSeq[Int]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[IndexedSeq[Int]]()
+  }
+
+  final class LinearSeqSerializerSetup extends
+    TypeSerializerUpgradeTestBase.PreUpgradeSetup[LinearSeq[Int]] {
+    override def createPriorSerializer: TypeSerializer[LinearSeq[Int]] =
+    new TypeSerializerSupplier(linearSeqTypeInfo).get()
+
+    override def createTestData: LinearSeq[Int] = LinearSeq(2, 3, 4)
+  }
+
+  final class LinearSeqSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[LinearSeq[Int]] {
+    override def createUpgradedSerializer: TypeSerializer[LinearSeq[Int]] =
+      new TypeSerializerSupplier(linearSeqTypeInfo).get()
+
+    override def testDataMatcher: Matcher[LinearSeq[Int]] = is(LinearSeq(2, 3, 4))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[LinearSeq[Int]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[LinearSeq[Int]]()
+  }
+
+  final class MapSerializerSetup extends
+    TypeSerializerUpgradeTestBase.PreUpgradeSetup[Map[String, Int]] {
+    override def createPriorSerializer: TypeSerializer[Map[String, Int]] =
+      new TypeSerializerSupplier(mapTypeInfo).get()
+
+    override def createTestData: Map[String, Int] = Map("Apache" -> 0, "Flink" -> 1)
+  }
+
+  final class MapSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[Map[String, Int]] {
+    override def createUpgradedSerializer: TypeSerializer[Map[String, Int]] =
+      new TypeSerializerSupplier(mapTypeInfo).get()
+
+    override def testDataMatcher: Matcher[Map[String, Int]] = is(Map("Apache" -> 0, "Flink" -> 1))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[Map[String, Int]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[Map[String, Int]]()
+  }
+
+  final class MutableListSerializerSetup extends
+    TypeSerializerUpgradeTestBase.PreUpgradeSetup[mutable.MutableList[Int]] {
+    override def createPriorSerializer: TypeSerializer[mutable.MutableList[Int]] =
+      new TypeSerializerSupplier(mutableListTypeInfo).get()
+
+    override def createTestData: mutable.MutableList[Int] = mutable.MutableList(1, 2, 3)
+  }
+
+  final class MutableListSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[mutable.MutableList[Int]] {
+    override def createUpgradedSerializer: TypeSerializer[mutable.MutableList[Int]] =
+      new TypeSerializerSupplier(mutableListTypeInfo).get()
+
+    override def testDataMatcher: Matcher[mutable.MutableList[Int]] =
+      is(mutable.MutableList(1, 2, 3))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[mutable.MutableList[Int]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[mutable.MutableList[Int]]()
+  }
+
+  final class SeqSerializerSetup extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[Seq[Int]] {
+    override def createPriorSerializer: TypeSerializer[Seq[Int]] =
+      new TypeSerializerSupplier(seqTypeInfo).get()
+
+    override def createTestData: Seq[Int] = Seq(1, 2, 3)
+  }
+
+  final class SeqSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[Seq[Int]] {
+    override def createUpgradedSerializer: TypeSerializer[Seq[Int]] =
+      new TypeSerializerSupplier(seqTypeInfo).get()
+
+    override def testDataMatcher: Matcher[Seq[Int]] = is(Seq(1, 2, 3))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+        Matcher[TypeSerializerSchemaCompatibility[Seq[Int]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[Seq[Int]]()
+  }
+
+  final class SetSerializerSetup extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[Set[Int]] {
+    override def createPriorSerializer: TypeSerializer[Set[Int]] =
+      new TypeSerializerSupplier(setTypeInfo).get()
+
+    override def createTestData: Set[Int] = Set(2, 3, 4)
+  }
+
+  final class SetSerializerVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[Set[Int]] {
+    override def createUpgradedSerializer: TypeSerializer[Set[Int]] =
+      new TypeSerializerSupplier(setTypeInfo).get()
+
+    override def testDataMatcher: Matcher[Set[Int]] = is(Set(2, 3, 4))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+        Matcher[TypeSerializerSchemaCompatibility[Set[Int]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[Set[Int]]()
+  }
+
+  final class SeqWithCaseClassSetup extends
+    TypeSerializerUpgradeTestBase.PreUpgradeSetup[Seq[(Int, String)]] {
+    override def createPriorSerializer: TypeSerializer[Seq[(Int, String)]] =
+      new TypeSerializerSupplier(seqTupleTypeInfo).get()
+
+    override def createTestData: Seq[(Int, String)] = Seq((0, "Apache"), (1, "Flink"))
+  }
+
+  final class SeqWithCaseClassVerifier extends
+    TypeSerializerUpgradeTestBase.UpgradeVerifier[Seq[(Int, String)]] {
+    override def createUpgradedSerializer: TypeSerializer[Seq[(Int, String)]] =
+      new TypeSerializerSupplier(seqTupleTypeInfo).get()
+
+    override def testDataMatcher: Matcher[Seq[(Int, String)]] = is(Seq((0, "Apache"), (1, "Flink")))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[Seq[(Int, String)]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[Seq[(Int, String)]]()
+  }
+
+  final class SeqWithPojoSetup extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[Seq[Pojo]] {
+    override def createPriorSerializer: TypeSerializer[Seq[Pojo]] =
+      new TypeSerializerSupplier(seqPojoTypeInfo).get()
+
+    override def createTestData: Seq[Pojo] = Seq(new Pojo("Apache", 0), new Pojo("Flink", 1))
+  }
+
+  final class SeqWithPojoVerifier extends TypeSerializerUpgradeTestBase.UpgradeVerifier[Seq[Pojo]] {
+    override def createUpgradedSerializer: TypeSerializer[Seq[Pojo]] =
+      new TypeSerializerSupplier(seqPojoTypeInfo).get()
+
+    override def testDataMatcher: Matcher[Seq[Pojo]] =
+      is(Seq(new Pojo("Apache", 0), new Pojo("Flink", 1)))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+    Matcher[TypeSerializerSchemaCompatibility[Seq[Pojo]]] =
+      TypeSerializerMatchers.isCompatibleAsIs[Seq[Pojo]]()
+  }
+
+  private class TypeSerializerSupplier[T](typeInfo: TypeInformation[T])
+    extends Supplier[TypeSerializer[T]] {
+    override def get(): TypeSerializer[T] = {
+      typeInfo
+        .createSerializer(new ExecutionConfig)
+        .asInstanceOf[TypeSerializer[T]]
+    }
+  }
+
+}


[flink] 21/42: [FLINK-13632] Port WindowSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 fa340478aeb72f97a1c0ac20c05002f0c64c5d66
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 09:07:51 2020 +0800

    [FLINK-13632] Port WindowSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../WindowSerializerSnapshotsMigrationTest.java    |  60 ---------
 .../windowing/WindowSerializerUpgradeTest.java     | 144 +++++++++++++++++++++
 .../flink-1.6-global-window-serializer-data        | Bin 10 -> 0 bytes
 .../flink-1.6-global-window-serializer-snapshot    | Bin 420 -> 0 bytes
 .../flink-1.6-time-window-serializer-data          | Bin 160 -> 0 bytes
 .../flink-1.6-time-window-serializer-snapshot      | Bin 416 -> 0 bytes
 .../flink-1.7-global-window-serializer-data        | Bin 10 -> 0 bytes
 .../flink-1.7-global-window-serializer-snapshot    | Bin 408 -> 0 bytes
 .../flink-1.7-time-window-serializer-data          | Bin 160 -> 0 bytes
 .../flink-1.7-time-window-serializer-snapshot      | Bin 404 -> 0 bytes
 10 files changed, 144 insertions(+), 60 deletions(-)

diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerSnapshotsMigrationTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerSnapshotsMigrationTest.java
deleted file mode 100644
index 94dd4fb..0000000
--- a/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerSnapshotsMigrationTest.java
+++ /dev/null
@@ -1,60 +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.streaming.runtime.operators.windowing;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.streaming.api.windowing.windows.GlobalWindow;
-import org.apache.flink.streaming.api.windowing.windows.TimeWindow;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration tests for the {@link TimeWindow.Serializer} and {@link GlobalWindow.Serializer}.
- */
-@RunWith(Parameterized.class)
-public class WindowSerializerSnapshotsMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public WindowSerializerSnapshotsMigrationTest(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(
-			"time-window-serializer",
-			TimeWindow.Serializer.class,
-			TimeWindow.Serializer.TimeWindowSerializerSnapshot.class,
-			TimeWindow.Serializer::new);
-		testSpecifications.add(
-			"global-window-serializer",
-			GlobalWindow.Serializer.class,
-			GlobalWindow.Serializer.GlobalWindowSerializerSnapshot.class,
-			GlobalWindow.Serializer::new);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerUpgradeTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerUpgradeTest.java
new file mode 100644
index 0000000..1d314e6
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowSerializerUpgradeTest.java
@@ -0,0 +1,144 @@
+/*
+ * 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.streaming.runtime.operators.windowing;
+
+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.streaming.api.windowing.windows.GlobalWindow;
+import org.apache.flink.streaming.api.windowing.windows.TimeWindow;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link TimeWindow.Serializer} and {@link GlobalWindow.Serializer}.
+ */
+@RunWith(Parameterized.class)
+public class WindowSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public WindowSerializerUpgradeTest(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<>(
+					"time-window-serializer",
+					migrationVersion,
+					TimeWindowSerializerSetup.class,
+					TimeWindowSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"global-window-serializer",
+					migrationVersion,
+					GlobalWindowSerializerSetup.class,
+					GlobalWindowSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "time-window-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TimeWindowSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TimeWindow> {
+		@Override
+		public TypeSerializer<TimeWindow> createPriorSerializer() {
+			return new TimeWindow.Serializer();
+		}
+
+		@Override
+		public TimeWindow createTestData() {
+			return new TimeWindow(12345, 67890);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TimeWindowSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TimeWindow> {
+		@Override
+		public TypeSerializer<TimeWindow> createUpgradedSerializer() {
+			return new TimeWindow.Serializer();
+		}
+
+		@Override
+		public Matcher<TimeWindow> testDataMatcher() {
+			return is(new TimeWindow(12345, 67890));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TimeWindow>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "global-window-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class GlobalWindowSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<GlobalWindow> {
+		@Override
+		public TypeSerializer<GlobalWindow> createPriorSerializer() {
+			return new GlobalWindow.Serializer();
+		}
+
+		@Override
+		public GlobalWindow createTestData() {
+			return GlobalWindow.get();
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class GlobalWindowSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<GlobalWindow> {
+		@Override
+		public TypeSerializer<GlobalWindow> createUpgradedSerializer() {
+			return new GlobalWindow.Serializer();
+		}
+
+		@Override
+		public Matcher<GlobalWindow> testDataMatcher() {
+			return is(GlobalWindow.get());
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<GlobalWindow>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-data
deleted file mode 100644
index cb43b5c..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-snapshot
deleted file mode 100644
index bb83337..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-global-window-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-data
deleted file mode 100644
index 5ee28f7..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-snapshot
deleted file mode 100644
index 2f2f17b..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-time-window-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-data
deleted file mode 100644
index cb43b5c..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-snapshot
deleted file mode 100644
index 82a2fc0..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-global-window-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-data
deleted file mode 100644
index 2d241e0..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-snapshot
deleted file mode 100644
index bed39b8..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-time-window-serializer-snapshot and /dev/null differ


[flink] 18/42: [FLINK-13632] Port NFASerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 32cd222ac80ec324e16533bf959f582d1d5acdd2
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Fri Jan 31 18:02:44 2020 +0100

    [FLINK-13632] Port NFASerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../cep/nfa/sharedbuffer/SharedBufferEdge.java     |  19 ++
 .../cep/nfa/sharedbuffer/SharedBufferNode.java     |  18 ++
 .../cep/NFASerializerSnapshotsMigrationTest.java   |  84 -----
 .../apache/flink/cep/NFASerializerUpgradeTest.java | 356 +++++++++++++++++++++
 .../flink-1.6-dewey-number-serializer-data         | Bin 80 -> 0 bytes
 .../flink-1.6-dewey-number-serializer-snapshot     | Bin 547 -> 0 bytes
 .../resources/flink-1.6-event-id-serializer-data   | Bin 120 -> 0 bytes
 .../flink-1.6-event-id-serializer-snapshot         | Bin 402 -> 0 bytes
 .../resources/flink-1.6-nfa-state-serializer-data  | Bin 1460 -> 0 bytes
 .../flink-1.6-nfa-state-serializer-snapshot        | Bin 362 -> 0 bytes
 .../resources/flink-1.6-node-id-serializer-data    | Bin 250 -> 0 bytes
 .../flink-1.6-node-id-serializer-snapshot          | Bin 398 -> 0 bytes
 .../flink-1.6-shared-buffer-edge-serializer-data   | Bin 330 -> 0 bytes
 ...link-1.6-shared-buffer-edge-serializer-snapshot | Bin 438 -> 0 bytes
 .../flink-1.6-shared-buffer-node-serializer-data   | Bin 370 -> 0 bytes
 ...link-1.6-shared-buffer-node-serializer-snapshot | Bin 775 -> 0 bytes
 .../flink-1.7-dewey-number-serializer-data         | Bin 80 -> 0 bytes
 .../flink-1.7-dewey-number-serializer-snapshot     | Bin 535 -> 0 bytes
 .../resources/flink-1.7-event-id-serializer-data   | Bin 120 -> 0 bytes
 .../flink-1.7-event-id-serializer-snapshot         | Bin 390 -> 0 bytes
 .../resources/flink-1.7-nfa-state-serializer-data  | Bin 1460 -> 0 bytes
 .../flink-1.7-nfa-state-serializer-snapshot        | Bin 350 -> 0 bytes
 .../resources/flink-1.7-node-id-serializer-data    | Bin 250 -> 0 bytes
 .../flink-1.7-node-id-serializer-snapshot          | Bin 386 -> 0 bytes
 .../flink-1.7-shared-buffer-edge-serializer-data   | Bin 330 -> 0 bytes
 ...link-1.7-shared-buffer-edge-serializer-snapshot | Bin 426 -> 0 bytes
 .../flink-1.7-shared-buffer-node-serializer-data   | Bin 370 -> 0 bytes
 ...link-1.7-shared-buffer-node-serializer-snapshot | Bin 763 -> 0 bytes
 28 files changed, 393 insertions(+), 84 deletions(-)

diff --git a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferEdge.java b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferEdge.java
index 43afdb2..5f551df 100644
--- a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferEdge.java
+++ b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferEdge.java
@@ -28,6 +28,7 @@ import org.apache.flink.core.memory.DataOutputView;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
+import java.util.Objects;
 
 import static org.apache.flink.util.Preconditions.checkNotNull;
 
@@ -66,6 +67,24 @@ public class SharedBufferEdge {
 			'}';
 	}
 
+	@Override
+	public boolean equals(Object o) {
+		if (this == o) {
+			return true;
+		}
+		if (o == null || getClass() != o.getClass()) {
+			return false;
+		}
+		SharedBufferEdge that = (SharedBufferEdge) o;
+		return Objects.equals(target, that.target) &&
+				Objects.equals(deweyNumber, that.deweyNumber);
+	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(target, deweyNumber);
+	}
+
 	/** Serializer for {@link SharedBufferEdge}. */
 	public static class SharedBufferEdgeSerializer extends TypeSerializerSingleton<SharedBufferEdge> {
 
diff --git a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferNode.java b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferNode.java
index 57e5738..60100b8 100644
--- a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferNode.java
+++ b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/sharedbuffer/SharedBufferNode.java
@@ -30,6 +30,7 @@ import org.apache.flink.core.memory.DataOutputView;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import static org.apache.flink.util.Preconditions.checkNotNull;
 
@@ -63,6 +64,23 @@ public class SharedBufferNode {
 			'}';
 	}
 
+	@Override
+	public boolean equals(Object o) {
+		if (this == o) {
+			return true;
+		}
+		if (o == null || getClass() != o.getClass()) {
+			return false;
+		}
+		SharedBufferNode that = (SharedBufferNode) o;
+		return Objects.equals(edges, that.edges);
+	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(edges);
+	}
+
 	/** Serializer for {@link SharedBufferNode}. */
 	public static class SharedBufferNodeSerializer extends TypeSerializerSingleton<SharedBufferNode> {
 
diff --git a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerSnapshotsMigrationTest.java b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerSnapshotsMigrationTest.java
deleted file mode 100644
index b5074b2..0000000
--- a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerSnapshotsMigrationTest.java
+++ /dev/null
@@ -1,84 +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.cep;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.cep.nfa.DeweyNumber;
-import org.apache.flink.cep.nfa.NFAStateSerializer;
-import org.apache.flink.cep.nfa.NFAStateSerializerSnapshot;
-import org.apache.flink.cep.nfa.sharedbuffer.EventId;
-import org.apache.flink.cep.nfa.sharedbuffer.NodeId;
-import org.apache.flink.cep.nfa.sharedbuffer.SharedBufferEdge;
-import org.apache.flink.cep.nfa.sharedbuffer.SharedBufferNode;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration tests for NFA-related serializers.
- */
-@RunWith(Parameterized.class)
-public class NFASerializerSnapshotsMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Object> {
-
-	public NFASerializerSnapshotsMigrationTest(TestSpecification<Object> testSpecification) {
-		super(testSpecification);
-	}
-
-	@Parameterized.Parameters(name = "Test Specification = {0}")
-	public static Collection<TestSpecification<?>> testSpecifications() {
-
-		final TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7);
-
-		testSpecifications.add(
-			"event-id-serializer",
-			EventId.EventIdSerializer.class,
-			EventId.EventIdSerializer.EventIdSerializerSnapshot.class,
-			() -> EventId.EventIdSerializer.INSTANCE);
-		testSpecifications.add(
-			"node-id-serializer",
-			NodeId.NodeIdSerializer.class,
-			NodeId.NodeIdSerializer.NodeIdSerializerSnapshot.class,
-			NodeId.NodeIdSerializer::new);
-		testSpecifications.add(
-			"dewey-number-serializer",
-			DeweyNumber.DeweyNumberSerializer.class,
-			DeweyNumber.DeweyNumberSerializer.DeweyNumberSerializerSnapshot.class,
-			() -> DeweyNumber.DeweyNumberSerializer.INSTANCE);
-		testSpecifications.add(
-			"shared-buffer-edge-serializer",
-			SharedBufferEdge.SharedBufferEdgeSerializer.class,
-			SharedBufferEdge.SharedBufferEdgeSerializer.SharedBufferEdgeSerializerSnapshot.class,
-			SharedBufferEdge.SharedBufferEdgeSerializer::new);
-		testSpecifications.add(
-			"shared-buffer-node-serializer",
-			SharedBufferNode.SharedBufferNodeSerializer.class,
-			SharedBufferNode.SharedBufferNodeSerializer.SharedBufferNodeSerializerSnapshot.class,
-			SharedBufferNode.SharedBufferNodeSerializer::new);
-		testSpecifications.add(
-			"nfa-state-serializer",
-			NFAStateSerializer.class,
-			NFAStateSerializerSnapshot.class,
-			NFAStateSerializer::new);
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerUpgradeTest.java b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerUpgradeTest.java
new file mode 100644
index 0000000..26c19a9
--- /dev/null
+++ b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/NFASerializerUpgradeTest.java
@@ -0,0 +1,356 @@
+/*
+ * 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.cep;
+
+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.cep.nfa.DeweyNumber;
+import org.apache.flink.cep.nfa.NFAState;
+import org.apache.flink.cep.nfa.NFAStateSerializer;
+import org.apache.flink.cep.nfa.sharedbuffer.EventId;
+import org.apache.flink.cep.nfa.sharedbuffer.NodeId;
+import org.apache.flink.cep.nfa.sharedbuffer.SharedBufferEdge;
+import org.apache.flink.cep.nfa.sharedbuffer.SharedBufferNode;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Migration tests for NFA-related serializers.
+ */
+@RunWith(Parameterized.class)
+public class NFASerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public NFASerializerUpgradeTest(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<>(
+							"event-id-serializer",
+							migrationVersion,
+							EventIdSerializerSetup.class,
+							EventIdSerializerVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"node-id-serializer",
+							migrationVersion,
+							NodeIdSerializerSetup.class,
+							NodeIdSerializerVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"dewey-number-serializer",
+							migrationVersion,
+							DeweyNumberSerializerSetup.class,
+							DeweyNumberSerializerVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"shared-buffer-edge-serializer",
+							migrationVersion,
+							SharedBufferEdgeSerializerSetup.class,
+							SharedBufferEdgeSerializerVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"shared-buffer-node-serializer",
+							migrationVersion,
+							SharedBufferNodeSerializerSetup.class,
+							SharedBufferNodeSerializerVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"nfa-state-serializer",
+							migrationVersion,
+							NFAStateSerializerSetup.class,
+							NFAStateSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "event-id-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EventIdSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<EventId> {
+
+		@Override
+		public TypeSerializer<EventId> createPriorSerializer() {
+			return EventId.EventIdSerializer.INSTANCE;
+		}
+
+		@Override
+		public EventId createTestData() {
+			return new EventId(42, 42L);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EventIdSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<EventId> {
+
+		@Override
+		public TypeSerializer<EventId> createUpgradedSerializer() {
+			return EventId.EventIdSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<EventId> testDataMatcher() {
+			return is(new EventId(42, 42L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<EventId>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "node-id-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NodeIdSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<NodeId> {
+
+		@Override
+		public TypeSerializer<NodeId> createPriorSerializer() {
+			return new NodeId.NodeIdSerializer();
+		}
+
+		@Override
+		public NodeId createTestData() {
+			return new NodeId(new EventId(42, 42L), "ciao");
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NodeIdSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<NodeId> {
+
+		@Override
+		public TypeSerializer<NodeId> createUpgradedSerializer() {
+			return new NodeId.NodeIdSerializer();
+		}
+
+		@Override
+		public Matcher<NodeId> testDataMatcher() {
+			return is(new NodeId(new EventId(42, 42L), "ciao"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<NodeId>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "dewey-number-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class DeweyNumberSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<DeweyNumber> {
+
+		@Override
+		public TypeSerializer<DeweyNumber> createPriorSerializer() {
+			return DeweyNumber.DeweyNumberSerializer.INSTANCE;
+		}
+
+		@Override
+		public DeweyNumber createTestData() {
+			return new DeweyNumber(42);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class DeweyNumberSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<DeweyNumber> {
+
+		@Override
+		public TypeSerializer<DeweyNumber> createUpgradedSerializer() {
+			return DeweyNumber.DeweyNumberSerializer.INSTANCE;
+		}
+
+		@Override
+		public Matcher<DeweyNumber> testDataMatcher() {
+			return is(new DeweyNumber(42));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<DeweyNumber>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "shared-buffer-edge-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class SharedBufferEdgeSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<SharedBufferEdge> {
+
+		@Override
+		public TypeSerializer<SharedBufferEdge> createPriorSerializer() {
+			return new SharedBufferEdge.SharedBufferEdgeSerializer();
+		}
+
+		@Override
+		public SharedBufferEdge createTestData() {
+			return new SharedBufferEdge(
+					new NodeId(new EventId(42, 42L), "page"),
+					new DeweyNumber(42));
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class SharedBufferEdgeSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<SharedBufferEdge> {
+
+		@Override
+		public TypeSerializer<SharedBufferEdge> createUpgradedSerializer() {
+			return new SharedBufferEdge.SharedBufferEdgeSerializer();
+		}
+
+		@Override
+		public Matcher<SharedBufferEdge> testDataMatcher() {
+			return is(new SharedBufferEdge(
+					new NodeId(new EventId(42, 42L), "page"),
+					new DeweyNumber(42)));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<SharedBufferEdge>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "shared-buffer-node-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class SharedBufferNodeSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<SharedBufferNode> {
+
+		@Override
+		public TypeSerializer<SharedBufferNode> createPriorSerializer() {
+			return new SharedBufferNode.SharedBufferNodeSerializer();
+		}
+
+		@Override
+		public SharedBufferNode createTestData() {
+			SharedBufferNode result = new SharedBufferNode();
+			result.addEdge(new SharedBufferEdge(
+					new NodeId(new EventId(42, 42L), "page"),
+					new DeweyNumber(42)));
+			return result;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class SharedBufferNodeSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<SharedBufferNode> {
+
+		@Override
+		public TypeSerializer<SharedBufferNode> createUpgradedSerializer() {
+			return new SharedBufferNode.SharedBufferNodeSerializer();
+		}
+
+		@Override
+		public Matcher<SharedBufferNode> testDataMatcher() {
+			SharedBufferNode result = new SharedBufferNode();
+			result.addEdge(new SharedBufferEdge(
+					new NodeId(new EventId(42, 42L), "page"),
+					new DeweyNumber(42)));
+			return is(result);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<SharedBufferNode>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "nfa-state-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NFAStateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<NFAState> {
+
+		@Override
+		public TypeSerializer<NFAState> createPriorSerializer() {
+			return new NFAStateSerializer();
+		}
+
+		@Override
+		public NFAState createTestData() {
+			return new NFAState(Collections.emptyList());
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class NFAStateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<NFAState> {
+
+		@Override
+		public TypeSerializer<NFAState> createUpgradedSerializer() {
+			return new NFAStateSerializer();
+		}
+
+		@Override
+		public Matcher<NFAState> testDataMatcher() {
+			return is(new NFAState(Collections.emptyList()));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<NFAState>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-data
deleted file mode 100644
index 75d3d21..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-snapshot
deleted file mode 100644
index 027167e..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-dewey-number-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-data
deleted file mode 100644
index 840f83d..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-snapshot
deleted file mode 100644
index 0d1a700..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-event-id-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-data
deleted file mode 100644
index 6505244..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-snapshot
deleted file mode 100644
index 6d5fa94..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-nfa-state-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-data
deleted file mode 100644
index 7a4f46e..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-snapshot
deleted file mode 100644
index 4f9053e..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-node-id-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-data
deleted file mode 100644
index 5979627..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-snapshot
deleted file mode 100644
index af0016b..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-edge-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-data
deleted file mode 100644
index 8fe40f6..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-snapshot
deleted file mode 100644
index 3071b83..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.6-shared-buffer-node-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-data
deleted file mode 100644
index 75d3d21..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-snapshot
deleted file mode 100644
index 3dae669..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-dewey-number-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-data
deleted file mode 100644
index 5e4f6bf..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-snapshot
deleted file mode 100644
index c824699..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-event-id-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-data
deleted file mode 100644
index 6505244..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-snapshot
deleted file mode 100644
index 3f928a0..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-nfa-state-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-data
deleted file mode 100644
index ed21712..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-snapshot
deleted file mode 100644
index ba4c1c7..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-node-id-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-data
deleted file mode 100644
index 3546983..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-snapshot
deleted file mode 100644
index db33009..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-edge-serializer-snapshot and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-data b/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-data
deleted file mode 100644
index fb81606..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-data and /dev/null differ
diff --git a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-snapshot
deleted file mode 100644
index fab3567..0000000
Binary files a/flink-libraries/flink-cep/src/test/resources/flink-1.7-shared-buffer-node-serializer-snapshot and /dev/null differ


[flink] 23/42: [FLINK-13632] Port TwoPhaseCommitSinkStateSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 3ef4e171d062a36cf6e8faa489bde4e2ff3e7b37
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 13:37:46 2020 +0800

    [FLINK-13632] Port TwoPhaseCommitSinkStateSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 ...haseCommitSinkStateSerializerMigrationTest.java |  61 -----------
 ...oPhaseCommitSinkStateSerializerUpgradeTest.java | 116 +++++++++++++++++++++
 ...1.6-two-phase-commit-sink-state-serializer-data | Bin 530 -> 0 bytes
 ...two-phase-commit-sink-state-serializer-snapshot | Bin 1430 -> 0 bytes
 ...1.7-two-phase-commit-sink-state-serializer-data | Bin 530 -> 0 bytes
 ...two-phase-commit-sink-state-serializer-snapshot | Bin 1438 -> 0 bytes
 6 files changed, 116 insertions(+), 61 deletions(-)

diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerMigrationTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerMigrationTest.java
deleted file mode 100644
index f1e3dd8..0000000
--- a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerMigrationTest.java
+++ /dev/null
@@ -1,61 +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.streaming.api.functions.sink;
-
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.IntSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * Migration test for {@link TwoPhaseCommitSinkFunction.StateSerializer}.
- */
-@RunWith(Parameterized.class)
-public class TwoPhaseCommitSinkStateSerializerMigrationTest
-		extends TypeSerializerSnapshotMigrationTestBase<TwoPhaseCommitSinkFunction.State<Integer, String>> {
-
-	public TwoPhaseCommitSinkStateSerializerMigrationTest(
-			TestSpecification<TwoPhaseCommitSinkFunction.State<Integer, String>> 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(
-			"two-phase-commit-sink-state-serializer",
-			TwoPhaseCommitSinkFunction.StateSerializer.class,
-			TwoPhaseCommitSinkFunction.StateSerializerSnapshot.class,
-			TwoPhaseCommitSinkStateSerializerMigrationTest::intStringStateSerializerSupplier);
-
-		return testSpecifications.get();
-	}
-
-	private static TypeSerializer<TwoPhaseCommitSinkFunction.State<Integer, String>> intStringStateSerializerSupplier() {
-		return new TwoPhaseCommitSinkFunction.StateSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE);
-	}
-}
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerUpgradeTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerUpgradeTest.java
new file mode 100644
index 0000000..5700e99
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkStateSerializerUpgradeTest.java
@@ -0,0 +1,116 @@
+/*
+ * 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.streaming.api.functions.sink;
+
+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.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link TwoPhaseCommitSinkFunction.StateSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class TwoPhaseCommitSinkStateSerializerUpgradeTest
+		extends TypeSerializerUpgradeTestBase<TwoPhaseCommitSinkFunction.State<Integer, String>, TwoPhaseCommitSinkFunction.State<Integer, String>> {
+
+	public TwoPhaseCommitSinkStateSerializerUpgradeTest(
+			TestSpecification<TwoPhaseCommitSinkFunction.State<Integer, String>, TwoPhaseCommitSinkFunction.State<Integer, String>> 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<>(
+					"two-phase-commit-sink-state-serializer",
+					migrationVersion,
+					TwoPhaseCommitSinkStateSerializerSetup.class,
+					TwoPhaseCommitSinkStateSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	public static TypeSerializer<TwoPhaseCommitSinkFunction.State<Integer, String>> intStringStateSerializerSupplier() {
+		return new TwoPhaseCommitSinkFunction.StateSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE);
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "two-phase-commit-sink-state-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TwoPhaseCommitSinkStateSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TwoPhaseCommitSinkFunction.State<Integer, String>> {
+
+		@Override
+		public TypeSerializer<TwoPhaseCommitSinkFunction.State<Integer, String>> createPriorSerializer() {
+			return intStringStateSerializerSupplier();
+		}
+
+		@Override
+		public TwoPhaseCommitSinkFunction.State<Integer, String> createTestData() {
+			TwoPhaseCommitSinkFunction.TransactionHolder<Integer> pendingTransaction = new TwoPhaseCommitSinkFunction.TransactionHolder<>(12, 1523467890);
+			List<TwoPhaseCommitSinkFunction.TransactionHolder<Integer>> list = new ArrayList<>();
+			list.add(new TwoPhaseCommitSinkFunction.TransactionHolder<>(123, 1567234890));
+			Optional<String> optional = Optional.of("flink");
+			return new TwoPhaseCommitSinkFunction.State<>(pendingTransaction, list, optional);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class TwoPhaseCommitSinkStateSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TwoPhaseCommitSinkFunction.State<Integer, String>> {
+		@Override
+		public TypeSerializer<TwoPhaseCommitSinkFunction.State<Integer, String>> createUpgradedSerializer() {
+			return intStringStateSerializerSupplier();
+		}
+
+		@Override
+		public Matcher<TwoPhaseCommitSinkFunction.State<Integer, String>> testDataMatcher() {
+			TwoPhaseCommitSinkFunction.TransactionHolder<Integer> pendingTransaction = new TwoPhaseCommitSinkFunction.TransactionHolder<>(12, 1523467890);
+			List<TwoPhaseCommitSinkFunction.TransactionHolder<Integer>> list = new ArrayList<>();
+			list.add(new TwoPhaseCommitSinkFunction.TransactionHolder<>(123, 1567234890));
+			Optional<String> optional = Optional.of("flink");
+			return is(new TwoPhaseCommitSinkFunction.State<>(pendingTransaction, list, optional));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TwoPhaseCommitSinkFunction.State<Integer, String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-data
deleted file mode 100644
index 6d94356..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-snapshot
deleted file mode 100644
index e44e6be..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-two-phase-commit-sink-state-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-data
deleted file mode 100644
index cd02200..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-data and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-snapshot
deleted file mode 100644
index 6777a8e..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-two-phase-commit-sink-state-serializer-snapshot and /dev/null differ


[flink] 04/42: [FLINK-13632] Add Flink 1.11 snapshots for TypeSerializer upgrade tests

Posted by al...@apache.org.
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 37d7a4256f1d40340cfac299463bae4aaa3ba0f2
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Wed May 27 11:50:51 2020 +0200

    [FLINK-13632] Add Flink 1.11 snapshots for TypeSerializer upgrade tests
    
    Theses snapshots were created on the release-1.11 branch by un-@Ignoring
    TypeSerializerUpgradeTestBase.generateTestSetupFiles() and running tests
    on each subclass individually.
---
 .../context-state-serializer-1.11/serializer-snapshot    | Bin 0 -> 129 bytes
 .../resources/context-state-serializer-1.11/test-data    | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 137 bytes
 .../transaction-state-serializer-1.11/test-data          | Bin 0 -> 17 bytes
 .../context-state-serializer-1.11/serializer-snapshot    | Bin 0 -> 126 bytes
 .../resources/context-state-serializer-1.11/test-data    | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 134 bytes
 .../transaction-state-serializer-1.11/test-data          | Bin 0 -> 17 bytes
 .../writeable-serializer-1.11/serializer-snapshot        | Bin 0 -> 187 bytes
 .../test/resources/writeable-serializer-1.11/test-data   | Bin 0 -> 7 bytes
 .../big-dec-serializer-1.11/serializer-snapshot          | Bin 0 -> 94 bytes
 .../src/test/resources/big-dec-serializer-1.11/test-data | Bin 0 -> 24 bytes
 .../big-int-serializer-1.11/serializer-snapshot          | Bin 0 -> 94 bytes
 .../src/test/resources/big-int-serializer-1.11/test-data | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 130 bytes
 .../boolean-primitive-array-serializer-1.11/test-data    | Bin 0 -> 6 bytes
 .../boolean-serializer-1.11/serializer-snapshot          | Bin 0 -> 96 bytes
 .../src/test/resources/boolean-serializer-1.11/test-data |   1 +
 .../boolean-value-serializer-1.11/serializer-snapshot    | Bin 0 -> 106 bytes
 .../resources/boolean-value-serializer-1.11/test-data    |   1 +
 .../serializer-snapshot                                  | Bin 0 -> 124 bytes
 .../byte-primitive-array-serializer-1.11/test-data       | Bin 0 -> 14 bytes
 .../resources/byte-serializer-1.11/serializer-snapshot   | Bin 0 -> 90 bytes
 .../src/test/resources/byte-serializer-1.11/test-data    |   1 +
 .../byte-value-serializer-1.11/serializer-snapshot       | Bin 0 -> 100 bytes
 .../test/resources/byte-value-serializer-1.11/test-data  |   1 +
 .../serializer-snapshot                                  | Bin 0 -> 124 bytes
 .../char-primitive-array-serializer-1.11/test-data       | Bin 0 -> 24 bytes
 .../resources/char-serializer-1.11/serializer-snapshot   | Bin 0 -> 90 bytes
 .../src/test/resources/char-serializer-1.11/test-data    |   1 +
 .../char-value-serializer-1.11/serializer-snapshot       | Bin 0 -> 100 bytes
 .../test/resources/char-value-serializer-1.11/test-data  | Bin 0 -> 2 bytes
 .../copyable-value-serializer-1.11/serializer-snapshot   | Bin 0 -> 199 bytes
 .../resources/copyable-value-serializer-1.11/test-data   | Bin 0 -> 8 bytes
 .../resources/date-serializer-1.11/serializer-snapshot   | Bin 0 -> 90 bytes
 .../src/test/resources/date-serializer-1.11/test-data    | Bin 0 -> 8 bytes
 .../serializer-snapshot                                  | Bin 0 -> 128 bytes
 .../double-primitive-array-serializer-1.11/test-data     | Bin 0 -> 84 bytes
 .../resources/double-serializer-1.11/serializer-snapshot | Bin 0 -> 94 bytes
 .../src/test/resources/double-serializer-1.11/test-data  |   1 +
 .../double-value-serializer-1.11/serializer-snapshot     | Bin 0 -> 104 bytes
 .../resources/double-value-serializer-1.11/test-data     |   1 +
 .../resources/either-serializer-1.11/serializer-snapshot | Bin 0 -> 276 bytes
 .../src/test/resources/either-serializer-1.11/test-data  |   1 +
 .../resources/enum-serializer-1.11/serializer-snapshot   | Bin 0 -> 188 bytes
 .../src/test/resources/enum-serializer-1.11/test-data    | Bin 0 -> 4 bytes
 .../enum-serializerreconfig-1.11/serializer-snapshot     | Bin 0 -> 163 bytes
 .../resources/enum-serializerreconfig-1.11/test-data     | Bin 0 -> 4 bytes
 .../serializer-snapshot                                  | Bin 0 -> 126 bytes
 .../float-primitive-array-serializer-1.11/test-data      | Bin 0 -> 44 bytes
 .../resources/float-serializer-1.11/serializer-snapshot  | Bin 0 -> 92 bytes
 .../src/test/resources/float-serializer-1.11/test-data   |   1 +
 .../float-value-serializer-1.11/serializer-snapshot      | Bin 0 -> 102 bytes
 .../test/resources/float-value-serializer-1.11/test-data |   1 +
 .../generic-array-serializer-1.11/serializer-snapshot    | Bin 0 -> 211 bytes
 .../resources/generic-array-serializer-1.11/test-data    | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 122 bytes
 .../int-primitive-array-serializer-1.11/test-data        | Bin 0 -> 44 bytes
 .../resources/int-serializer-1.11/serializer-snapshot    | Bin 0 -> 88 bytes
 .../src/test/resources/int-serializer-1.11/test-data     | Bin 0 -> 4 bytes
 .../int-value-serializer-1.11/serializer-snapshot        | Bin 0 -> 98 bytes
 .../test/resources/int-value-serializer-1.11/test-data   | Bin 0 -> 4 bytes
 .../serializer-snapshot                                  | Bin 0 -> 1718 bytes
 .../test-data                                            |   1 +
 .../serializer-snapshot                                  | Bin 0 -> 1525 bytes
 .../test-data                                            |   1 +
 .../serializer-snapshot                                  | Bin 0 -> 745 bytes
 .../kryo-type-serializer-empty-config-1.11/test-data     | Bin 0 -> 90 bytes
 .../serializer-snapshot                                  | Bin 0 -> 745 bytes
 .../test-data                                            | Bin 0 -> 90 bytes
 .../resources/list-serializer-1.11/serializer-snapshot   | Bin 0 -> 185 bytes
 .../src/test/resources/list-serializer-1.11/test-data    | Bin 0 -> 17 bytes
 .../serializer-snapshot                                  | Bin 0 -> 124 bytes
 .../long-primitive-array-serializer-1.11/test-data       | Bin 0 -> 84 bytes
 .../resources/long-serializer-1.11/serializer-snapshot   | Bin 0 -> 90 bytes
 .../src/test/resources/long-serializer-1.11/test-data    | Bin 0 -> 8 bytes
 .../long-value-serializer-1.11/serializer-snapshot       | Bin 0 -> 100 bytes
 .../test/resources/long-value-serializer-1.11/test-data  | Bin 0 -> 8 bytes
 .../resources/map-serializer-1.11/serializer-snapshot    | Bin 0 -> 268 bytes
 .../src/test/resources/map-serializer-1.11/test-data     | Bin 0 -> 25 bytes
 .../null-value-serializer-1.11/serializer-snapshot       | Bin 0 -> 100 bytes
 .../test/resources/null-value-serializer-1.11/test-data  |   0
 .../serializer-snapshot                                  | Bin 0 -> 209 bytes
 .../nullable-not-padded-serializer-1.11/test-data        |   1 +
 .../nullable-padded-serializer-1.11/serializer-snapshot  | Bin 0 -> 209 bytes
 .../resources/nullable-padded-serializer-1.11/test-data  | Bin 0 -> 9 bytes
 .../serializer-snapshot                                  | Bin 0 -> 1214 bytes
 .../pojo-serializer-identical-schema-1.11/test-data      | Bin 0 -> 21 bytes
 .../serializer-snapshot                                  | Bin 0 -> 294 bytes
 .../test-data                                            | Bin 0 -> 6 bytes
 .../serializer-snapshot                                  | Bin 0 -> 2570 bytes
 .../test-data                                            | Bin 0 -> 24 bytes
 .../serializer-snapshot                                  | Bin 0 -> 4372 bytes
 .../test-data                                            | Bin 0 -> 21 bytes
 .../serializer-snapshot                                  | Bin 0 -> 4372 bytes
 .../test-data                                            | Bin 0 -> 21 bytes
 .../serializer-snapshot                                  | Bin 0 -> 686 bytes
 .../pojo-serializer-with-modified-schema-1.11/test-data  | Bin 0 -> 28 bytes
 .../serializer-snapshot                                  | Bin 0 -> 1082 bytes
 .../test-data                                            | Bin 0 -> 27 bytes
 .../serializer-snapshot                                  | Bin 0 -> 4372 bytes
 .../test-data                                            | Bin 0 -> 21 bytes
 .../serializer-snapshot                                  | Bin 0 -> 2789 bytes
 .../test-data                                            | Bin 0 -> 134 bytes
 .../serializer-snapshot                                  | Bin 0 -> 2789 bytes
 .../test-data                                            | Bin 0 -> 134 bytes
 .../resources/row-serializer-1.11/serializer-snapshot    | Bin 0 -> 465 bytes
 .../src/test/resources/row-serializer-1.11/test-data     | Bin 0 -> 20 bytes
 .../serializer-snapshot                                  | Bin 0 -> 126 bytes
 .../short-primitive-array-serializer-1.11/test-data      | Bin 0 -> 24 bytes
 .../resources/short-serializer-1.11/serializer-snapshot  | Bin 0 -> 92 bytes
 .../src/test/resources/short-serializer-1.11/test-data   | Bin 0 -> 2 bytes
 .../short-value-serializer-1.11/serializer-snapshot      | Bin 0 -> 102 bytes
 .../test/resources/short-value-serializer-1.11/test-data | Bin 0 -> 2 bytes
 .../sql-date-serializer-1.11/serializer-snapshot         | Bin 0 -> 96 bytes
 .../test/resources/sql-date-serializer-1.11/test-data    | Bin 0 -> 8 bytes
 .../sql-time-serializer-1.11/serializer-snapshot         | Bin 0 -> 96 bytes
 .../test/resources/sql-time-serializer-1.11/test-data    | Bin 0 -> 8 bytes
 .../sql-timestamp-serializer-1.11/serializer-snapshot    | Bin 0 -> 106 bytes
 .../resources/sql-timestamp-serializer-1.11/test-data    | Bin 0 -> 12 bytes
 .../string-array-serializer-1.11/serializer-snapshot     | Bin 0 -> 110 bytes
 .../resources/string-array-serializer-1.11/test-data     | Bin 0 -> 24 bytes
 .../resources/string-serializer-1.11/serializer-snapshot | Bin 0 -> 94 bytes
 .../src/test/resources/string-serializer-1.11/test-data  |   1 +
 .../string-value-serializer-1.11/serializer-snapshot     | Bin 0 -> 104 bytes
 .../resources/string-value-serializer-1.11/test-data     |   1 +
 .../resources/tuple-serializer-1.11/serializer-snapshot  | Bin 0 -> 401 bytes
 .../src/test/resources/tuple-serializer-1.11/test-data   | Bin 0 -> 22 bytes
 .../resources/value-serializer-1.11/serializer-snapshot  | Bin 0 -> 175 bytes
 .../src/test/resources/value-serializer-1.11/test-data   | Bin 0 -> 9 bytes
 .../generic-avro-serializer-1.11/serializer-snapshot     | Bin 0 -> 370 bytes
 .../resources/generic-avro-serializer-1.11/test-data     | Bin 0 -> 51 bytes
 .../specific-avro-serializer-1.11/serializer-snapshot    | Bin 0 -> 380 bytes
 .../resources/specific-avro-serializer-1.11/test-data    | Bin 0 -> 51 bytes
 .../dewey-number-serializer-1.11/serializer-snapshot     | Bin 0 -> 98 bytes
 .../resources/dewey-number-serializer-1.11/test-data     | Bin 0 -> 8 bytes
 .../event-id-serializer-1.11/serializer-snapshot         | Bin 0 -> 99 bytes
 .../test/resources/event-id-serializer-1.11/test-data    | Bin 0 -> 12 bytes
 .../lockable-type-serializer-1.11/serializer-snapshot    | Bin 0 -> 188 bytes
 .../resources/lockable-type-serializer-1.11/test-data    | Bin 0 -> 10 bytes
 .../nfa-state-serializer-1.11/serializer-snapshot        | Bin 0 -> 477 bytes
 .../test/resources/nfa-state-serializer-1.11/test-data   | Bin 0 -> 8 bytes
 .../node-id-serializer-1.11/serializer-snapshot          | Bin 0 -> 211 bytes
 .../src/test/resources/node-id-serializer-1.11/test-data | Bin 0 -> 18 bytes
 .../serializer-snapshot                                  | Bin 0 -> 447 bytes
 .../shared-buffer-edge-serializer-1.11/test-data         | Bin 0 -> 26 bytes
 .../serializer-snapshot                                  | Bin 0 -> 680 bytes
 .../shared-buffer-node-serializer-1.11/test-data         | Bin 0 -> 30 bytes
 .../serializer-snapshot                                  | Bin 0 -> 162 bytes
 .../test-data                                            | Bin 0 -> 8 bytes
 .../byte-value-array-serializer-1.11/serializer-snapshot | Bin 0 -> 107 bytes
 .../resources/byte-value-array-serializer-1.11/test-data | Bin 0 -> 6 bytes
 .../char-value-array-serializer-1.11/serializer-snapshot | Bin 0 -> 107 bytes
 .../resources/char-value-array-serializer-1.11/test-data | Bin 0 -> 10 bytes
 .../serializer-snapshot                                  | Bin 0 -> 111 bytes
 .../double-value-array-serializer-1.11/test-data         | Bin 0 -> 20 bytes
 .../serializer-snapshot                                  | Bin 0 -> 109 bytes
 .../float-value-array-serializer-1.11/test-data          | Bin 0 -> 12 bytes
 .../int-value-array-serializer-1.11/serializer-snapshot  | Bin 0 -> 105 bytes
 .../resources/int-value-array-serializer-1.11/test-data  | Bin 0 -> 12 bytes
 .../long-value-array-serializer-1.11/serializer-snapshot | Bin 0 -> 107 bytes
 .../resources/long-value-array-serializer-1.11/test-data | Bin 0 -> 20 bytes
 .../null-value-array-serializer-1.11/serializer-snapshot | Bin 0 -> 107 bytes
 .../resources/null-value-array-serializer-1.11/test-data | Bin 0 -> 4 bytes
 .../serializer-snapshot                                  | Bin 0 -> 109 bytes
 .../short-value-array-serializer-1.11/test-data          | Bin 0 -> 8 bytes
 .../serializer-snapshot                                  | Bin 0 -> 111 bytes
 .../string-value-array-serializer-1.11/test-data         | Bin 0 -> 16 bytes
 .../arraylist-serializer-1.11/serializer-snapshot        | Bin 0 -> 178 bytes
 .../test/resources/arraylist-serializer-1.11/test-data   | Bin 0 -> 17 bytes
 .../resources/java-serializer-1.11/serializer-snapshot   | Bin 0 -> 78 bytes
 .../src/test/resources/java-serializer-1.11/test-data    | Bin 0 -> 81 bytes
 .../resources/ttl-serializer-1.11/serializer-snapshot    | Bin 0 -> 278 bytes
 .../src/test/resources/ttl-serializer-1.11/test-data     | Bin 0 -> 21 bytes
 .../void-namespace-serializer-1.11/serializer-snapshot   | Bin 0 -> 96 bytes
 .../resources/void-namespace-serializer-1.11/test-data   | Bin 0 -> 1 bytes
 .../scala-case-class-serializer-1.11/serializer-snapshot | Bin 0 -> 323 bytes
 .../resources/scala-case-class-serializer-1.11/test-data | Bin 0 -> 10 bytes
 .../scala-either-serializer-1.11/serializer-snapshot     | Bin 0 -> 270 bytes
 .../resources/scala-either-serializer-1.11/test-data     | Bin 0 -> 13 bytes
 .../scala-enum-serializer-1.11/serializer-snapshot       | Bin 0 -> 146 bytes
 .../test/resources/scala-enum-serializer-1.11/test-data  | Bin 0 -> 4 bytes
 .../scala-option-serializer-1.11/serializer-snapshot     | Bin 0 -> 186 bytes
 .../resources/scala-option-serializer-1.11/test-data     | Bin 0 -> 1 bytes
 .../scala-try-serializer-1.11/serializer-snapshot        | Bin 0 -> 672 bytes
 .../test/resources/scala-try-serializer-1.11/test-data   | Bin 0 -> 3144 bytes
 .../serializer-snapshot                                  | Bin 0 -> 286 bytes
 .../traversable-serializer-bitset-1.11/test-data         | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 270 bytes
 .../traversable-serializer-indexedseq-1.11/test-data     | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 302 bytes
 .../traversable-serializer-linearseq-1.11/test-data      | Bin 0 -> 19 bytes
 .../traversable-serializer-map-1.11/serializer-snapshot  | Bin 0 -> 479 bytes
 .../resources/traversable-serializer-map-1.11/test-data  | Bin 0 -> 27 bytes
 .../serializer-snapshot                                  | Bin 0 -> 322 bytes
 .../traversable-serializer-mutable-list-1.11/test-data   | Bin 0 -> 19 bytes
 .../traversable-serializer-seq-1.11/serializer-snapshot  | Bin 0 -> 256 bytes
 .../resources/traversable-serializer-seq-1.11/test-data  | Bin 0 -> 19 bytes
 .../traversable-serializer-set-1.11/serializer-snapshot  | Bin 0 -> 256 bytes
 .../resources/traversable-serializer-set-1.11/test-data  | Bin 0 -> 19 bytes
 .../serializer-snapshot                                  | Bin 0 -> 485 bytes
 .../test-data                                            | Bin 0 -> 27 bytes
 .../serializer-snapshot                                  | Bin 0 -> 977 bytes
 .../traversable-serializer-with-pojo-1.11/test-data      | Bin 0 -> 33 bytes
 .../buffer-entry-serializer-1.11/serializer-snapshot     | Bin 0 -> 214 bytes
 .../resources/buffer-entry-serializer-1.11/test-data     | Bin 0 -> 7 bytes
 .../global-window-serializer-1.11/serializer-snapshot    | Bin 0 -> 113 bytes
 .../resources/global-window-serializer-1.11/test-data    | Bin 0 -> 1 bytes
 .../stream-element-serializer-1.11/serializer-snapshot   | Bin 0 -> 223 bytes
 .../resources/stream-element-serializer-1.11/test-data   | Bin 0 -> 13 bytes
 .../time-window-serializer-1.11/serializer-snapshot      | Bin 0 -> 109 bytes
 .../test/resources/time-window-serializer-1.11/test-data | Bin 0 -> 16 bytes
 .../resources/timer-serializer-1.11/serializer-snapshot  | Bin 0 -> 268 bytes
 .../src/test/resources/timer-serializer-1.11/test-data   | Bin 0 -> 16 bytes
 .../serializer-snapshot                                  | Bin 0 -> 300 bytes
 .../test-data                                            | Bin 0 -> 35 bytes
 .../union-serializer-one-1.11/serializer-snapshot        | Bin 0 -> 288 bytes
 .../test/resources/union-serializer-one-1.11/test-data   |   1 +
 .../union-serializer-two-1.11/serializer-snapshot        | Bin 0 -> 288 bytes
 .../test/resources/union-serializer-two-1.11/test-data   | Bin 0 -> 9 bytes
 .../list-view-serializer-1.11/serializer-snapshot        | Bin 0 -> 269 bytes
 .../test/resources/list-view-serializer-1.11/test-data   | Bin 0 -> 16 bytes
 .../map-view-serializer-1.11/serializer-snapshot         | Bin 0 -> 351 bytes
 .../test/resources/map-view-serializer-1.11/test-data    | Bin 0 -> 11 bytes
 224 files changed, 16 insertions(+)

diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/serializer-snapshot b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..894f3e9
Binary files /dev/null and b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/serializer-snapshot differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/test-data b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/test-data
new file mode 100644
index 0000000..3efe488
Binary files /dev/null and b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/context-state-serializer-1.11/test-data differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b9b7b55
Binary files /dev/null and b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot differ
diff --git a/flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/test-data b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/test-data
new file mode 100644
index 0000000..0936509
Binary files /dev/null and b/flink-connectors/flink-connector-kafka-0.11/src/test/resources/transaction-state-serializer-1.11/test-data differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/serializer-snapshot b/flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..85a71dc
Binary files /dev/null and b/flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/serializer-snapshot differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/test-data b/flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/test-data
new file mode 100644
index 0000000..3efe488
Binary files /dev/null and b/flink-connectors/flink-connector-kafka/src/test/resources/context-state-serializer-1.11/test-data differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot b/flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b95eacb
Binary files /dev/null and b/flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/serializer-snapshot differ
diff --git a/flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/test-data b/flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/test-data
new file mode 100644
index 0000000..0936509
Binary files /dev/null and b/flink-connectors/flink-connector-kafka/src/test/resources/transaction-state-serializer-1.11/test-data differ
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/serializer-snapshot b/flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..0af5d65
Binary files /dev/null and b/flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/serializer-snapshot differ
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/test-data b/flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/test-data
new file mode 100644
index 0000000..f43afae
Binary files /dev/null and b/flink-connectors/flink-hadoop-compatibility/src/test/resources/writeable-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/big-dec-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/big-dec-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..ccd31f3
Binary files /dev/null and b/flink-core/src/test/resources/big-dec-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/big-dec-serializer-1.11/test-data b/flink-core/src/test/resources/big-dec-serializer-1.11/test-data
new file mode 100644
index 0000000..c59e432
Binary files /dev/null and b/flink-core/src/test/resources/big-dec-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/big-int-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/big-int-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b525669
Binary files /dev/null and b/flink-core/src/test/resources/big-int-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/big-int-serializer-1.11/test-data b/flink-core/src/test/resources/big-int-serializer-1.11/test-data
new file mode 100644
index 0000000..3d0079e
Binary files /dev/null and b/flink-core/src/test/resources/big-int-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..dfa6707
Binary files /dev/null and b/flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..0e3eeb5
Binary files /dev/null and b/flink-core/src/test/resources/boolean-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/boolean-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/boolean-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b1e867b
Binary files /dev/null and b/flink-core/src/test/resources/boolean-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/boolean-serializer-1.11/test-data b/flink-core/src/test/resources/boolean-serializer-1.11/test-data
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/flink-core/src/test/resources/boolean-serializer-1.11/test-data
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/flink-core/src/test/resources/boolean-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/boolean-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..8511a73
Binary files /dev/null and b/flink-core/src/test/resources/boolean-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/boolean-value-serializer-1.11/test-data b/flink-core/src/test/resources/boolean-value-serializer-1.11/test-data
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/flink-core/src/test/resources/boolean-value-serializer-1.11/test-data
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/flink-core/src/test/resources/byte-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/byte-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..071fdfd
Binary files /dev/null and b/flink-core/src/test/resources/byte-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/byte-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/byte-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..1ea699b
Binary files /dev/null and b/flink-core/src/test/resources/byte-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/byte-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/byte-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..372634d
Binary files /dev/null and b/flink-core/src/test/resources/byte-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/byte-serializer-1.11/test-data b/flink-core/src/test/resources/byte-serializer-1.11/test-data
new file mode 100644
index 0000000..f59ec20
--- /dev/null
+++ b/flink-core/src/test/resources/byte-serializer-1.11/test-data
@@ -0,0 +1 @@
+*
\ No newline at end of file
diff --git a/flink-core/src/test/resources/byte-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/byte-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..af6c1f0
Binary files /dev/null and b/flink-core/src/test/resources/byte-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/byte-value-serializer-1.11/test-data b/flink-core/src/test/resources/byte-value-serializer-1.11/test-data
new file mode 100644
index 0000000..f59ec20
--- /dev/null
+++ b/flink-core/src/test/resources/byte-value-serializer-1.11/test-data
@@ -0,0 +1 @@
+*
\ No newline at end of file
diff --git a/flink-core/src/test/resources/char-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/char-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..31a3a34
Binary files /dev/null and b/flink-core/src/test/resources/char-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/char-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/char-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..cc4337b
Binary files /dev/null and b/flink-core/src/test/resources/char-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/char-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/char-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..5f6308d
Binary files /dev/null and b/flink-core/src/test/resources/char-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/char-serializer-1.11/test-data b/flink-core/src/test/resources/char-serializer-1.11/test-data
new file mode 100644
index 0000000..f96c401
--- /dev/null
+++ b/flink-core/src/test/resources/char-serializer-1.11/test-data
@@ -0,0 +1 @@
+��
\ No newline at end of file
diff --git a/flink-core/src/test/resources/char-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/char-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..67c2a46
Binary files /dev/null and b/flink-core/src/test/resources/char-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/char-value-serializer-1.11/test-data b/flink-core/src/test/resources/char-value-serializer-1.11/test-data
new file mode 100644
index 0000000..d399cc0
Binary files /dev/null and b/flink-core/src/test/resources/char-value-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/copyable-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/copyable-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..f1b8eb6
Binary files /dev/null and b/flink-core/src/test/resources/copyable-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/copyable-value-serializer-1.11/test-data b/flink-core/src/test/resources/copyable-value-serializer-1.11/test-data
new file mode 100644
index 0000000..9ff9b97
Binary files /dev/null and b/flink-core/src/test/resources/copyable-value-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/date-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/date-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..4794ebd
Binary files /dev/null and b/flink-core/src/test/resources/date-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/date-serializer-1.11/test-data b/flink-core/src/test/resources/date-serializer-1.11/test-data
new file mode 100644
index 0000000..1faf9a0
Binary files /dev/null and b/flink-core/src/test/resources/date-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/double-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/double-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..98ae2a6
Binary files /dev/null and b/flink-core/src/test/resources/double-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/double-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/double-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..349e318
Binary files /dev/null and b/flink-core/src/test/resources/double-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/double-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/double-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..1383b64
Binary files /dev/null and b/flink-core/src/test/resources/double-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/double-serializer-1.11/test-data b/flink-core/src/test/resources/double-serializer-1.11/test-data
new file mode 100644
index 0000000..5cfd371
--- /dev/null
+++ b/flink-core/src/test/resources/double-serializer-1.11/test-data
@@ -0,0 +1 @@
+@���1��
\ No newline at end of file
diff --git a/flink-core/src/test/resources/double-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/double-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..604cef8
Binary files /dev/null and b/flink-core/src/test/resources/double-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/double-value-serializer-1.11/test-data b/flink-core/src/test/resources/double-value-serializer-1.11/test-data
new file mode 100644
index 0000000..5cfd371
--- /dev/null
+++ b/flink-core/src/test/resources/double-value-serializer-1.11/test-data
@@ -0,0 +1 @@
+@���1��
\ No newline at end of file
diff --git a/flink-core/src/test/resources/either-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/either-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..9357df7
Binary files /dev/null and b/flink-core/src/test/resources/either-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/either-serializer-1.11/test-data b/flink-core/src/test/resources/either-serializer-1.11/test-data
new file mode 100644
index 0000000..87ec446
--- /dev/null
+++ b/flink-core/src/test/resources/either-serializer-1.11/test-data
@@ -0,0 +1 @@
+ApacheFlink
\ No newline at end of file
diff --git a/flink-core/src/test/resources/enum-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/enum-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..27cc1da
Binary files /dev/null and b/flink-core/src/test/resources/enum-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/enum-serializer-1.11/test-data b/flink-core/src/test/resources/enum-serializer-1.11/test-data
new file mode 100644
index 0000000..3b6fc84
Binary files /dev/null and b/flink-core/src/test/resources/enum-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/enum-serializerreconfig-1.11/serializer-snapshot b/flink-core/src/test/resources/enum-serializerreconfig-1.11/serializer-snapshot
new file mode 100644
index 0000000..a43be8d
Binary files /dev/null and b/flink-core/src/test/resources/enum-serializerreconfig-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/enum-serializerreconfig-1.11/test-data b/flink-core/src/test/resources/enum-serializerreconfig-1.11/test-data
new file mode 100644
index 0000000..ded2df2
Binary files /dev/null and b/flink-core/src/test/resources/enum-serializerreconfig-1.11/test-data differ
diff --git a/flink-core/src/test/resources/float-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/float-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..7342807
Binary files /dev/null and b/flink-core/src/test/resources/float-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/float-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/float-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..cb6654f
Binary files /dev/null and b/flink-core/src/test/resources/float-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/float-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/float-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..62370bd
Binary files /dev/null and b/flink-core/src/test/resources/float-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/float-serializer-1.11/test-data b/flink-core/src/test/resources/float-serializer-1.11/test-data
new file mode 100644
index 0000000..f9c0e21
--- /dev/null
+++ b/flink-core/src/test/resources/float-serializer-1.11/test-data
@@ -0,0 +1 @@
+B��y
\ No newline at end of file
diff --git a/flink-core/src/test/resources/float-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/float-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..6100e57
Binary files /dev/null and b/flink-core/src/test/resources/float-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/float-value-serializer-1.11/test-data b/flink-core/src/test/resources/float-value-serializer-1.11/test-data
new file mode 100644
index 0000000..f9c0e21
--- /dev/null
+++ b/flink-core/src/test/resources/float-value-serializer-1.11/test-data
@@ -0,0 +1 @@
+B��y
\ No newline at end of file
diff --git a/flink-core/src/test/resources/generic-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/generic-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..2bb4df4
Binary files /dev/null and b/flink-core/src/test/resources/generic-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/generic-array-serializer-1.11/test-data b/flink-core/src/test/resources/generic-array-serializer-1.11/test-data
new file mode 100644
index 0000000..6d06a98
Binary files /dev/null and b/flink-core/src/test/resources/generic-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/int-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/int-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..2087b50
Binary files /dev/null and b/flink-core/src/test/resources/int-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/int-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/int-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..dd766c0
Binary files /dev/null and b/flink-core/src/test/resources/int-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/int-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/int-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..597fc6b
Binary files /dev/null and b/flink-core/src/test/resources/int-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/int-serializer-1.11/test-data b/flink-core/src/test/resources/int-serializer-1.11/test-data
new file mode 100644
index 0000000..e9271b3
Binary files /dev/null and b/flink-core/src/test/resources/int-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/int-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/int-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..f6ae072
Binary files /dev/null and b/flink-core/src/test/resources/int-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/int-value-serializer-1.11/test-data b/flink-core/src/test/resources/int-value-serializer-1.11/test-data
new file mode 100644
index 0000000..e9271b3
Binary files /dev/null and b/flink-core/src/test/resources/int-value-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/serializer-snapshot b/flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/serializer-snapshot
new file mode 100644
index 0000000..07b541e
Binary files /dev/null and b/flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/test-data b/flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/test-data
new file mode 100644
index 0000000..ea0b75f
--- /dev/null
+++ b/flink-core/src/test/resources/kryo-custom-type-serializer-changed-registration-order-1.11/test-data
@@ -0,0 +1 @@
+Hass�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/serializer-snapshot b/flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/serializer-snapshot
new file mode 100644
index 0000000..ec2538c
Binary files /dev/null and b/flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/test-data b/flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/test-data
new file mode 100644
index 0000000..f8f9b83
--- /dev/null
+++ b/flink-core/src/test/resources/kryo-type-serializer-changed-registration-order-1.11/test-data
@@ -0,0 +1 @@
+
Hass�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/serializer-snapshot b/flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/serializer-snapshot
new file mode 100644
index 0000000..b755573
Binary files /dev/null and b/flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/test-data b/flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/test-data
new file mode 100644
index 0000000..517b98e
Binary files /dev/null and b/flink-core/src/test/resources/kryo-type-serializer-empty-config-1.11/test-data differ
diff --git a/flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/serializer-snapshot b/flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/serializer-snapshot
new file mode 100644
index 0000000..b755573
Binary files /dev/null and b/flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/test-data b/flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/test-data
new file mode 100644
index 0000000..517b98e
Binary files /dev/null and b/flink-core/src/test/resources/kryo-type-serializer-unrelated-config-after-restore-1.11/test-data differ
diff --git a/flink-core/src/test/resources/list-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/list-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..bbd86a6
Binary files /dev/null and b/flink-core/src/test/resources/list-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/list-serializer-1.11/test-data b/flink-core/src/test/resources/list-serializer-1.11/test-data
new file mode 100644
index 0000000..ac79859
Binary files /dev/null and b/flink-core/src/test/resources/list-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/long-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/long-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..6bf0336
Binary files /dev/null and b/flink-core/src/test/resources/long-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/long-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/long-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..873fe64
Binary files /dev/null and b/flink-core/src/test/resources/long-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/long-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/long-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..4f51b34
Binary files /dev/null and b/flink-core/src/test/resources/long-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/long-serializer-1.11/test-data b/flink-core/src/test/resources/long-serializer-1.11/test-data
new file mode 100644
index 0000000..2ffef6c
Binary files /dev/null and b/flink-core/src/test/resources/long-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/long-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/long-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b9e8f69
Binary files /dev/null and b/flink-core/src/test/resources/long-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/long-value-serializer-1.11/test-data b/flink-core/src/test/resources/long-value-serializer-1.11/test-data
new file mode 100644
index 0000000..2ffef6c
Binary files /dev/null and b/flink-core/src/test/resources/long-value-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/map-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/map-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..6d47ba4
Binary files /dev/null and b/flink-core/src/test/resources/map-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/map-serializer-1.11/test-data b/flink-core/src/test/resources/map-serializer-1.11/test-data
new file mode 100644
index 0000000..8999b1f
Binary files /dev/null and b/flink-core/src/test/resources/map-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/null-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/null-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..fcecf15
Binary files /dev/null and b/flink-core/src/test/resources/null-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/null-value-serializer-1.11/test-data b/flink-core/src/test/resources/null-value-serializer-1.11/test-data
new file mode 100644
index 0000000..e69de29
diff --git a/flink-core/src/test/resources/nullable-not-padded-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/nullable-not-padded-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..71c489a
Binary files /dev/null and b/flink-core/src/test/resources/nullable-not-padded-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/nullable-not-padded-serializer-1.11/test-data b/flink-core/src/test/resources/nullable-not-padded-serializer-1.11/test-data
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/flink-core/src/test/resources/nullable-not-padded-serializer-1.11/test-data
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/flink-core/src/test/resources/nullable-padded-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/nullable-padded-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..7831be8
Binary files /dev/null and b/flink-core/src/test/resources/nullable-padded-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/nullable-padded-serializer-1.11/test-data b/flink-core/src/test/resources/nullable-padded-serializer-1.11/test-data
new file mode 100644
index 0000000..22fd28d
Binary files /dev/null and b/flink-core/src/test/resources/nullable-padded-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-identical-schema-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-identical-schema-1.11/serializer-snapshot
new file mode 100644
index 0000000..5bded08
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-identical-schema-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-identical-schema-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-identical-schema-1.11/test-data
new file mode 100644
index 0000000..6700223
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-identical-schema-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-different-field-types-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-1.11/serializer-snapshot
new file mode 100644
index 0000000..a1b44c0
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-different-field-types-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-1.11/test-data
new file mode 100644
index 0000000..9cf45f4
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-different-field-types-in-registered-subclass-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-in-registered-subclass-1.11/serializer-snapshot
new file mode 100644
index 0000000..9f5609d
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-in-registered-subclass-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-different-field-types-in-registered-subclass-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-in-registered-subclass-1.11/test-data
new file mode 100644
index 0000000..195b040
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-different-field-types-in-registered-subclass-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-different-subclass-registration-order-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-different-subclass-registration-order-1.11/serializer-snapshot
new file mode 100644
index 0000000..e771338
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-different-subclass-registration-order-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-different-subclass-registration-order-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-different-subclass-registration-order-1.11/test-data
new file mode 100644
index 0000000..d1569d8
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-different-subclass-registration-order-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-missing-registered-subclass-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-missing-registered-subclass-1.11/serializer-snapshot
new file mode 100644
index 0000000..e771338
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-missing-registered-subclass-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-missing-registered-subclass-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-missing-registered-subclass-1.11/test-data
new file mode 100644
index 0000000..d1569d8
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-missing-registered-subclass-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-modified-schema-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-1.11/serializer-snapshot
new file mode 100644
index 0000000..63bf2dc
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-modified-schema-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-1.11/test-data
new file mode 100644
index 0000000..0ce0677
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-modified-schema-in-registered-subclass-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-in-registered-subclass-1.11/serializer-snapshot
new file mode 100644
index 0000000..5868d77
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-in-registered-subclass-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-modified-schema-in-registered-subclass-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-in-registered-subclass-1.11/test-data
new file mode 100644
index 0000000..9d83d0b
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-modified-schema-in-registered-subclass-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-new-and-missing-registered-subclasses-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-new-and-missing-registered-subclasses-1.11/serializer-snapshot
new file mode 100644
index 0000000..e771338
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-new-and-missing-registered-subclasses-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-new-and-missing-registered-subclasses-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-new-and-missing-registered-subclasses-1.11/test-data
new file mode 100644
index 0000000..d1569d8
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-new-and-missing-registered-subclasses-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-new-registered-subclass-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-new-registered-subclass-1.11/serializer-snapshot
new file mode 100644
index 0000000..5bf16ff
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-new-registered-subclass-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-new-registered-subclass-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-new-registered-subclass-1.11/test-data
new file mode 100644
index 0000000..10ca450
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-new-registered-subclass-1.11/test-data differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-non-registered-subclass-1.11/serializer-snapshot b/flink-core/src/test/resources/pojo-serializer-with-non-registered-subclass-1.11/serializer-snapshot
new file mode 100644
index 0000000..5bf16ff
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-non-registered-subclass-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/pojo-serializer-with-non-registered-subclass-1.11/test-data b/flink-core/src/test/resources/pojo-serializer-with-non-registered-subclass-1.11/test-data
new file mode 100644
index 0000000..10ca450
Binary files /dev/null and b/flink-core/src/test/resources/pojo-serializer-with-non-registered-subclass-1.11/test-data differ
diff --git a/flink-core/src/test/resources/row-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/row-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..13445d3
Binary files /dev/null and b/flink-core/src/test/resources/row-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/row-serializer-1.11/test-data b/flink-core/src/test/resources/row-serializer-1.11/test-data
new file mode 100644
index 0000000..a734bd4
Binary files /dev/null and b/flink-core/src/test/resources/row-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/short-primitive-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/short-primitive-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..5d2d0fc
Binary files /dev/null and b/flink-core/src/test/resources/short-primitive-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/short-primitive-array-serializer-1.11/test-data b/flink-core/src/test/resources/short-primitive-array-serializer-1.11/test-data
new file mode 100644
index 0000000..cc4337b
Binary files /dev/null and b/flink-core/src/test/resources/short-primitive-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/short-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/short-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..0960c9b
Binary files /dev/null and b/flink-core/src/test/resources/short-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/short-serializer-1.11/test-data b/flink-core/src/test/resources/short-serializer-1.11/test-data
new file mode 100644
index 0000000..aa9c341
Binary files /dev/null and b/flink-core/src/test/resources/short-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/short-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/short-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..c7808f5
Binary files /dev/null and b/flink-core/src/test/resources/short-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/short-value-serializer-1.11/test-data b/flink-core/src/test/resources/short-value-serializer-1.11/test-data
new file mode 100644
index 0000000..aa9c341
Binary files /dev/null and b/flink-core/src/test/resources/short-value-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/sql-date-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/sql-date-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..1042bba
Binary files /dev/null and b/flink-core/src/test/resources/sql-date-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/sql-date-serializer-1.11/test-data b/flink-core/src/test/resources/sql-date-serializer-1.11/test-data
new file mode 100644
index 0000000..1faf9a0
Binary files /dev/null and b/flink-core/src/test/resources/sql-date-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/sql-time-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/sql-time-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..039309b
Binary files /dev/null and b/flink-core/src/test/resources/sql-time-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/sql-time-serializer-1.11/test-data b/flink-core/src/test/resources/sql-time-serializer-1.11/test-data
new file mode 100644
index 0000000..1faf9a0
Binary files /dev/null and b/flink-core/src/test/resources/sql-time-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/sql-timestamp-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/sql-timestamp-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..295fa6e
Binary files /dev/null and b/flink-core/src/test/resources/sql-timestamp-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/sql-timestamp-serializer-1.11/test-data b/flink-core/src/test/resources/sql-timestamp-serializer-1.11/test-data
new file mode 100644
index 0000000..929596b
Binary files /dev/null and b/flink-core/src/test/resources/sql-timestamp-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/string-array-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/string-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..acc4e9d
Binary files /dev/null and b/flink-core/src/test/resources/string-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/string-array-serializer-1.11/test-data b/flink-core/src/test/resources/string-array-serializer-1.11/test-data
new file mode 100644
index 0000000..f1a5645
Binary files /dev/null and b/flink-core/src/test/resources/string-array-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/string-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/string-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..f796fdd
Binary files /dev/null and b/flink-core/src/test/resources/string-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/string-serializer-1.11/test-data b/flink-core/src/test/resources/string-serializer-1.11/test-data
new file mode 100644
index 0000000..67ad74d
--- /dev/null
+++ b/flink-core/src/test/resources/string-serializer-1.11/test-data
@@ -0,0 +1 @@
+%123456789012345678901234567890123456
\ No newline at end of file
diff --git a/flink-core/src/test/resources/string-value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/string-value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..c7055ea
Binary files /dev/null and b/flink-core/src/test/resources/string-value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/string-value-serializer-1.11/test-data b/flink-core/src/test/resources/string-value-serializer-1.11/test-data
new file mode 100644
index 0000000..9233b5a
--- /dev/null
+++ b/flink-core/src/test/resources/string-value-serializer-1.11/test-data
@@ -0,0 +1 @@
+$123456789012345678901234567890123456
\ No newline at end of file
diff --git a/flink-core/src/test/resources/tuple-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/tuple-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..ac31cfe
Binary files /dev/null and b/flink-core/src/test/resources/tuple-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/tuple-serializer-1.11/test-data b/flink-core/src/test/resources/tuple-serializer-1.11/test-data
new file mode 100644
index 0000000..808ccbc
Binary files /dev/null and b/flink-core/src/test/resources/tuple-serializer-1.11/test-data differ
diff --git a/flink-core/src/test/resources/value-serializer-1.11/serializer-snapshot b/flink-core/src/test/resources/value-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..26ee2df
Binary files /dev/null and b/flink-core/src/test/resources/value-serializer-1.11/serializer-snapshot differ
diff --git a/flink-core/src/test/resources/value-serializer-1.11/test-data b/flink-core/src/test/resources/value-serializer-1.11/test-data
new file mode 100644
index 0000000..c1e4937
Binary files /dev/null and b/flink-core/src/test/resources/value-serializer-1.11/test-data differ
diff --git a/flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/serializer-snapshot b/flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..f27d2dc
Binary files /dev/null and b/flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/serializer-snapshot differ
diff --git a/flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/test-data b/flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/test-data
new file mode 100644
index 0000000..5a7679a
Binary files /dev/null and b/flink-formats/flink-avro/src/test/resources/generic-avro-serializer-1.11/test-data differ
diff --git a/flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/serializer-snapshot b/flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..7c8f6c2
Binary files /dev/null and b/flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/serializer-snapshot differ
diff --git a/flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/test-data b/flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/test-data
new file mode 100644
index 0000000..5a7679a
Binary files /dev/null and b/flink-formats/flink-avro/src/test/resources/specific-avro-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..338c628
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/test-data
new file mode 100644
index 0000000..f870518
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/dewey-number-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..40dcf61
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/test-data
new file mode 100644
index 0000000..146a1fc
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/event-id-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..1a984b61
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/test-data
new file mode 100644
index 0000000..893957a
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/lockable-type-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b0d1ccf
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/test-data
new file mode 100644
index 0000000..1b1cb4d
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/nfa-state-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..a63858d
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/test-data
new file mode 100644
index 0000000..0d33392
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/node-id-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..bd1cd93
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/test-data
new file mode 100644
index 0000000..8746c6f
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/shared-buffer-edge-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/serializer-snapshot b/flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..bd6c9b2
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/test-data b/flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/test-data
new file mode 100644
index 0000000..c578971
Binary files /dev/null and b/flink-libraries/flink-cep/src/test/resources/shared-buffer-node-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..a13cc13
Binary files /dev/null and b/flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/test-data b/flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/test-data
new file mode 100644
index 0000000..beaca12
Binary files /dev/null and b/flink-libraries/flink-gelly-examples/src/test/resources/long-value-with-proper-hash-code-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..9fe3b55
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..7931995
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/byte-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..600c0c7
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..14a702b
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/char-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..820d582
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..3471def
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/double-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..ba5bfc7
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..fd12df0
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/float-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..17dcd43
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..88151a6
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/int-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..be36756
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..9e8d516
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/long-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..91c0992
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..b6a8ef3
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/null-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..01f646a
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..ed5ae2b
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/short-value-array-serializer-1.11/test-data differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/serializer-snapshot b/flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..2d09e95
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/serializer-snapshot differ
diff --git a/flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/test-data b/flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/test-data
new file mode 100644
index 0000000..40500f3
Binary files /dev/null and b/flink-libraries/flink-gelly/src/test/resources/string-value-array-serializer-1.11/test-data differ
diff --git a/flink-runtime/src/test/resources/arraylist-serializer-1.11/serializer-snapshot b/flink-runtime/src/test/resources/arraylist-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..2bc2cfe
Binary files /dev/null and b/flink-runtime/src/test/resources/arraylist-serializer-1.11/serializer-snapshot differ
diff --git a/flink-runtime/src/test/resources/arraylist-serializer-1.11/test-data b/flink-runtime/src/test/resources/arraylist-serializer-1.11/test-data
new file mode 100644
index 0000000..ac79859
Binary files /dev/null and b/flink-runtime/src/test/resources/arraylist-serializer-1.11/test-data differ
diff --git a/flink-runtime/src/test/resources/java-serializer-1.11/serializer-snapshot b/flink-runtime/src/test/resources/java-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..db1abe9
Binary files /dev/null and b/flink-runtime/src/test/resources/java-serializer-1.11/serializer-snapshot differ
diff --git a/flink-runtime/src/test/resources/java-serializer-1.11/test-data b/flink-runtime/src/test/resources/java-serializer-1.11/test-data
new file mode 100644
index 0000000..22a3c76
Binary files /dev/null and b/flink-runtime/src/test/resources/java-serializer-1.11/test-data differ
diff --git a/flink-runtime/src/test/resources/ttl-serializer-1.11/serializer-snapshot b/flink-runtime/src/test/resources/ttl-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..7668b61
Binary files /dev/null and b/flink-runtime/src/test/resources/ttl-serializer-1.11/serializer-snapshot differ
diff --git a/flink-runtime/src/test/resources/ttl-serializer-1.11/test-data b/flink-runtime/src/test/resources/ttl-serializer-1.11/test-data
new file mode 100644
index 0000000..5596986
Binary files /dev/null and b/flink-runtime/src/test/resources/ttl-serializer-1.11/test-data differ
diff --git a/flink-runtime/src/test/resources/void-namespace-serializer-1.11/serializer-snapshot b/flink-runtime/src/test/resources/void-namespace-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..9df815a
Binary files /dev/null and b/flink-runtime/src/test/resources/void-namespace-serializer-1.11/serializer-snapshot differ
diff --git a/flink-runtime/src/test/resources/void-namespace-serializer-1.11/test-data b/flink-runtime/src/test/resources/void-namespace-serializer-1.11/test-data
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/flink-runtime/src/test/resources/void-namespace-serializer-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/scala-case-class-serializer-1.11/serializer-snapshot b/flink-scala/src/test/resources/scala-case-class-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..b50a73e
Binary files /dev/null and b/flink-scala/src/test/resources/scala-case-class-serializer-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/scala-case-class-serializer-1.11/test-data b/flink-scala/src/test/resources/scala-case-class-serializer-1.11/test-data
new file mode 100644
index 0000000..ddb6ef5
Binary files /dev/null and b/flink-scala/src/test/resources/scala-case-class-serializer-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/scala-either-serializer-1.11/serializer-snapshot b/flink-scala/src/test/resources/scala-either-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..2258df5
Binary files /dev/null and b/flink-scala/src/test/resources/scala-either-serializer-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/scala-either-serializer-1.11/test-data b/flink-scala/src/test/resources/scala-either-serializer-1.11/test-data
new file mode 100644
index 0000000..70cd7bf
Binary files /dev/null and b/flink-scala/src/test/resources/scala-either-serializer-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/scala-enum-serializer-1.11/serializer-snapshot b/flink-scala/src/test/resources/scala-enum-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..4a467f2
Binary files /dev/null and b/flink-scala/src/test/resources/scala-enum-serializer-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/scala-enum-serializer-1.11/test-data b/flink-scala/src/test/resources/scala-enum-serializer-1.11/test-data
new file mode 100644
index 0000000..593f470
Binary files /dev/null and b/flink-scala/src/test/resources/scala-enum-serializer-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/scala-option-serializer-1.11/serializer-snapshot b/flink-scala/src/test/resources/scala-option-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..91808c1
Binary files /dev/null and b/flink-scala/src/test/resources/scala-option-serializer-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/scala-option-serializer-1.11/test-data b/flink-scala/src/test/resources/scala-option-serializer-1.11/test-data
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/flink-scala/src/test/resources/scala-option-serializer-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/scala-try-serializer-1.11/serializer-snapshot b/flink-scala/src/test/resources/scala-try-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..f5ad2ec
Binary files /dev/null and b/flink-scala/src/test/resources/scala-try-serializer-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/scala-try-serializer-1.11/test-data b/flink-scala/src/test/resources/scala-try-serializer-1.11/test-data
new file mode 100644
index 0000000..a573bd1
Binary files /dev/null and b/flink-scala/src/test/resources/scala-try-serializer-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-bitset-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-bitset-1.11/serializer-snapshot
new file mode 100644
index 0000000..03d7937
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-bitset-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-bitset-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-bitset-1.11/test-data
new file mode 100644
index 0000000..5eb5107
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-bitset-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/serializer-snapshot
new file mode 100644
index 0000000..4cd4798
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/test-data
new file mode 100644
index 0000000..ca6108c
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-indexedseq-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/serializer-snapshot
new file mode 100644
index 0000000..290d949
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/test-data
new file mode 100644
index 0000000..3b0d0b0
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-linearseq-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-map-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-map-1.11/serializer-snapshot
new file mode 100644
index 0000000..b23cb07
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-map-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-map-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-map-1.11/test-data
new file mode 100644
index 0000000..f209ff5
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-map-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/serializer-snapshot
new file mode 100644
index 0000000..cec3314
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/test-data
new file mode 100644
index 0000000..ca6108c
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-mutable-list-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-seq-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-seq-1.11/serializer-snapshot
new file mode 100644
index 0000000..bac0255
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-seq-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-seq-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-seq-1.11/test-data
new file mode 100644
index 0000000..ca6108c
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-seq-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-set-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-set-1.11/serializer-snapshot
new file mode 100644
index 0000000..d90d197
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-set-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-set-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-set-1.11/test-data
new file mode 100644
index 0000000..3b0d0b0
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-set-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/serializer-snapshot
new file mode 100644
index 0000000..25284ed
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/test-data
new file mode 100644
index 0000000..7adaf00
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-with-case-class-1.11/test-data differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/serializer-snapshot b/flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/serializer-snapshot
new file mode 100644
index 0000000..55d4877
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/serializer-snapshot differ
diff --git a/flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/test-data b/flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/test-data
new file mode 100644
index 0000000..ebc7236
Binary files /dev/null and b/flink-scala/src/test/resources/traversable-serializer-with-pojo-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..4026c41
Binary files /dev/null and b/flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/test-data b/flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/test-data
new file mode 100644
index 0000000..7072021
Binary files /dev/null and b/flink-streaming-java/src/test/resources/buffer-entry-serializer-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/global-window-serializer-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/global-window-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..ac44c4c
Binary files /dev/null and b/flink-streaming-java/src/test/resources/global-window-serializer-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/global-window-serializer-1.11/test-data b/flink-streaming-java/src/test/resources/global-window-serializer-1.11/test-data
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/flink-streaming-java/src/test/resources/global-window-serializer-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/stream-element-serializer-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/stream-element-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..2a9a9ae
Binary files /dev/null and b/flink-streaming-java/src/test/resources/stream-element-serializer-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/stream-element-serializer-1.11/test-data b/flink-streaming-java/src/test/resources/stream-element-serializer-1.11/test-data
new file mode 100644
index 0000000..3022a08
Binary files /dev/null and b/flink-streaming-java/src/test/resources/stream-element-serializer-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/time-window-serializer-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/time-window-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..7d2b4b6
Binary files /dev/null and b/flink-streaming-java/src/test/resources/time-window-serializer-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/time-window-serializer-1.11/test-data b/flink-streaming-java/src/test/resources/time-window-serializer-1.11/test-data
new file mode 100644
index 0000000..bd72696
Binary files /dev/null and b/flink-streaming-java/src/test/resources/time-window-serializer-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/timer-serializer-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/timer-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..67e3a08
Binary files /dev/null and b/flink-streaming-java/src/test/resources/timer-serializer-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/timer-serializer-1.11/test-data b/flink-streaming-java/src/test/resources/timer-serializer-1.11/test-data
new file mode 100644
index 0000000..5e9827d
Binary files /dev/null and b/flink-streaming-java/src/test/resources/timer-serializer-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..18a2701
Binary files /dev/null and b/flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/test-data b/flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/test-data
new file mode 100644
index 0000000..6803ec8
Binary files /dev/null and b/flink-streaming-java/src/test/resources/two-phase-commit-sink-state-serializer-1.11/test-data differ
diff --git a/flink-streaming-java/src/test/resources/union-serializer-one-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/union-serializer-one-1.11/serializer-snapshot
new file mode 100644
index 0000000..8af8c71
Binary files /dev/null and b/flink-streaming-java/src/test/resources/union-serializer-one-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/union-serializer-one-1.11/test-data b/flink-streaming-java/src/test/resources/union-serializer-one-1.11/test-data
new file mode 100644
index 0000000..9a2dda7
--- /dev/null
+++ b/flink-streaming-java/src/test/resources/union-serializer-one-1.11/test-data
@@ -0,0 +1 @@
+flink
\ No newline at end of file
diff --git a/flink-streaming-java/src/test/resources/union-serializer-two-1.11/serializer-snapshot b/flink-streaming-java/src/test/resources/union-serializer-two-1.11/serializer-snapshot
new file mode 100644
index 0000000..8af8c71
Binary files /dev/null and b/flink-streaming-java/src/test/resources/union-serializer-two-1.11/serializer-snapshot differ
diff --git a/flink-streaming-java/src/test/resources/union-serializer-two-1.11/test-data b/flink-streaming-java/src/test/resources/union-serializer-two-1.11/test-data
new file mode 100644
index 0000000..564b7c9
Binary files /dev/null and b/flink-streaming-java/src/test/resources/union-serializer-two-1.11/test-data differ
diff --git a/flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/serializer-snapshot b/flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..a890302
Binary files /dev/null and b/flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/serializer-snapshot differ
diff --git a/flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/test-data b/flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/test-data
new file mode 100644
index 0000000..0dc7a2b
Binary files /dev/null and b/flink-table/flink-table-planner/src/test/resources/list-view-serializer-1.11/test-data differ
diff --git a/flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/serializer-snapshot b/flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/serializer-snapshot
new file mode 100644
index 0000000..8841658
Binary files /dev/null and b/flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/serializer-snapshot differ
diff --git a/flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/test-data b/flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/test-data
new file mode 100644
index 0000000..6ad644f
Binary files /dev/null and b/flink-table/flink-table-planner/src/test/resources/map-view-serializer-1.11/test-data differ


[flink] 06/42: [FLINK-13632] Port TtlSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 a38cbb0bc548f2b41f7b5b7c26fdcfdd41a9df04
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Fri Jan 17 16:17:51 2020 +0100

    [FLINK-13632] Port TtlSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../avro/typeutils/AvroSerializerUpgradeTest.java  |   2 +-
 .../state/ttl/TtlSerializerStateMigrationTest.java |  60 ------------
 .../state/ttl/TtlSerializerUpgradeTest.java        | 105 +++++++++++++++++++++
 .../flink/runtime/state/ttl/TtlValueMatchers.java  |  67 +++++++++++++
 .../test/resources/flink-1.6-ttl-serializer-data   | Bin 230 -> 0 bytes
 .../resources/flink-1.6-ttl-serializer-snapshot    | Bin 1753 -> 0 bytes
 .../test/resources/flink-1.7-ttl-serializer-data   | Bin 230 -> 0 bytes
 .../resources/flink-1.7-ttl-serializer-snapshot    | Bin 1763 -> 0 bytes
 8 files changed, 173 insertions(+), 61 deletions(-)

diff --git a/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java b/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java
index f647c92..e897e8a 100644
--- a/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java
+++ b/flink-formats/flink-avro/src/test/java/org/apache/flink/formats/avro/typeutils/AvroSerializerUpgradeTest.java
@@ -49,7 +49,7 @@ public class AvroSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Obj
 	@Parameterized.Parameters(name = "Test Specification = {0}")
 	public static Collection<TestSpecification<?, ?>> testSpecifications() throws Exception {
 		ArrayList<TestSpecification<?, ?>> testSpecifications = new ArrayList<>();
-		for (MigrationVersion migrationVersion : migrationVersions) {
+		for (MigrationVersion migrationVersion : MIGRATION_VERSIONS) {
 			testSpecifications.add(
 					new TestSpecification<>(
 							"generic-avro-serializer",
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerStateMigrationTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerStateMigrationTest.java
deleted file mode 100644
index 87ab396..0000000
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerStateMigrationTest.java
+++ /dev/null
@@ -1,60 +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.runtime.state.ttl;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.LongSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.runtime.state.ttl.TtlStateFactory.TtlSerializer;
-import org.apache.flink.runtime.state.ttl.TtlStateFactory.TtlSerializerSnapshot;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * State migration test for {@link TtlSerializerStateMigrationTest}.
- */
-@RunWith(Parameterized.class)
-public class TtlSerializerStateMigrationTest extends TypeSerializerSnapshotMigrationTestBase<TtlValue<String>> {
-
-	private static final String SPEC_NAME = "ttl-serializer";
-
-	public TtlSerializerStateMigrationTest(TestSpecification<TtlValue<String>> 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(
-			SPEC_NAME,
-			TtlSerializer.class,
-			TtlSerializerSnapshot.class,
-			() -> new TtlSerializer<>(LongSerializer.INSTANCE, StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
-
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerUpgradeTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerUpgradeTest.java
new file mode 100644
index 0000000..edcf8be
--- /dev/null
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlSerializerUpgradeTest.java
@@ -0,0 +1,105 @@
+/*
+ * 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.runtime.state.ttl;
+
+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.common.typeutils.base.LongSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.runtime.state.ttl.TtlStateFactory.TtlSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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.apache.flink.runtime.state.ttl.TtlValueMatchers.ttlValue;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * State migration test for {@link TtlSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class TtlSerializerUpgradeTest
+		extends TypeSerializerUpgradeTestBase<TtlValue<String>, TtlValue<String>> {
+
+	public TtlSerializerUpgradeTest(
+			TestSpecification<TtlValue<String>, TtlValue<String>> 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<>(
+							"ttl-serializer",
+							migrationVersion,
+							TtlSerializerSetup.class,
+							TtlSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "ttl-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	public static final class TtlSerializerSetup
+			implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TtlValue<String>> {
+
+		@Override
+		public TypeSerializer<TtlValue<String>> createPriorSerializer() {
+			return new TtlSerializer<>(LongSerializer.INSTANCE, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public TtlValue<String> createTestData() {
+			return new TtlValue<>("hello Gordon", 13);
+		}
+	}
+
+	public static final class TtlSerializerVerifier
+			implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TtlValue<String>> {
+
+		@Override
+		public TypeSerializer<TtlValue<String>> createUpgradedSerializer() {
+			return new TtlSerializer<>(LongSerializer.INSTANCE, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<TtlValue<String>> testDataMatcher() {
+			return ttlValue(is("hello Gordon"), is(13L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TtlValue<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
+
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlValueMatchers.java b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlValueMatchers.java
new file mode 100644
index 0000000..d1d1269
--- /dev/null
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/state/ttl/TtlValueMatchers.java
@@ -0,0 +1,67 @@
+/*
+ * 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.runtime.state.ttl;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeDiagnosingMatcher;
+
+/**
+ * {@link Matcher Matchers} for {@link TtlValue}.
+ */
+public class TtlValueMatchers {
+
+	/**
+	 * Creates a matcher that matches when the given value and timestamp matchers match the value
+	 * and timestamp in a {@link TtlValue};
+	 */
+	public static <T> Matcher<TtlValue<T>> ttlValue(
+			Matcher<T> valueMatcher,
+			Matcher<Long> timestampMatcher) {
+		return new IsTtlValue<>(valueMatcher, timestampMatcher);
+	}
+
+	static class IsTtlValue<T> extends TypeSafeDiagnosingMatcher<TtlValue<T>> {
+		private final Matcher<T> valueMatcher;
+		private final Matcher<Long> timestampMatcher;
+
+		public IsTtlValue(Matcher<T> valueMatcher, Matcher<Long> timestampMatcher) {
+			this.valueMatcher = valueMatcher;
+			this.timestampMatcher = timestampMatcher;
+		}
+
+		@Override
+		protected boolean matchesSafely(TtlValue<T> item, Description mismatchDescription) {
+			mismatchDescription.appendText("TtlValue with value ");
+			mismatchDescription.appendValue(item.getUserValue());
+			mismatchDescription.appendText(" with timestamp ");
+			mismatchDescription.appendValue(item.getLastAccessTimestamp());
+			return valueMatcher.matches(item.getUserValue()) &&
+					timestampMatcher.matches(item.getLastAccessTimestamp());
+		}
+
+		@Override
+		public void describeTo(Description description) {
+			description.appendText("TtlValue with value ");
+			valueMatcher.describeTo(description);
+			description.appendText(" with timestamp ");
+			timestampMatcher.describeTo(description);
+		}
+	}
+}
diff --git a/flink-runtime/src/test/resources/flink-1.6-ttl-serializer-data b/flink-runtime/src/test/resources/flink-1.6-ttl-serializer-data
deleted file mode 100644
index 9d156ca..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-ttl-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.6-ttl-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.6-ttl-serializer-snapshot
deleted file mode 100644
index 0d3a8a0..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.6-ttl-serializer-snapshot and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-ttl-serializer-data b/flink-runtime/src/test/resources/flink-1.7-ttl-serializer-data
deleted file mode 100644
index 16c2bda..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-ttl-serializer-data and /dev/null differ
diff --git a/flink-runtime/src/test/resources/flink-1.7-ttl-serializer-snapshot b/flink-runtime/src/test/resources/flink-1.7-ttl-serializer-snapshot
deleted file mode 100644
index 74aca45..0000000
Binary files a/flink-runtime/src/test/resources/flink-1.7-ttl-serializer-snapshot and /dev/null differ


[flink] 22/42: [FLINK-13632] Port UnionSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 b139cb7df0c17bb275a6bac64c1317c93d5fe5a4
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 11:46:43 2020 +0800

    [FLINK-13632] Port UnionSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../streaming/api/datastream/CoGroupedStreams.java |  20 ++-
 .../datastream/UnionSerializerMigrationTest.java   |  67 ---------
 .../api/datastream/UnionSerializerUpgradeTest.java | 154 +++++++++++++++++++++
 .../test/resources/flink-1.6-union-serializer-data |   1 -
 .../resources/flink-1.6-union-serializer-snapshot  | Bin 1393 -> 0 bytes
 .../test/resources/flink-1.7-union-serializer-data |   1 -
 .../resources/flink-1.7-union-serializer-snapshot  | Bin 1403 -> 0 bytes
 7 files changed, 173 insertions(+), 70 deletions(-)

diff --git a/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/CoGroupedStreams.java b/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/CoGroupedStreams.java
index 3c30bb9..d60a465 100644
--- a/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/CoGroupedStreams.java
+++ b/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/CoGroupedStreams.java
@@ -50,6 +50,7 @@ import org.apache.flink.util.Preconditions;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import static java.util.Objects.requireNonNull;
 
@@ -425,6 +426,20 @@ public class CoGroupedStreams<T1, T2> {
 		public static <T1, T2> TaggedUnion<T1, T2> two(T2 two) {
 			return new TaggedUnion<>(null, two);
 		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (obj == this) {
+				return true;
+			}
+
+			if (!(obj instanceof TaggedUnion)) {
+				return false;
+			}
+
+			TaggedUnion other = (TaggedUnion) obj;
+			return Objects.equals(one, other.one) && Objects.equals(two, other.two);
+		}
 	}
 
 	private static class UnionTypeInfo<T1, T2> extends TypeInformation<TaggedUnion<T1, T2>> {
@@ -503,9 +518,12 @@ public class CoGroupedStreams<T1, T2> {
 		}
 	}
 
+	/**
+	 * {@link TypeSerializer} for {@link TaggedUnion}.
+	 */
 	@VisibleForTesting
 	@Internal
-	static class UnionSerializer<T1, T2> extends TypeSerializer<TaggedUnion<T1, T2>> {
+	public static class UnionSerializer<T1, T2> extends TypeSerializer<TaggedUnion<T1, T2>> {
 		private static final long serialVersionUID = 1L;
 
 		private final TypeSerializer<T1> oneSerializer;
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerMigrationTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerMigrationTest.java
deleted file mode 100644
index 2b85d7e..0000000
--- a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerMigrationTest.java
+++ /dev/null
@@ -1,67 +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.streaming.api.datastream;
-
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.LongSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.streaming.api.datastream.CoGroupedStreams.TaggedUnion;
-import org.apache.flink.streaming.api.datastream.CoGroupedStreams.UnionSerializer;
-import org.apache.flink.streaming.api.datastream.CoGroupedStreams.UnionSerializerSnapshot;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-/**
- * State migration tests for {@link UnionSerializer}.
- */
-@RunWith(Parameterized.class)
-public class UnionSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<TaggedUnion<String, Long>> {
-
-	public UnionSerializerMigrationTest(TestSpecification<TaggedUnion<String, Long>> 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(
-			"union-serializer",
-			UnionSerializer.class,
-			UnionSerializerSnapshot.class,
-			UnionSerializerMigrationTest::stringLongRowSupplier);
-
-		return testSpecifications.get();
-	}
-
-	private static TypeSerializer<TaggedUnion<String, Long>> stringLongRowSupplier() {
-		return new UnionSerializer<>(StringSerializer.INSTANCE, LongSerializer.INSTANCE);
-	}
-
-}
-
-
-
diff --git a/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerUpgradeTest.java b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerUpgradeTest.java
new file mode 100644
index 0000000..a767797
--- /dev/null
+++ b/flink-streaming-java/src/test/java/org/apache/flink/streaming/api/datastream/UnionSerializerUpgradeTest.java
@@ -0,0 +1,154 @@
+/*
+ * 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.streaming.api.datastream;
+
+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.common.typeutils.base.LongSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.streaming.api.datastream.CoGroupedStreams.TaggedUnion;
+import org.apache.flink.streaming.api.datastream.CoGroupedStreams.UnionSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+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;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link UnionSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class UnionSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<TaggedUnion<String, Long>, TaggedUnion<String, Long>> {
+
+	public UnionSerializerUpgradeTest(TestSpecification<TaggedUnion<String, Long>, TaggedUnion<String, Long>> 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<>(
+					"union-serializer-one",
+					migrationVersion,
+					UnionSerializerOneSetup.class,
+					UnionSerializerOneVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					"union-serializer-two",
+					migrationVersion,
+					UnionSerializerTwoSetup.class,
+					UnionSerializerTwoVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	private static TypeSerializer<TaggedUnion<String, Long>> stringLongRowSupplier() {
+		return new UnionSerializer<>(StringSerializer.INSTANCE, LongSerializer.INSTANCE);
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "union-serializer-for-TaggedUnion.one"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class UnionSerializerOneSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TaggedUnion<String, Long>> {
+		@Override
+		public TypeSerializer<TaggedUnion<String, Long>> createPriorSerializer() {
+			return new UnionSerializer<>(StringSerializer.INSTANCE, LongSerializer.INSTANCE);
+		}
+
+		@Override
+		public TaggedUnion<String, Long> createTestData() {
+			return TaggedUnion.one("flink");
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class UnionSerializerOneVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TaggedUnion<String, Long>> {
+		@Override
+		public TypeSerializer<TaggedUnion<String, Long>> createUpgradedSerializer() {
+			return new UnionSerializer<>(StringSerializer.INSTANCE, LongSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<TaggedUnion<String, Long>> testDataMatcher() {
+			return is(TaggedUnion.one("flink"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TaggedUnion<String, Long>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "union-serializer-for-TaggedUnion.two"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class UnionSerializerTwoSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TaggedUnion<String, Long>> {
+		@Override
+		public TypeSerializer<TaggedUnion<String, Long>> createPriorSerializer() {
+			return new UnionSerializer<>(StringSerializer.INSTANCE, LongSerializer.INSTANCE);
+		}
+
+		@Override
+		public TaggedUnion<String, Long> createTestData() {
+			return TaggedUnion.two(23456L);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class UnionSerializerTwoVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TaggedUnion<String, Long>> {
+		@Override
+		public TypeSerializer<TaggedUnion<String, Long>> createUpgradedSerializer() {
+			return new UnionSerializer<>(StringSerializer.INSTANCE, LongSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<TaggedUnion<String, Long>> testDataMatcher() {
+			return is(TaggedUnion.two(23456L));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TaggedUnion<String, Long>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
+
+
+
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-union-serializer-data b/flink-streaming-java/src/test/resources/flink-1.6-union-serializer-data
deleted file mode 100644
index cb29a99..0000000
--- a/flink-streaming-java/src/test/resources/flink-1.6-union-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-53778725243338537787315927955377873178348653778731961974537787321387515377873232740853778732510096537787327007985377873288617553778733069270
\ No newline at end of file
diff --git a/flink-streaming-java/src/test/resources/flink-1.6-union-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.6-union-serializer-snapshot
deleted file mode 100644
index 178d007..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.6-union-serializer-snapshot and /dev/null differ
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-union-serializer-data b/flink-streaming-java/src/test/resources/flink-1.7-union-serializer-data
deleted file mode 100644
index d2f04fd..0000000
--- a/flink-streaming-java/src/test/resources/flink-1.7-union-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-53711258937562537112614539985371126164162753711261837231537112620123325371126218543153711262413321537112625282785371126263382753711262735393
\ No newline at end of file
diff --git a/flink-streaming-java/src/test/resources/flink-1.7-union-serializer-snapshot b/flink-streaming-java/src/test/resources/flink-1.7-union-serializer-snapshot
deleted file mode 100644
index 747eb82..0000000
Binary files a/flink-streaming-java/src/test/resources/flink-1.7-union-serializer-snapshot and /dev/null differ


[flink] 17/42: [FLINK-13632] Port KryoSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 c99e5229f0aa50fceb991da286d5126a736403f4
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Fri Jan 31 16:55:19 2020 +0100

    [FLINK-13632] Port KryoSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../runtime/kryo/KryoPojosForMigrationTests.java   |  18 ++
 .../runtime/kryo/KryoSerializerUpgradeTest.java    | 272 +++++++++++++++++++++
 .../runtime/kryo/KryoSnapshotMigrationTest.java    | 146 -----------
 .../flink-1.6-kryo-type-serializer-custom-data     |   1 -
 .../flink-1.6-kryo-type-serializer-custom-snapshot | Bin 4808 -> 0 bytes
 .../resources/flink-1.6-kryo-type-serializer-data  |   1 -
 ...link-1.6-kryo-type-serializer-empty-config-data | Bin 180 -> 0 bytes
 ...-1.6-kryo-type-serializer-empty-config-snapshot | Bin 2759 -> 0 bytes
 .../flink-1.6-kryo-type-serializer-snapshot        | Bin 3854 -> 0 bytes
 .../flink-1.7-kryo-type-serializer-custom-data     |   1 -
 .../flink-1.7-kryo-type-serializer-custom-snapshot | Bin 4796 -> 0 bytes
 .../resources/flink-1.7-kryo-type-serializer-data  |   1 -
 ...link-1.7-kryo-type-serializer-empty-config-data | Bin 892 -> 0 bytes
 ...-1.7-kryo-type-serializer-empty-config-snapshot | Bin 2747 -> 0 bytes
 .../flink-1.7-kryo-type-serializer-snapshot        | Bin 3842 -> 0 bytes
 15 files changed, 290 insertions(+), 150 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoPojosForMigrationTests.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoPojosForMigrationTests.java
index c7b6cb0..efe15da 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoPojosForMigrationTests.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoPojosForMigrationTests.java
@@ -24,6 +24,7 @@ import com.esotericsoftware.kryo.io.Input;
 import com.esotericsoftware.kryo.io.Output;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * POJOS needed for {@link KryoPojosForMigrationTests}.
@@ -44,6 +45,23 @@ public class KryoPojosForMigrationTests {
 		public String getName() {
 			return name;
 		}
+
+		@Override
+		public boolean equals(Object o) {
+			if (this == o) {
+				return true;
+			}
+			if (o == null || getClass() != o.getClass()) {
+				return false;
+			}
+			Dog dog = (Dog) o;
+			return Objects.equals(name, dog.name);
+		}
+
+		@Override
+		public int hashCode() {
+			return Objects.hash(name);
+		}
 	}
 
 	public static class Cat extends Animal {
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerUpgradeTest.java
new file mode 100644
index 0000000..5e718d4
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerUpgradeTest.java
@@ -0,0 +1,272 @@
+/*
+ * 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.java.typeutils.runtime.kryo;
+
+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.runtime.kryo.KryoPojosForMigrationTests.Animal;
+import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Cat;
+import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Dog;
+import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Parrot;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import com.esotericsoftware.kryo.serializers.DefaultSerializers;
+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.apache.flink.api.common.typeutils.TypeSerializerMatchers.hasSameCompatibilityAs;
+import static org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility.compatibleWithReconfiguredSerializer;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Tests migrations for {@link KryoSerializerSnapshot}.
+ */
+@SuppressWarnings("WeakerAccess")
+@RunWith(Parameterized.class)
+public class KryoSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Object, Object> {
+
+	public KryoSerializerUpgradeTest(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<>(
+							"kryo-type-serializer-empty-config",
+							migrationVersion,
+							KryoTypeSerializerEmptyConfigSetup.class,
+							KryoTypeSerializerEmptyConfigVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"kryo-type-serializer-unrelated-config-after-restore",
+							migrationVersion,
+							KryoTypeSerializerEmptyConfigSetup.class,
+							KryoTypeSerializerWithUnrelatedConfigVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"kryo-type-serializer-changed-registration-order",
+							migrationVersion,
+							KryoTypeSerializerChangedRegistrationOrderSetup.class,
+							KryoTypeSerializerChangedRegistrationOrderVerifier.class));
+			testSpecifications.add(
+					new TestSpecification<>(
+							"kryo-custom-type-serializer-changed-registration-order",
+							migrationVersion,
+							KryoCustomTypeSerializerChangedRegistrationOrderSetup.class,
+							KryoCustomTypeSerializerChangedRegistrationOrderVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "kryo-type-serializer-empty-config"
+	// ----------------------------------------------------------------------------------------------
+
+	public static final class KryoTypeSerializerEmptyConfigSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createPriorSerializer() {
+			return new KryoSerializer<>(Animal.class, new ExecutionConfig());
+		}
+
+		@Override
+		public Animal createTestData() {
+			return new Dog("Hasso");
+		}
+	}
+
+	public static final class KryoTypeSerializerEmptyConfigVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createUpgradedSerializer() {
+			return new KryoSerializer<>(Animal.class, new ExecutionConfig());
+		}
+
+		@Override
+		public Matcher<Animal> testDataMatcher() {
+			return is(new Dog("Hasso"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Animal>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "kryo-type-serializer-empty-config-then-some-config"
+	// ----------------------------------------------------------------------------------------------
+
+	public static final class KryoTypeSerializerWithUnrelatedConfigVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createUpgradedSerializer() {
+			ExecutionConfig executionConfig = new ExecutionConfig();
+			executionConfig.registerKryoType(DummyClassOne.class);
+			executionConfig.registerTypeWithKryoSerializer(
+					DummyClassTwo.class,
+					DefaultSerializers.StringSerializer.class);
+
+			return new KryoSerializer<>(Animal.class, executionConfig);
+		}
+
+		@Override
+		public Matcher<Animal> testDataMatcher() {
+			return is(new Dog("Hasso"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Animal>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return hasSameCompatibilityAs(compatibleWithReconfiguredSerializer(new KryoSerializer<>(
+					Animal.class,
+					new ExecutionConfig())));
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "kryo-type-serializer-changed-registration-order"
+	// ----------------------------------------------------------------------------------------------
+
+	public static final class KryoTypeSerializerChangedRegistrationOrderSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createPriorSerializer() {
+			ExecutionConfig executionConfig = new ExecutionConfig();
+			executionConfig.registerKryoType(Dog.class);
+			executionConfig.registerKryoType(Cat.class);
+			executionConfig.registerKryoType(Parrot.class);
+
+			return new KryoSerializer<>(Animal.class, executionConfig);
+		}
+
+		@Override
+		public Animal createTestData() {
+			return new Dog("Hasso");
+		}
+	}
+
+	public static final class KryoTypeSerializerChangedRegistrationOrderVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createUpgradedSerializer() {
+			ExecutionConfig executionConfig = new ExecutionConfig();
+			executionConfig.registerKryoType(DummyClassOne.class);
+			executionConfig.registerKryoType(Dog.class);
+			executionConfig.registerKryoType(DummyClassTwo.class);
+			executionConfig.registerKryoType(Cat.class);
+			executionConfig.registerKryoType(Parrot.class);
+
+			return new KryoSerializer<>(Animal.class, executionConfig);
+		}
+
+		@Override
+		public Matcher<Animal> testDataMatcher() {
+			return is(new Dog("Hasso"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Animal>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return hasSameCompatibilityAs(compatibleWithReconfiguredSerializer(new KryoSerializer<>(
+					Animal.class,
+					new ExecutionConfig())));
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "kryo-custom-type-serializer-changed-registration-order"
+	// ----------------------------------------------------------------------------------------------
+
+	public static final class KryoCustomTypeSerializerChangedRegistrationOrderSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createPriorSerializer() {
+			ExecutionConfig executionConfig = new ExecutionConfig();
+			executionConfig.registerTypeWithKryoSerializer(
+					Dog.class,
+					KryoPojosForMigrationTests.DogKryoSerializer.class);
+			executionConfig.registerKryoType(Cat.class);
+			executionConfig.registerTypeWithKryoSerializer(
+					Parrot.class,
+					KryoPojosForMigrationTests.ParrotKryoSerializer.class);
+
+			return new KryoSerializer<>(Animal.class, executionConfig);
+		}
+
+		@Override
+		public Animal createTestData() {
+			return new Dog("Hasso");
+		}
+	}
+
+	public static final class KryoCustomTypeSerializerChangedRegistrationOrderVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Animal> {
+
+		@Override
+		public TypeSerializer<Animal> createUpgradedSerializer() {
+			ExecutionConfig executionConfig = new ExecutionConfig();
+			executionConfig.registerKryoType(DummyClassOne.class);
+			executionConfig.registerTypeWithKryoSerializer(
+					Dog.class,
+					KryoPojosForMigrationTests.DogV2KryoSerializer.class);
+			executionConfig.registerKryoType(DummyClassTwo.class);
+			executionConfig.registerKryoType(Cat.class);
+			executionConfig.registerTypeWithKryoSerializer(
+					Parrot.class,
+					KryoPojosForMigrationTests.ParrotKryoSerializer.class);
+
+			return new KryoSerializer<>(Animal.class, executionConfig);
+		}
+
+		@Override
+		public Matcher<Animal> testDataMatcher() {
+			return is(new Dog("Hasso"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Animal>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return hasSameCompatibilityAs(compatibleWithReconfiguredSerializer(new KryoSerializer<>(
+					Animal.class,
+					new ExecutionConfig())));
+		}
+	}
+
+	/**
+	 * Dummy class to be registered in the tests.
+	 */
+	public static final class DummyClassOne {
+
+	}
+
+	/**
+	 * Dummy class to be registered in the tests.
+	 */
+	public static final class DummyClassTwo {
+
+	}
+}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSnapshotMigrationTest.java
deleted file mode 100644
index a982eca..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSnapshotMigrationTest.java
+++ /dev/null
@@ -1,146 +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.java.typeutils.runtime.kryo;
-
-import org.apache.flink.api.common.ExecutionConfig;
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Animal;
-import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Cat;
-import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Dog;
-import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.DogV2KryoSerializer;
-import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.Parrot;
-import org.apache.flink.api.java.typeutils.runtime.kryo.KryoPojosForMigrationTests.ParrotKryoSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import com.esotericsoftware.kryo.serializers.DefaultSerializers.StringSerializer;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.function.Supplier;
-
-import static org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility.compatibleAsIs;
-import static org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility.compatibleWithReconfiguredSerializer;
-
-/**
- * Tests migrations for {@link KryoSerializerSnapshot}.
- */
-@SuppressWarnings("WeakerAccess")
-@RunWith(Parameterized.class)
-public class KryoSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<KryoPojosForMigrationTests> {
-
-	public KryoSnapshotMigrationTest(TestSpecification<KryoPojosForMigrationTests> testSpecification) {
-		super(testSpecification);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Parameterized.Parameters(name = "Test Specification = {0}")
-	public static Collection<Object[]> testSpecifications() {
-
-		List<Object[]> specs = new ArrayList<>();
-
-		add(specs, "kryo-type-serializer-empty-config",
-			() -> new KryoSerializer<>(Animal.class, new ExecutionConfig()));
-
-		add(specs, "kryo-type-serializer-empty-config", () -> {
-
-			ExecutionConfig executionConfig = new ExecutionConfig();
-			executionConfig.registerKryoType(DummyClassOne.class);
-			executionConfig.registerTypeWithKryoSerializer(DummyClassTwo.class, StringSerializer.class);
-
-			return new KryoSerializer<>(Animal.class, executionConfig);
-		}, COMPATIBLE_WITH_RECONFIGURED);
-
-		add(specs, "kryo-type-serializer", () -> {
-
-			ExecutionConfig executionConfig = new ExecutionConfig();
-			executionConfig.registerKryoType(DummyClassOne.class);
-			executionConfig.registerKryoType(Dog.class);
-			executionConfig.registerKryoType(DummyClassTwo.class);
-			executionConfig.registerKryoType(Cat.class);
-			executionConfig.registerKryoType(Parrot.class);
-
-			return new KryoSerializer<>(Animal.class, executionConfig);
-		}, COMPATIBLE_WITH_RECONFIGURED);
-
-		add(specs, "kryo-type-serializer-custom", () -> {
-			ExecutionConfig executionConfig = new ExecutionConfig();
-			executionConfig.registerKryoType(DummyClassOne.class);
-			executionConfig.registerTypeWithKryoSerializer(Dog.class, DogV2KryoSerializer.class);
-			executionConfig.registerKryoType(DummyClassTwo.class);
-			executionConfig.registerKryoType(Cat.class);
-			executionConfig.registerTypeWithKryoSerializer(Parrot.class, ParrotKryoSerializer.class);
-
-			return new KryoSerializer<>(Animal.class, executionConfig);
-		}, COMPATIBLE_WITH_RECONFIGURED);
-
-		return specs;
-	}
-
-	private static void add(List<Object[]> all, String name, Supplier<TypeSerializer<Animal>> supplier) {
-		add(all, name, supplier, compatibleAsIs());
-	}
-
-	private static void add(List<Object[]> all,
-							String name, Supplier<TypeSerializer<Animal>> supplier,
-							TypeSerializerSchemaCompatibility<Animal> expected) {
-
-		TestSpecification<Animal> flink16 = TestSpecification.<Animal>builder(
-			MigrationVersion.v1_6 + " " + name,
-			KryoSerializer.class,
-			KryoSerializerSnapshot.class,
-			MigrationVersion.v1_6)
-			.withNewSerializerProvider(supplier, expected)
-			.withSnapshotDataLocation("flink-1.6-" + name + "-snapshot")
-			.withTestData("flink-1.6-" + name + "-data", 2);
-
-		TestSpecification<Animal> flink17 = TestSpecification.<Animal>builder(
-			MigrationVersion.v1_7 + " " + name,
-			KryoSerializer.class,
-			KryoSerializerSnapshot.class,
-			MigrationVersion.v1_7)
-			.withNewSerializerProvider(supplier, expected)
-			.withSnapshotDataLocation("flink-1.7-" + name + "-snapshot")
-			.withTestData("flink-1.7-" + name + "-data", 2);
-
-		all.add(new Object[]{flink16});
-		all.add(new Object[]{flink17});
-	}
-
-	/**
-	 * Dummy class to be registered in the tests.
-	 */
-	public static final class DummyClassOne {
-
-	}
-
-	/**
-	 * Dummy class to be registered in the tests.
-	 */
-	public static final class DummyClassTwo {
-
-	}
-
-	private static final TypeSerializerSchemaCompatibility<Animal> COMPATIBLE_WITH_RECONFIGURED =
-		compatibleWithReconfiguredSerializer(new KryoSerializer<>(Animal.class, new ExecutionConfig()));
-}
diff --git a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-data b/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-data
deleted file mode 100644
index b273ce4..0000000
--- a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-data
+++ /dev/null
@@ -1 +0,0 @@
-Scottis�Bobb�Scottis�Scottis�Scottis�Scottis�Scottis�Scottis�Scottis�Elvi�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-snapshot b/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-snapshot
deleted file mode 100644
index de61118..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-custom-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-data b/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-data
deleted file mode 100644
index 43cdb64..0000000
--- a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-PHome�Bob�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-data b/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-data
deleted file mode 100644
index 0c66b7d..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-snapshot b/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-snapshot
deleted file mode 100644
index eff068b..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-empty-config-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-snapshot
deleted file mode 100644
index 2af53a7..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-kryo-type-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-data b/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-data
deleted file mode 100644
index b273ce4..0000000
--- a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-data
+++ /dev/null
@@ -1 +0,0 @@
-Scottis�Bobb�Scottis�Scottis�Scottis�Scottis�Scottis�Scottis�Scottis�Elvi�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-snapshot b/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-snapshot
deleted file mode 100644
index 4098c43..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-custom-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-data b/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-data
deleted file mode 100644
index d56bc15..0000000
--- a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-data
+++ /dev/null
@@ -1 +0,0 @@
-PHome�Bob�Bob�Bob�Bob�Bob�Bob�Bob�Bob�Bob�
\ No newline at end of file
diff --git a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-data b/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-data
deleted file mode 100644
index 62aa733..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-snapshot b/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-snapshot
deleted file mode 100644
index 87f7ba9..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-empty-config-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-snapshot
deleted file mode 100644
index 8117ac9..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-kryo-type-serializer-snapshot and /dev/null differ


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

Posted by al...@apache.org.
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


[flink] 32/42: [FLINK-13632] Port ScalaEitherSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 12b6ba92c7547e66e540e5662a96df6249cf2ae1
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 21:17:54 2020 +0800

    [FLINK-13632] Port ScalaEitherSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 ...ScalaEitherSerializerSnapshotMigrationTest.java |  59 ------------
 .../ScalaEitherSerializerUpgradeTest.java          | 107 +++++++++++++++++++++
 .../flink-1.6-scala-either-serializer-data         | Bin 130 -> 0 bytes
 .../flink-1.6-scala-either-serializer-snapshot     | Bin 1358 -> 0 bytes
 .../flink-1.7-scala-either-serializer-data         | Bin 130 -> 0 bytes
 .../flink-1.7-scala-either-serializer-snapshot     | Bin 381 -> 0 bytes
 6 files changed, 107 insertions(+), 59 deletions(-)

diff --git a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerSnapshotMigrationTest.java b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerSnapshotMigrationTest.java
deleted file mode 100644
index 45339ab..0000000
--- a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,59 +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.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.common.typeutils.base.IntSerializer;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-import scala.util.Either;
-
-/**
- * Migration test for the {@link ScalaEitherSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class ScalaEitherSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Either<Integer, String>> {
-
-	private static final String SPEC_NAME = "scala-either-serializer";
-
-	public ScalaEitherSerializerSnapshotMigrationTest(TestSpecification<Either<Integer, String>> 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(
-			SPEC_NAME,
-			EitherSerializer.class,
-			ScalaEitherSerializerSnapshot.class,
-			() -> new EitherSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerUpgradeTest.java b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerUpgradeTest.java
new file mode 100644
index 0000000..c2a2eda
--- /dev/null
+++ b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaEitherSerializerUpgradeTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.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.common.typeutils.base.IntSerializer;
+import org.apache.flink.api.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import scala.util.Either;
+import scala.util.Right;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link ScalaEitherSerializerSnapshot}.
+ */
+@RunWith(Parameterized.class)
+public class ScalaEitherSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Either<Integer, String>, Either<Integer, String>> {
+
+	private static final String SPEC_NAME = "scala-either-serializer";
+
+	public ScalaEitherSerializerUpgradeTest(TestSpecification<Either<Integer, String>, Either<Integer, String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					EitherSerializerSetup.class,
+					EitherSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "either-serializer-left"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EitherSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Either<Integer, String>> {
+		@Override
+		public TypeSerializer<Either<Integer, String>> createPriorSerializer() {
+			return new EitherSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Either<Integer, String> createTestData() {
+			return new Right<>("Hello world");
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EitherSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Either<Integer, String>> {
+		@Override
+		public TypeSerializer<Either<Integer, String>> createUpgradedSerializer() {
+			return new EitherSerializer<>(IntSerializer.INSTANCE, StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<Either<Integer, String>> testDataMatcher() {
+			return is(new Right<>("Hello world"));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Either<Integer, String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+}
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-either-serializer-data b/flink-scala/src/test/resources/flink-1.6-scala-either-serializer-data
deleted file mode 100644
index 203067c..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-either-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-either-serializer-snapshot b/flink-scala/src/test/resources/flink-1.6-scala-either-serializer-snapshot
deleted file mode 100644
index 1239406..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-either-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-either-serializer-data b/flink-scala/src/test/resources/flink-1.7-scala-either-serializer-data
deleted file mode 100644
index 203067c..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-either-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-either-serializer-snapshot b/flink-scala/src/test/resources/flink-1.7-scala-either-serializer-snapshot
deleted file mode 100644
index 3e12866..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-either-serializer-snapshot and /dev/null differ


[flink] 19/42: [FLINK-13632] Port ScalaTrySerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 9d7d2bd68fd0e1febfd8ce204a9a0e0b790f1578
Author: klion26 <qc...@gmail.com>
AuthorDate: Thu Feb 13 00:46:21 2020 +0800

    [FLINK-13632] Port ScalaTrySerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../ScalaTrySerializerSnapshotMigrationTest.java   |  59 ----------
 .../typeutils/ScalaTrySerializerUpgradeTest.java   | 129 +++++++++++++++++++++
 .../resources/flink-1.6-scala-try-serializer-data  | Bin 1658 -> 0 bytes
 .../flink-1.6-scala-try-serializer-snapshot        | Bin 7054 -> 0 bytes
 .../resources/flink-1.7-scala-try-serializer-data  | Bin 1658 -> 0 bytes
 .../flink-1.7-scala-try-serializer-snapshot        | Bin 8932 -> 0 bytes
 6 files changed, 129 insertions(+), 59 deletions(-)

diff --git a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerSnapshotMigrationTest.java b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerSnapshotMigrationTest.java
deleted file mode 100644
index 6fd66b1..0000000
--- a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,59 +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;
-import org.apache.flink.api.common.typeutils.base.StringSerializer;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Collection;
-
-import scala.util.Try;
-
-/**
- * Migration test for the {@link TrySerializer}.
- */
-@RunWith(Parameterized.class)
-public class ScalaTrySerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<Try<String>> {
-
-	private static final String SPEC_NAME = "scala-try-serializer";
-
-	public ScalaTrySerializerSnapshotMigrationTest(TestSpecification<Try<String>> 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(
-			SPEC_NAME,
-			TrySerializer.class,
-			ScalaTrySerializerSnapshot.class,
-			() -> new TrySerializer<>(StringSerializer.INSTANCE, new ExecutionConfig()));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerUpgradeTest.java b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerUpgradeTest.java
new file mode 100644
index 0000000..c8607ee
--- /dev/null
+++ b/flink-scala/src/test/java/org/apache/flink/api/scala/typeutils/ScalaTrySerializerUpgradeTest.java
@@ -0,0 +1,129 @@
+/*
+ * 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.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.common.typeutils.base.StringSerializer;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Objects;
+
+import scala.util.Failure;
+import scala.util.Try;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link TrySerializer}.
+ */
+@RunWith(Parameterized.class)
+public class ScalaTrySerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Try<String>, Try<String>> {
+
+	private static final String SPEC_NAME = "scala-try-serializer";
+
+	public ScalaTrySerializerUpgradeTest(TestSpecification<Try<String>, Try<String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					ScalaTrySerializerSetup.class,
+					ScalaTrySerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "scala-try-serializer"
+	// ----------------------------------------------------------------------------------------------
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ScalaTrySerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<Try<String>> {
+		@Override
+		public TypeSerializer<Try<String>> createPriorSerializer() {
+			return new TrySerializer<>(StringSerializer.INSTANCE, new ExecutionConfig());
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public Try<String> createTestData() {
+			return new Failure(new SpecifiedException("Specified exception for ScalaTry."));
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ScalaTrySerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<Try<String>> {
+		@Override
+		public TypeSerializer<Try<String>> createUpgradedSerializer() {
+			return new TrySerializer<>(StringSerializer.INSTANCE, new ExecutionConfig());
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public Matcher<Try<String>> testDataMatcher() {
+			return is(new Failure(new SpecifiedException("Specified exception for ScalaTry.")));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<Try<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	/**
+	 * A specified runtime exception override {@link #equals(Object)}.
+	 */
+	public static final class SpecifiedException extends RuntimeException {
+		public SpecifiedException(String message) {
+			super(message);
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (obj == this) {
+				return true;
+			}
+			if (!(obj instanceof SpecifiedException)) {
+				return false;
+			}
+			SpecifiedException other = (SpecifiedException) obj;
+			return Objects.equals(getMessage(), other.getMessage());
+		}
+	}
+}
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-try-serializer-data b/flink-scala/src/test/resources/flink-1.6-scala-try-serializer-data
deleted file mode 100644
index b5739a2..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-try-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-try-serializer-snapshot b/flink-scala/src/test/resources/flink-1.6-scala-try-serializer-snapshot
deleted file mode 100644
index 43cc75e..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-try-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-try-serializer-data b/flink-scala/src/test/resources/flink-1.7-scala-try-serializer-data
deleted file mode 100644
index 585c1a5..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-try-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-try-serializer-snapshot b/flink-scala/src/test/resources/flink-1.7-scala-try-serializer-snapshot
deleted file mode 100644
index 760da78..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-try-serializer-snapshot and /dev/null differ


[flink] 39/42: [FLINK-13632] Port ScalaCaseClassSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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]()
+  }
+}


[flink] 38/42: [FLINK-13632] Port EnumSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 760e9522efac757f37344ad12cd797b33c2a96ef
Author: klion26 <qc...@gmail.com>
AuthorDate: Tue Apr 14 16:36:08 2020 +0800

    [FLINK-13632] Port EnumSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 ...t.java => EnumSerializerCompatibilityTest.java} |   2 +-
 .../base/EnumSerializerSnapshotMigrationTest.java  |  89 ----------
 .../typeutils/base/EnumSerializerUpgradeTest.java  | 195 ++++++++++++++-------
 .../test/resources/flink-1.6-enum-serializer-data  | Bin 40 -> 0 bytes
 .../resources/flink-1.6-enum-serializer-snapshot   | Bin 949 -> 0 bytes
 .../test/resources/flink-1.7-enum-serializer-data  | Bin 40 -> 0 bytes
 .../resources/flink-1.7-enum-serializer-snapshot   | Bin 937 -> 0 bytes
 7 files changed, 129 insertions(+), 157 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerCompatibilityTest.java
similarity index 98%
copy from flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java
copy to flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerCompatibilityTest.java
index 93643b3..f15f76f3 100644
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerCompatibilityTest.java
@@ -35,7 +35,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-public class EnumSerializerUpgradeTest extends TestLogger {
+public class EnumSerializerCompatibilityTest extends TestLogger {
 
 	@ClassRule
 	public static TemporaryFolder temporaryFolder = new TemporaryFolder();
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerSnapshotMigrationTest.java
deleted file mode 100644
index d818974..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,89 +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;
-
-import org.apache.flink.api.common.typeutils.TypeSerializer;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.hamcrest.Description;
-import org.hamcrest.Matcher;
-import org.hamcrest.TypeSafeMatcher;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import static org.apache.flink.api.common.typeutils.TypeSerializerMatchers.isCompatibleWithReconfiguredSerializer;
-import static org.apache.flink.api.common.typeutils.base.TestEnum.BAR;
-import static org.apache.flink.api.common.typeutils.base.TestEnum.EMMA;
-import static org.apache.flink.api.common.typeutils.base.TestEnum.FOO;
-import static org.apache.flink.api.common.typeutils.base.TestEnum.NATHANIEL;
-import static org.apache.flink.api.common.typeutils.base.TestEnum.PAULA;
-import static org.apache.flink.api.common.typeutils.base.TestEnum.PETER;
-
-/**
- * Migration tests for {@link EnumSerializer}.
- */
-@RunWith(Parameterized.class)
-public class EnumSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<TestEnum> {
-	private static final String SPEC_NAME = "enum-serializer";
-
-	public EnumSerializerSnapshotMigrationTest(TestSpecification<TestEnum> enumSerializer) {
-		super(enumSerializer);
-	}
-
-	private static TestEnum[] previousEnumValues = {FOO, BAR, PETER, NATHANIEL, EMMA, PAULA};
-
-	@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.addWithCompatibilityMatcher(
-				SPEC_NAME,
-				EnumSerializer.class,
-				EnumSerializer.EnumSerializerSnapshot.class,
-				() -> new EnumSerializer(TestEnum.class),
-				isCompatibleWithReconfiguredSerializer(enumSerializerWith(previousEnumValues))
-		);
-
-		return testSpecifications.get();
-	}
-
-	private static Matcher<? extends TypeSerializer<TestEnum>> enumSerializerWith(final TestEnum[] expectedEnumValues) {
-		return new TypeSafeMatcher<EnumSerializer<TestEnum>>() {
-
-			@Override
-			protected boolean matchesSafely(EnumSerializer<TestEnum> reconfiguredSerialized) {
-				return Arrays.equals(reconfiguredSerialized.getValues(), expectedEnumValues);
-			}
-
-			@Override
-			public void describeTo(Description description) {
-				description
-					.appendText("EnumSerializer with values ")
-					.appendValueList("{", ", ", "}", expectedEnumValues);
-			}
-		};
-	}
-}
-
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java
index 93643b3..e1ba7e2 100644
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/EnumSerializerUpgradeTest.java
@@ -18,100 +18,161 @@
 
 package org.apache.flink.api.common.typeutils.base;
 
+import org.apache.flink.api.common.typeutils.ClassRelocator;
+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.TypeSerializerSnapshotSerializationUtil;
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshot;
-import org.apache.flink.core.memory.DataInputViewStreamWrapper;
-import org.apache.flink.core.memory.DataOutputViewStreamWrapper;
-import org.apache.flink.testutils.ClassLoaderUtils;
-import org.apache.flink.util.TestLogger;
+import org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase;
+import org.apache.flink.testutils.migration.MigrationVersion;
 
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 
-public class EnumSerializerUpgradeTest extends TestLogger {
+import static org.apache.flink.api.common.typeutils.base.TestEnum.EMMA;
+import static org.hamcrest.Matchers.is;
 
-	@ClassRule
-	public static TemporaryFolder temporaryFolder = new TemporaryFolder();
-
-	private static final String ENUM_NAME = "EnumSerializerUpgradeTestEnum";
+/**
+ * Migration tests for {@link EnumSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class EnumSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<TestEnum, TestEnum> {
+	private static final String SPEC_NAME = "enum-serializer";
 
-	private static final String ENUM_A = "public enum " + ENUM_NAME + " { A, B, C }";
-	private static final String ENUM_B = "public enum " + ENUM_NAME + " { A, B, C, D }";
-	private static final String ENUM_C = "public enum " + ENUM_NAME + " { A, C }";
-	private static final String ENUM_D = "public enum " + ENUM_NAME + " { A, C, B }";
+	public EnumSerializerUpgradeTest(TestSpecification<TestEnum, TestEnum> enumSerializer) {
+		super(enumSerializer);
+	}
 
-	/**
-	 * Check that identical enums don't require migration
-	 */
-	@Test
-	public void checkIndenticalEnums() throws Exception {
-		Assert.assertTrue(checkCompatibility(ENUM_A, ENUM_A).isCompatibleAsIs());
+	@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<>(
+					SPEC_NAME,
+					migrationVersion,
+					EnumSerializerSetup.class,
+					EnumSerializerVerifier.class));
+			testSpecifications.add(
+				new TestSpecification<>(
+					SPEC_NAME + "reconfig",
+					migrationVersion,
+					EnumSerializerReconfigSetup.class,
+					EnumSerializerReconfigVerifier.class));
+		}
+		return testSpecifications;
 	}
 
-	/**
-	 * Check that appending fields to the enum does not require migration
-	 */
-	@Test
-	public void checkAppendedField() throws Exception {
-		Assert.assertTrue(checkCompatibility(ENUM_A, ENUM_B).isCompatibleWithReconfiguredSerializer());
+	private static Matcher<? extends TypeSerializer<TestEnum>> enumSerializerWith(final TestEnum[] expectedEnumValues) {
+		return new TypeSafeMatcher<EnumSerializer<TestEnum>>() {
+
+			@Override
+			protected boolean matchesSafely(EnumSerializer<TestEnum> reconfiguredSerialized) {
+				return Arrays.equals(reconfiguredSerialized.getValues(), expectedEnumValues);
+			}
+
+			@Override
+			public void describeTo(Description description) {
+				description
+					.appendText("EnumSerializer with values ")
+					.appendValueList("{", ", ", "}", expectedEnumValues);
+			}
+		};
 	}
 
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "enum-serializer"
+	// ----------------------------------------------------------------------------------------------
+
 	/**
-	 * Check that removing enum fields makes the snapshot incompatible
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
 	 */
-	@Test(expected = IllegalStateException.class)
-	public void removingFieldShouldBeIncompatible() throws Exception {
-		Assert.assertTrue(checkCompatibility(ENUM_A, ENUM_C).isIncompatible());
+	public static final class EnumSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<TestEnum> {
+		@SuppressWarnings("unchecked")
+		@Override
+		public TypeSerializer<TestEnum> createPriorSerializer() {
+			return new EnumSerializer(TestEnum.class);
+		}
+
+		@Override
+		public TestEnum createTestData() {
+			return EMMA;
+		}
 	}
 
 	/**
-	 * Check that changing the enum field order don't require migration
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
 	 */
-	@Test
-	public void checkDifferentFieldOrder() throws Exception {
-		Assert.assertTrue(checkCompatibility(ENUM_A, ENUM_D).isCompatibleWithReconfiguredSerializer());
-	}
+	public static final class EnumSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<TestEnum> {
+		@SuppressWarnings("unchecked")
+		@Override
+		public TypeSerializer<TestEnum> createUpgradedSerializer() {
+			return new EnumSerializer(TestEnum.class);
+		}
 
-	@SuppressWarnings("unchecked")
-	private static TypeSerializerSchemaCompatibility checkCompatibility(String enumSourceA, String enumSourceB)
-		throws IOException, ClassNotFoundException {
+		@Override
+		public Matcher<TestEnum> testDataMatcher() {
+			return is(EMMA);
+		}
 
-		ClassLoader classLoader = ClassLoaderUtils.compileAndLoadJava(
-			temporaryFolder.newFolder(), ENUM_NAME + ".java", enumSourceA);
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<TestEnum>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
 
-		EnumSerializer enumSerializer = new EnumSerializer(classLoader.loadClass(ENUM_NAME));
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EnumSerializerReconfigSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<EnumSerializerReconfigSetup.EnumBefore> {
+		@ClassRelocator.RelocateClass("TestEnumSerializerReconfig")
+		public enum EnumBefore {
+			FOO, BAR, PETER, NATHANIEL, EMMA, PAULA
+		}
 
-		TypeSerializerSnapshot snapshot = enumSerializer.snapshotConfiguration();
-		byte[] snapshotBytes;
-		try (
-			ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
-			DataOutputViewStreamWrapper outputViewStreamWrapper = new DataOutputViewStreamWrapper(outBuffer)) {
+		@SuppressWarnings("unchecked")
+		@Override
+		public TypeSerializer<EnumBefore> createPriorSerializer() {
+			return new EnumSerializer(EnumBefore.class);
+		}
 
-			TypeSerializerSnapshotSerializationUtil.writeSerializerSnapshot(
-				outputViewStreamWrapper, snapshot, enumSerializer);
-			snapshotBytes = outBuffer.toByteArray();
+		@Override
+		public EnumBefore createTestData() {
+			return EnumBefore.EMMA;
 		}
+	}
 
-		ClassLoader classLoader2 = ClassLoaderUtils.compileAndLoadJava(
-			temporaryFolder.newFolder(), ENUM_NAME + ".java", enumSourceB);
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class EnumSerializerReconfigVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<EnumSerializerReconfigVerifier.EnumAfter> {
+		@ClassRelocator.RelocateClass("TestEnumSerializerReconfig")
+		public enum EnumAfter {
+			FOO, BAR, PETER, PAULA, NATHANIEL, EMMA
+		}
 
-		TypeSerializerSnapshot restoredSnapshot;
-		try (
-			ByteArrayInputStream inBuffer = new ByteArrayInputStream(snapshotBytes);
-			DataInputViewStreamWrapper inputViewStreamWrapper = new DataInputViewStreamWrapper(inBuffer)) {
+		@SuppressWarnings("unchecked")
+		@Override
+		public TypeSerializer<EnumAfter> createUpgradedSerializer() {
+			return new EnumSerializer(EnumAfter.class);
+		}
 
-			restoredSnapshot = TypeSerializerSnapshotSerializationUtil.readSerializerSnapshot(
-				inputViewStreamWrapper, classLoader2, enumSerializer);
+		@Override
+		public Matcher<EnumAfter> testDataMatcher() {
+			return is(EnumAfter.EMMA);
 		}
 
-		EnumSerializer enumSerializer2 = new EnumSerializer(classLoader2.loadClass(ENUM_NAME));
-		return restoredSnapshot.resolveSchemaCompatibility(enumSerializer2);
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<EnumAfter>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleWithReconfiguredSerializer();
+		}
 	}
 }
+
diff --git a/flink-core/src/test/resources/flink-1.6-enum-serializer-data b/flink-core/src/test/resources/flink-1.6-enum-serializer-data
deleted file mode 100644
index 60d7723..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-enum-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-enum-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-enum-serializer-snapshot
deleted file mode 100644
index 9639d72..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-enum-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-enum-serializer-data b/flink-core/src/test/resources/flink-1.7-enum-serializer-data
deleted file mode 100644
index 97a46a4..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-enum-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-enum-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-enum-serializer-snapshot
deleted file mode 100644
index b8add7c1..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-enum-serializer-snapshot and /dev/null differ


[flink] 03/42: [FLINK-13632] Update TypeSerializerUpgradeTestBase for Flink 1.11

Posted by al...@apache.org.
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 acbdbceda70eecb98007224bbc4bda62692e14dc
Author: Aljoscha Krettek <al...@apache.org>
AuthorDate: Wed May 27 08:52:40 2020 +0200

    [FLINK-13632] Update TypeSerializerUpgradeTestBase for Flink 1.11
    
    We change MIGRATION_VERSIONS to only test versions > 1.11 because that's
    when we're adding the tests. We make an exception for
    PojoSerializerUpgradeTest and RowSerializerUpgradeTest, for which we
    have earlier snapshots.
    
    This also changes the test base to only generate snapshots for the
    CURRENT_VERSION when we generateTestSetupFiles().
---
 .../typeutils/TypeSerializerUpgradeTestBase.java   | 38 +++++++++++++++++-----
 .../runtime/PojoSerializerUpgradeTest.java         | 13 +++++++-
 .../runtime/RowSerializerUpgradeTest.java          | 10 +++++-
 3 files changed, 50 insertions(+), 11 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerUpgradeTestBase.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerUpgradeTestBase.java
index fe94ee9..ec77e7b 100644
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerUpgradeTestBase.java
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/TypeSerializerUpgradeTestBase.java
@@ -50,11 +50,10 @@ import static org.junit.Assume.assumeThat;
  */
 public abstract class TypeSerializerUpgradeTestBase<PreviousElementT, UpgradedElementT> extends TestLogger {
 
-	public static final MigrationVersion[] MIGRATION_VERSIONS = new MigrationVersion[]{
-			MigrationVersion.v1_7,
-			MigrationVersion.v1_8,
-			MigrationVersion.v1_9,
-	};
+	public static final MigrationVersion[] MIGRATION_VERSIONS =
+			MigrationVersion.v1_11.orHigher().toArray(new MigrationVersion[0]);
+
+	public static final MigrationVersion CURRENT_VERSION = MigrationVersion.v1_11;
 
 	private final TestSpecification<PreviousElementT, UpgradedElementT> testSpecification;
 
@@ -235,8 +234,8 @@ public abstract class TypeSerializerUpgradeTestBase<PreviousElementT, UpgradedEl
 	 * generating the test files, e.g. to generate test files for {@link MigrationVersion#v1_8}, you
 	 * should be under the release-1.8 branch.
 	 */
-	@Ignore
 	@Test
+	@Ignore
 	public void generateTestSetupFiles() throws Exception {
 		Files.createDirectories(getSerializerSnapshotFilePath().getParent());
 
@@ -248,7 +247,7 @@ public abstract class TypeSerializerUpgradeTestBase<PreviousElementT, UpgradedEl
 			//       mutates only after being used for serialization (e.g. dynamic type registrations for Pojo / Kryo)
 			DataOutputSerializer testDataOut = new DataOutputSerializer(INITIAL_OUTPUT_BUFFER_SIZE);
 			priorSerializer.serialize(testSpecification.setup.createTestData(), testDataOut);
-			writeContentsTo(getTestDataFilePath(), testDataOut.getCopyOfBuffer());
+			writeContentsTo(getGenerateDataFilePath(), testDataOut.getCopyOfBuffer());
 
 			// ... then write the serializer snapshot
 			DataOutputSerializer serializerSnapshotOut = new DataOutputSerializer(
@@ -256,9 +255,9 @@ public abstract class TypeSerializerUpgradeTestBase<PreviousElementT, UpgradedEl
 			writeSerializerSnapshot(
 					serializerSnapshotOut,
 					priorSerializer,
-					testSpecification.migrationVersion);
+					CURRENT_VERSION);
 			writeContentsTo(
-					getSerializerSnapshotFilePath(),
+					getGenerateSerializerSnapshotFilePath(),
 					serializerSnapshotOut.getCopyOfBuffer());
 		}
 	}
@@ -412,6 +411,27 @@ public abstract class TypeSerializerUpgradeTestBase<PreviousElementT, UpgradedEl
 	//  Utilities
 	// ------------------------------------------------------------------------------
 
+	/**
+	 * Paths to use during snapshot generation, which should only use the CURRENT_VERSION.
+	 */
+	private Path getGenerateSerializerSnapshotFilePath() {
+		return Paths.get(getGenerateResourceDirectory() + "/serializer-snapshot");
+	}
+
+	/**
+	 * Paths to use during snapshot generation, which should only use the CURRENT_VERSION.
+	 */
+	private Path getGenerateDataFilePath() {
+		return Paths.get(getGenerateResourceDirectory() + "/test-data");
+	}
+
+	/**
+	 * Paths to use during snapshot generation, which should only use the CURRENT_VERSION.
+	 */
+	private String getGenerateResourceDirectory() {
+		return System.getProperty("user.dir") + "/src/test/resources/" + testSpecification.name + "-" + CURRENT_VERSION;
+	}
+
 	private Path getSerializerSnapshotFilePath() {
 		return Paths.get(getTestResourceDirectory() + "/serializer-snapshot");
 	}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerUpgradeTest.java
index fac1bde..ce90dd6 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerUpgradeTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerUpgradeTest.java
@@ -25,7 +25,9 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * A {@link TypeSerializerUpgradeTestBase} for the {@link PojoSerializer}.
@@ -40,7 +42,16 @@ public class PojoSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Obj
 	@Parameterized.Parameters(name = "Test Specification = {0}")
 	public static Collection<TestSpecification<?, ?>> testSpecifications() throws Exception {
 		ArrayList<TestSpecification<?, ?>> testSpecifications = new ArrayList<>();
-		for (MigrationVersion migrationVersion : MIGRATION_VERSIONS) {
+		// for PojoSerializer we also test against 1.7, 1.8, and 1.9 because we have snapshots
+		// for this which go beyond what we have for the usual subclasses of
+		// TypeSerializerUpgradeTestBase. We don't have snapshot data for 1.10, but the
+		// PojoSerializer has not been changed in quite a while anyways.
+		List<MigrationVersion> testVersions = new ArrayList<>();
+		testVersions.add(MigrationVersion.v1_7);
+		testVersions.add(MigrationVersion.v1_8);
+		testVersions.add(MigrationVersion.v1_9);
+		testVersions.addAll(Arrays.asList(MIGRATION_VERSIONS));
+		for (MigrationVersion migrationVersion : testVersions) {
 			testSpecifications.add(
 				new TestSpecification<>(
 					"pojo-serializer-identical-schema",
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java
index f30893c..7d72809 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/RowSerializerUpgradeTest.java
@@ -34,7 +34,9 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 
 import static org.hamcrest.Matchers.is;
 
@@ -51,7 +53,13 @@ public class RowSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<Row,
 	@Parameterized.Parameters(name = "Test Specification = {0}")
 	public static Collection<TestSpecification<?, ?>> testSpecifications() throws Exception {
 		ArrayList<TestSpecification<?, ?>> testSpecifications = new ArrayList<>();
-		for (MigrationVersion migrationVersion : MigrationVersion.v1_10.orHigher()) {
+		// for RowSerializer we also test against 1.10 and newer because we have snapshots
+		// for this which go beyond what we have for the usual subclasses of
+		// TypeSerializerUpgradeTestBase
+		List<MigrationVersion> testVersions = new ArrayList<>();
+		testVersions.add(MigrationVersion.v1_10);
+		testVersions.addAll(Arrays.asList(MIGRATION_VERSIONS));
+		for (MigrationVersion migrationVersion : testVersions) {
 			testSpecifications.add(
 				new TestSpecification<>(
 					"row-serializer",


[flink] 10/42: [FLINK-13632] Port PrimitiveArraySerializer test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 7489ff09dbcac6da138158d0b7f7f60dc829ddf6
Author: klion26 <qc...@gmail.com>
AuthorDate: Tue Jan 21 10:56:01 2020 +0800

    [FLINK-13632] Port PrimitiveArraySerializer test to TypeSerializerUpgradeTestBase
---
 ...mitiveArraySerializerSnapshotMigrationTest.java |  94 -----
 .../array/PrimitiveArraySerializerUpgradeTest.java | 102 +++++
 ...veArraySerializerUpgradeTestSpecifications.java | 431 +++++++++++++++++++++
 ...ink-1.6-boolean-primitive-array-serializer-data | Bin 80 -> 0 bytes
 ...1.6-boolean-primitive-array-serializer-snapshot | Bin 436 -> 0 bytes
 .../flink-1.6-byte-primitive-array-serializer-data | Bin 80 -> 0 bytes
 ...nk-1.6-byte-primitive-array-serializer-snapshot | Bin 430 -> 0 bytes
 .../flink-1.6-char-primitive-array-serializer-data | Bin 140 -> 0 bytes
 ...nk-1.6-char-primitive-array-serializer-snapshot | Bin 430 -> 0 bytes
 ...link-1.6-double-primitive-array-serializer-data | Bin 440 -> 0 bytes
 ...-1.6-double-primitive-array-serializer-snapshot | Bin 434 -> 0 bytes
 ...flink-1.6-float-primitive-array-serializer-data | Bin 240 -> 0 bytes
 ...k-1.6-float-primitive-array-serializer-snapshot | Bin 432 -> 0 bytes
 .../flink-1.6-int-primitive-array-serializer-data  | Bin 240 -> 0 bytes
 ...ink-1.6-int-primitive-array-serializer-snapshot | Bin 428 -> 0 bytes
 .../flink-1.6-long-primitive-array-serializer-data | Bin 440 -> 0 bytes
 ...nk-1.6-long-primitive-array-serializer-snapshot | Bin 430 -> 0 bytes
 ...flink-1.6-short-primitive-array-serializer-data | Bin 140 -> 0 bytes
 ...k-1.6-short-primitive-array-serializer-snapshot | Bin 432 -> 0 bytes
 ...ink-1.7-boolean-primitive-array-serializer-data | Bin 90 -> 0 bytes
 ...1.7-boolean-primitive-array-serializer-snapshot | Bin 212 -> 0 bytes
 .../flink-1.7-byte-primitive-array-serializer-data | Bin 100 -> 0 bytes
 ...nk-1.7-byte-primitive-array-serializer-snapshot | Bin 203 -> 0 bytes
 .../flink-1.7-char-primitive-array-serializer-data | Bin 240 -> 0 bytes
 ...nk-1.7-char-primitive-array-serializer-snapshot | Bin 203 -> 0 bytes
 ...link-1.7-double-primitive-array-serializer-data | Bin 360 -> 0 bytes
 ...-1.7-double-primitive-array-serializer-snapshot | Bin 209 -> 0 bytes
 ...flink-1.7-float-primitive-array-serializer-data | Bin 160 -> 0 bytes
 ...k-1.7-float-primitive-array-serializer-snapshot | Bin 206 -> 0 bytes
 .../flink-1.7-int-primitive-array-serializer-data  | Bin 160 -> 0 bytes
 ...ink-1.7-int-primitive-array-serializer-snapshot | Bin 200 -> 0 bytes
 .../flink-1.7-long-primitive-array-serializer-data | Bin 280 -> 0 bytes
 ...nk-1.7-long-primitive-array-serializer-snapshot | Bin 203 -> 0 bytes
 ...flink-1.7-short-primitive-array-serializer-data | Bin 120 -> 0 bytes
 ...k-1.7-short-primitive-array-serializer-snapshot | Bin 206 -> 0 bytes
 35 files changed, 533 insertions(+), 94 deletions(-)

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 6163e2c..0000000
--- 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<Object> {
-
-	public PrimitiveArraySerializerSnapshotMigrationTest(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(
-			"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 0000000..b783da3
--- /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<Object, Object> {
+	public PrimitiveArraySerializerUpgradeTest(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<>(
+				"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 0000000..c5a9729
--- /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<boolean[]> {
+		@Override
+		public TypeSerializer<boolean[]> createPriorSerializer() {
+			TypeSerializer<boolean[]> 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<boolean[]> {
+		@Override
+		public TypeSerializer<boolean[]> createUpgradedSerializer() {
+			TypeSerializer<boolean[]> serializer = TypeExtractor.createTypeInfo(boolean[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), BooleanPrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<boolean[]> testDataMatcher() {
+			boolean[] expected = new boolean[2];
+			expected[0] = true;
+			expected[1] = false;
+			return is(expected);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<boolean[]>> schemaCompatibilityMatcher(
+				MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive byte array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveByteArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<byte[]> {
+		@Override
+		public TypeSerializer<byte[]> createPriorSerializer() {
+			TypeSerializer<byte[]> 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<byte[]> {
+		@Override
+		public TypeSerializer<byte[]> createUpgradedSerializer() {
+			TypeSerializer<byte[]> serializer = TypeExtractor.createTypeInfo(byte[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), BytePrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<byte[]> testDataMatcher() {
+			byte[] expected = new byte[10];
+			for (int i = 0; i < expected.length; ++i) {
+				expected[i] = (byte) i;
+			}
+			return is(expected);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<byte[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive char array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveCharArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<char[]> {
+		@Override
+		public TypeSerializer<char[]> createPriorSerializer() {
+			TypeSerializer<char[]> 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<char[]> {
+		@Override
+		public TypeSerializer<char[]> createUpgradedSerializer() {
+			TypeSerializer<char[]> serializer = TypeExtractor.createTypeInfo(char[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), CharPrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<char[]> testDataMatcher() {
+			char[] data = new char[10];
+			for (int i = 0; i < data.length; ++i) {
+				data[i] = (char) i;
+			}
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<char[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive double array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveDoubleArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<double[]> {
+		@Override
+		public TypeSerializer<double[]> createPriorSerializer() {
+			TypeSerializer<double[]> 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<double[]> {
+		@Override
+		public TypeSerializer<double[]> createUpgradedSerializer() {
+			TypeSerializer<double[]> serializer = TypeExtractor.createTypeInfo(double[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), DoublePrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<double[]> 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<TypeSerializerSchemaCompatibility<double[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive float array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveFloatArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<float[]> {
+		@Override
+		public TypeSerializer<float[]> createPriorSerializer() {
+			TypeSerializer<float[]> 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<float[]> {
+		@Override
+		public TypeSerializer<float[]> createUpgradedSerializer() {
+			TypeSerializer<float[]> serializer = TypeExtractor.createTypeInfo(float[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), FloatPrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<float[]> 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<TypeSerializerSchemaCompatibility<float[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive int array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveIntArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<int[]> {
+		@Override
+		public TypeSerializer<int[]> createPriorSerializer() {
+			TypeSerializer<int[]> 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<int[]> {
+		@Override
+		public TypeSerializer<int[]> createUpgradedSerializer() {
+			TypeSerializer<int[]> serializer = TypeExtractor.createTypeInfo(int[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), IntPrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<int[]> testDataMatcher() {
+			int[] data = new int[10];
+			for (int i = 0; i < data.length; ++i) {
+				data[i] = i;
+			}
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<int[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive long array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveLongArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<long[]> {
+		@Override
+		public TypeSerializer<long[]> createPriorSerializer() {
+			TypeSerializer<long[]> 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<long[]> {
+		@Override
+		public TypeSerializer<long[]> createUpgradedSerializer() {
+			TypeSerializer<long[]> serializer = TypeExtractor.createTypeInfo(long[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), LongPrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<long[]> testDataMatcher() {
+			long[] data = new long[10];
+			for (int i = 0; i < data.length; ++i) {
+				data[i] = i;
+			}
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<long[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive short array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveShortArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<short[]> {
+		@Override
+		public TypeSerializer<short[]> createPriorSerializer() {
+			TypeSerializer<short[]> 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<short[]> {
+		@Override
+		public TypeSerializer<short[]> createUpgradedSerializer() {
+			TypeSerializer<short[]> serializer = TypeExtractor.createTypeInfo(short[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), ShortPrimitiveArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<short[]> testDataMatcher() {
+			short[] data = new short[10];
+			for (int i = 0; i < data.length; ++i) {
+				data[i] = (short) i;
+			}
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<short[]>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	// Specification for "primitive string array"
+	// ----------------------------------------------------------------------------------------------
+	public static final class PrimitiveStringArraySetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<String[]> {
+		@Override
+		public TypeSerializer<String[]> createPriorSerializer() {
+			TypeSerializer<String[]> 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<String[]> {
+		@Override
+		public TypeSerializer<String[]> createUpgradedSerializer() {
+			TypeSerializer<String[]> serializer = TypeExtractor.createTypeInfo(String[].class).createSerializer(new ExecutionConfig());
+			assertSame(serializer.getClass(), StringArraySerializer.class);
+			return serializer;
+		}
+
+		@Override
+		public Matcher<String[]> 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<TypeSerializerSchemaCompatibility<String[]>> 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 2a22d35..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-data and /dev/null differ
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 2558994..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-boolean-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-data
deleted file mode 100644
index 9e71b0f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-snapshot
deleted file mode 100644
index 2938a7c..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-byte-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-data
deleted file mode 100644
index d267c92..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-snapshot
deleted file mode 100644
index 412c1f0..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-char-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-data
deleted file mode 100644
index 200fe9c..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-snapshot
deleted file mode 100644
index 28a8182..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-double-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-data
deleted file mode 100644
index 771461a..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-data and /dev/null differ
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 970c5be..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-float-primitive-array-serializer-snapshot and /dev/null differ
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 bce445f..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-snapshot
deleted file mode 100644
index 3e054e9..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-int-primitive-array-serializer-snapshot and /dev/null differ
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 0b0ce3d..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-data and /dev/null differ
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 1f8f8e1..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-long-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-data
deleted file mode 100644
index 4f0df79..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-data and /dev/null differ
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 94ae742..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-short-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-data
deleted file mode 100644
index 96acd9c..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-snapshot
deleted file mode 100644
index 7001c14..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-boolean-primitive-array-serializer-snapshot and /dev/null differ
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 8956669..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-data and /dev/null differ
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 a9cba34..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-byte-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-data
deleted file mode 100644
index 918413b..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-snapshot
deleted file mode 100644
index 3f7deae..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-char-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-data
deleted file mode 100644
index 16e6183..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-data and /dev/null differ
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 3e4ee96..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-double-primitive-array-serializer-snapshot and /dev/null differ
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 e5371bb..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-snapshot
deleted file mode 100644
index 7e01a51..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-float-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-data
deleted file mode 100644
index 6966366..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-snapshot
deleted file mode 100644
index 6ef72a2..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-int-primitive-array-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-data b/flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-data
deleted file mode 100644
index 267bb12..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-data and /dev/null differ
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 eec2da3..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-long-primitive-array-serializer-snapshot and /dev/null differ
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 9dcf64f..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-data and /dev/null differ
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 e07dc66..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-short-primitive-array-serializer-snapshot and /dev/null differ


[flink] 28/42: [FLINK-13632] Port ListSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 893f3220bf35d62f819fcd62810b9d618c4411ae
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Feb 19 21:12:17 2020 +0800

    [FLINK-13632] Port ListSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../base/ListSerializerSnapshotMigrationTest.java  |  55 -----------
 .../typeutils/base/ListSerializerUpgradeTest.java  | 109 +++++++++++++++++++++
 .../test/resources/flink-1.6-list-serializer-data  | Bin 240 -> 0 bytes
 .../resources/flink-1.6-list-serializer-snapshot   | Bin 888 -> 0 bytes
 .../test/resources/flink-1.7-list-serializer-data  | Bin 240 -> 0 bytes
 .../resources/flink-1.7-list-serializer-snapshot   | Bin 238 -> 0 bytes
 6 files changed, 109 insertions(+), 55 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerSnapshotMigrationTest.java
deleted file mode 100644
index f3662c6..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerSnapshotMigrationTest.java
+++ /dev/null
@@ -1,55 +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;
-
-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;
-import java.util.List;
-
-/**
- * Migration test for the {@link ListSerializerSnapshot}.
- */
-@RunWith(Parameterized.class)
-public class ListSerializerSnapshotMigrationTest extends TypeSerializerSnapshotMigrationTestBase<List<String>> {
-
-	private static final String SPEC_NAME = "list-serializer";
-
-	public ListSerializerSnapshotMigrationTest(TestSpecification<List<String>> 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(
-			SPEC_NAME,
-			ListSerializer.class,
-			ListSerializerSnapshot.class,
-			() -> new ListSerializer<>(StringSerializer.INSTANCE));
-
-		return testSpecifications.get();
-	}
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerUpgradeTest.java
new file mode 100644
index 0000000..1892989
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/common/typeutils/base/ListSerializerUpgradeTest.java
@@ -0,0 +1,109 @@
+/*
+ * 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;
+
+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.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link ListSerializerSnapshot}.
+ */
+@RunWith(Parameterized.class)
+public class ListSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<List<String>, List<String>> {
+
+	private static final String SPEC_NAME = "list-serializer";
+
+	public ListSerializerUpgradeTest(TestSpecification<List<String>, List<String>> 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<>(
+					SPEC_NAME,
+					migrationVersion,
+					ListSerializerSetup.class,
+					ListSerializerVerifier.class));
+		}
+
+		return testSpecifications;
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "list-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ListSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<List<String>> {
+		@Override
+		public TypeSerializer<List<String>> createPriorSerializer() {
+			return new ListSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public List<String> createTestData() {
+			List<String> data = new ArrayList<>(2);
+			data.add("Apache");
+			data.add("Flink");
+			return data;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class ListSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<List<String>> {
+		@Override
+		public TypeSerializer<List<String>> createUpgradedSerializer() {
+			return new ListSerializer<>(StringSerializer.INSTANCE);
+		}
+
+		@Override
+		public Matcher<List<String>> testDataMatcher() {
+			List<String> data = new ArrayList<>(2);
+			data.add("Apache");
+			data.add("Flink");
+			return is(data);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<List<String>>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-core/src/test/resources/flink-1.6-list-serializer-data b/flink-core/src/test/resources/flink-1.6-list-serializer-data
deleted file mode 100644
index 7b6c68a..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-list-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-list-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-list-serializer-snapshot
deleted file mode 100644
index 8bb94b4..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-list-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-list-serializer-data b/flink-core/src/test/resources/flink-1.7-list-serializer-data
deleted file mode 100644
index 7b6c68a..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-list-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-list-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-list-serializer-snapshot
deleted file mode 100644
index a8efd3a..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-list-serializer-snapshot and /dev/null differ


[flink] 31/42: [FLINK-13632] Port WritableSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 47d535d6372ec34279f47fde41fb0661073aeaba
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 20:41:30 2020 +0800

    [FLINK-13632] Port WritableSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../runtime/WritableSerializerMigrationTest.java   |  88 ------------
 .../runtime/WritableSerializerUpgradeTest.java     | 151 +++++++++++++++++++++
 .../resources/flink-1.6-writeable-serializer-data  | Bin 150 -> 0 bytes
 .../flink-1.6-writeable-serializer-snapshot        | Bin 506 -> 0 bytes
 .../resources/flink-1.7-writeable-serializer-data  | Bin 150 -> 0 bytes
 .../flink-1.7-writeable-serializer-snapshot        | Bin 494 -> 0 bytes
 6 files changed, 151 insertions(+), 88 deletions(-)

diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerMigrationTest.java b/flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerMigrationTest.java
deleted file mode 100644
index 8dc7e89..0000000
--- a/flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerMigrationTest.java
+++ /dev/null
@@ -1,88 +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.java.typeutils.runtime;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.java.typeutils.runtime.WritableSerializer.WritableSerializerSnapshot;
-import org.apache.flink.api.java.typeutils.runtime.WritableSerializerMigrationTest.WritableName;
-import org.apache.flink.testutils.migration.MigrationVersion;
-
-import org.apache.hadoop.io.Writable;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.Collection;
-
-/**
- * State migration test for {@link RowSerializer}.
- */
-@RunWith(Parameterized.class)
-public class WritableSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<WritableName> {
-
-	public WritableSerializerMigrationTest(TestSpecification<WritableName> testSpecification) {
-		super(testSpecification);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Parameterized.Parameters(name = "Test Specification = {0}")
-	public static Collection<TestSpecification<?>> testSpecifications() {
-
-		TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7);
-
-		testSpecifications.add(
-			"writeable-serializer",
-			WritableSerializer.class,
-			WritableSerializerSnapshot.class,
-			() -> new WritableSerializer<>(WritableName.class));
-
-		return testSpecifications.get();
-	}
-
-	/**
-	 * A dummy class that is used in this test.
-	 */
-	public static final class WritableName implements Writable {
-
-		public static final long serialVersionUID = 1L;
-
-		private String name;
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			this.name = name;
-		}
-
-		@Override
-		public void write(DataOutput out) throws IOException {
-			out.writeUTF(name);
-		}
-
-		@Override
-		public void readFields(DataInput in) throws IOException {
-			name = in.readUTF();
-		}
-	}
-
-}
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerUpgradeTest.java b/flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerUpgradeTest.java
new file mode 100644
index 0000000..b79cbc9
--- /dev/null
+++ b/flink-connectors/flink-hadoop-compatibility/src/test/java/org/apache/flink/api/java/typeutils/runtime/WritableSerializerUpgradeTest.java
@@ -0,0 +1,151 @@
+/*
+ * 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.java.typeutils.runtime;
+
+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.runtime.WritableSerializerUpgradeTest.WritableName;
+import org.apache.flink.testutils.migration.MigrationVersion;
+
+import org.apache.hadoop.io.Writable;
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Objects;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link WritableSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class WritableSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<WritableName, WritableName> {
+
+	public WritableSerializerUpgradeTest(TestSpecification<WritableName, WritableName> 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<>(
+					"writeable-serializer",
+					migrationVersion,
+					WritableSerializerSetup.class,
+					WritableSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	/**
+	 * A dummy class that is used in this test.
+	 */
+	public static final class WritableName implements Writable {
+
+		public static final long serialVersionUID = 1L;
+
+		private String name;
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			this.name = name;
+		}
+
+		@Override
+		public void write(DataOutput out) throws IOException {
+			out.writeUTF(name);
+		}
+
+		@Override
+		public void readFields(DataInput in) throws IOException {
+			name = in.readUTF();
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (obj == this) {
+				return true;
+			}
+
+			if (!(obj instanceof WritableName)) {
+				return false;
+			}
+
+			WritableName other = (WritableName) obj;
+			return Objects.equals(name, other.name);
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "writeable-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class WritableSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<WritableName> {
+		@Override
+		public TypeSerializer<WritableName> createPriorSerializer() {
+			return new WritableSerializer<>(WritableName.class);
+		}
+
+		@Override
+		public WritableName createTestData() {
+			WritableName writable = new WritableName();
+			writable.setName("flink");
+			return writable;
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class WritableSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<WritableName> {
+		@Override
+		public TypeSerializer<WritableName> createUpgradedSerializer() {
+			return new WritableSerializer<>(WritableName.class);
+		}
+
+		@Override
+		public Matcher<WritableName> testDataMatcher() {
+			WritableName writable = new WritableName();
+			writable.setName("flink");
+			return is(writable);
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<WritableName>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+}
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-data b/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-data
deleted file mode 100644
index c6bd30c..0000000
Binary files a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-snapshot b/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-snapshot
deleted file mode 100644
index 268534f..0000000
Binary files a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.6-writeable-serializer-snapshot and /dev/null differ
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-data b/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-data
deleted file mode 100644
index e857bed..0000000
Binary files a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-data and /dev/null differ
diff --git a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-snapshot b/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-snapshot
deleted file mode 100644
index b54029b..0000000
Binary files a/flink-connectors/flink-hadoop-compatibility/src/test/resources/flink-1.7-writeable-serializer-snapshot and /dev/null differ


[flink] 30/42: [FLINK-13632] Port CopyableSerializer upgrade test to TypeSerializerUpgradeTestBase

Posted by al...@apache.org.
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 9c260e8a9d00b3fbb15d5741173fd08ae42ff794
Author: klion26 <qc...@gmail.com>
AuthorDate: Sat Feb 15 17:52:18 2020 +0800

    [FLINK-13632] Port CopyableSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../runtime/CopyableSerializerMigrationTest.java   | 107 -------------
 .../runtime/CopyableSerializerUpgradeTest.java     | 174 +++++++++++++++++++++
 .../flink-1.6-copyable-value-serializer-data       | Bin 80 -> 0 bytes
 .../flink-1.6-copyable-value-serializer-snapshot   | Bin 534 -> 0 bytes
 .../flink-1.7-copyable-value-serializer-data       | Bin 80 -> 0 bytes
 .../flink-1.7-copyable-value-serializer-snapshot   | Bin 522 -> 0 bytes
 6 files changed, 174 insertions(+), 107 deletions(-)

diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerMigrationTest.java
deleted file mode 100644
index e2fe27a..0000000
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerMigrationTest.java
+++ /dev/null
@@ -1,107 +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.java.typeutils.runtime;
-
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase;
-import org.apache.flink.api.java.typeutils.runtime.CopyableSerializerMigrationTest.SimpleCopyable;
-import org.apache.flink.api.java.typeutils.runtime.CopyableValueSerializer.CopyableValueSerializerSnapshot;
-import org.apache.flink.core.memory.DataInputView;
-import org.apache.flink.core.memory.DataOutputView;
-import org.apache.flink.testutils.migration.MigrationVersion;
-import org.apache.flink.types.CopyableValue;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.io.IOException;
-import java.util.Collection;
-
-/**
- * {@link CopyableValueSerializer} migration test.
- */
-@RunWith(Parameterized.class)
-public class CopyableSerializerMigrationTest extends TypeSerializerSnapshotMigrationTestBase<SimpleCopyable> {
-
-	public CopyableSerializerMigrationTest(TestSpecification<SimpleCopyable> 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(
-			"copyable-value-serializer",
-			CopyableValueSerializer.class,
-			CopyableValueSerializerSnapshot.class,
-			() -> new CopyableValueSerializer<>(SimpleCopyable.class));
-
-		return testSpecifications.get();
-	}
-
-	/**
-	 * A simple copyable value for migration tests.
-	 */
-	@SuppressWarnings("WeakerAccess")
-	public static final class SimpleCopyable implements CopyableValue<SimpleCopyable> {
-
-		public static final long serialVersionUID = 1;
-
-		private long value;
-
-		public SimpleCopyable() {
-		}
-
-		public SimpleCopyable(long value) {
-			this.value = value;
-		}
-
-		@Override
-		public int getBinaryLength() {
-			return 8;
-		}
-
-		@Override
-		public void copyTo(SimpleCopyable target) {
-			target.value = this.value;
-		}
-
-		@Override
-		public SimpleCopyable copy() {
-			return new SimpleCopyable(value);
-		}
-
-		@Override
-		public void copy(DataInputView source, DataOutputView target) throws IOException {
-			target.writeLong(source.readLong());
-		}
-
-		@Override
-		public void write(DataOutputView out) throws IOException {
-			out.writeLong(value);
-		}
-
-		@Override
-		public void read(DataInputView in) throws IOException {
-			value = in.readLong();
-		}
-	}
-}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerUpgradeTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerUpgradeTest.java
new file mode 100644
index 0000000..cc209a5
--- /dev/null
+++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/CopyableSerializerUpgradeTest.java
@@ -0,0 +1,174 @@
+/*
+ * 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.java.typeutils.runtime;
+
+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.runtime.CopyableSerializerUpgradeTest.SimpleCopyable;
+import org.apache.flink.core.memory.DataInputView;
+import org.apache.flink.core.memory.DataOutputView;
+import org.apache.flink.testutils.migration.MigrationVersion;
+import org.apache.flink.types.CopyableValue;
+
+import org.hamcrest.Matcher;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import static org.hamcrest.Matchers.is;
+
+/**
+ * A {@link TypeSerializerUpgradeTestBase} for {@link CopyableValueSerializer}.
+ */
+@RunWith(Parameterized.class)
+public class CopyableSerializerUpgradeTest extends TypeSerializerUpgradeTestBase<SimpleCopyable, SimpleCopyable> {
+
+	public CopyableSerializerUpgradeTest(TestSpecification<SimpleCopyable, SimpleCopyable> 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<>(
+					"copyable-value-serializer",
+					migrationVersion,
+					CopyableSerializerSetup.class,
+					CopyableSerializerVerifier.class));
+		}
+		return testSpecifications;
+	}
+
+	/**
+	 * A simple copyable value for migration tests.
+	 */
+	@SuppressWarnings("WeakerAccess")
+	public static final class SimpleCopyable implements CopyableValue<SimpleCopyable> {
+
+		public static final long serialVersionUID = 1;
+
+		private long value;
+
+		public SimpleCopyable() {
+		}
+
+		public SimpleCopyable(long value) {
+			this.value = value;
+		}
+
+		@Override
+		public int getBinaryLength() {
+			return 8;
+		}
+
+		@Override
+		public void copyTo(SimpleCopyable target) {
+			target.value = this.value;
+		}
+
+		@Override
+		public SimpleCopyable copy() {
+			return new SimpleCopyable(value);
+		}
+
+		@Override
+		public void copy(DataInputView source, DataOutputView target) throws IOException {
+			target.writeLong(source.readLong());
+		}
+
+		@Override
+		public void write(DataOutputView out) throws IOException {
+			out.writeLong(value);
+		}
+
+		@Override
+		public void read(DataInputView in) throws IOException {
+			value = in.readLong();
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (this == obj) {
+				return true;
+			}
+
+			if (!(obj instanceof SimpleCopyable)) {
+				return false;
+			}
+
+			SimpleCopyable other = (SimpleCopyable) obj;
+			return value == other.value;
+		}
+	}
+
+	// ----------------------------------------------------------------------------------------------
+	//  Specification for "copyable-value-serializer"
+	// ----------------------------------------------------------------------------------------------
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class CopyableSerializerSetup implements TypeSerializerUpgradeTestBase.PreUpgradeSetup<SimpleCopyable> {
+		@Override
+		public TypeSerializer<SimpleCopyable> createPriorSerializer() {
+			return new CopyableValueSerializer<>(SimpleCopyable.class);
+		}
+
+		@Override
+		public SimpleCopyable createTestData() {
+			return new SimpleCopyable(123456);
+		}
+	}
+
+	/**
+	 * This class is only public to work with {@link org.apache.flink.api.common.typeutils.ClassRelocator}.
+	 */
+	public static final class CopyableSerializerVerifier implements TypeSerializerUpgradeTestBase.UpgradeVerifier<SimpleCopyable> {
+		@Override
+		public TypeSerializer<SimpleCopyable> createUpgradedSerializer() {
+			return new CopyableValueSerializer<>(SimpleCopyable.class);
+		}
+
+		@Override
+		public Matcher<SimpleCopyable> testDataMatcher() {
+			return is(new SimpleCopyable(123456));
+		}
+
+		@Override
+		public Matcher<TypeSerializerSchemaCompatibility<SimpleCopyable>> schemaCompatibilityMatcher(MigrationVersion version) {
+			return TypeSerializerMatchers.isCompatibleAsIs();
+		}
+	}
+
+	@Test
+	public void testF() {
+		SimpleCopyable a = new SimpleCopyable(123456);
+		Assert.assertThat(a, is(new SimpleCopyable(123456)));
+	}
+
+}
diff --git a/flink-core/src/test/resources/flink-1.6-copyable-value-serializer-data b/flink-core/src/test/resources/flink-1.6-copyable-value-serializer-data
deleted file mode 100644
index a3cb5c5..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-copyable-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.6-copyable-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-copyable-value-serializer-snapshot
deleted file mode 100644
index 235a463..0000000
Binary files a/flink-core/src/test/resources/flink-1.6-copyable-value-serializer-snapshot and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-copyable-value-serializer-data b/flink-core/src/test/resources/flink-1.7-copyable-value-serializer-data
deleted file mode 100644
index 774b372..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-copyable-value-serializer-data and /dev/null differ
diff --git a/flink-core/src/test/resources/flink-1.7-copyable-value-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-copyable-value-serializer-snapshot
deleted file mode 100644
index 13520ce..0000000
Binary files a/flink-core/src/test/resources/flink-1.7-copyable-value-serializer-snapshot and /dev/null differ