Skip to content

Conversation

@yuxiqian
Copy link
Member

This closes FLINK-37453.

CDC pipeline migration tests were introduced in #3447, originally implemented in Ruby scripting language.

However, as most testing logic was written as script file, it is hard to debug or investigate what's going wrong when migration test fails with no much contextual information or stacktrace available. Existing test cases could not be easily extended, too.


This PR tries to extend existing Pipeline E2e test cases to cover such migration tests by:

  • Adding utility methods for submitting YAML jobs with previous state & stopping jobs after creating a savepoint
  • Cleaning up PipelineTestEnvironment and remove duplicate code fragments from sub-classes
  • Rewriting migration test cases in Java with JUnit framework
  • Removing existing migration test scripts, of course

@yuxiqian
Copy link
Member Author

CI passed in my forked repo, mark it ready for review.

This PR is aimed at migration framework with minimal changes for reviewability. More E2e test cases could be added later to cover state restoring related bugs like FLINK-37537 and FLINK-37538.

@yuxiqian yuxiqian marked this pull request as ready for review March 24, 2025 04:20
@yuxiqian yuxiqian changed the title [WIP][FLINK-37453][tests] Port Ruby migration tests to Java [FLINK-37453][tests] Port Ruby migration tests to Java Mar 24, 2025
# Conflicts:
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/MySqlToDorisE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/MySqlToPaimonE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/MysqlE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/MysqlToKafkaE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/OceanBaseE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/RouteE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/SchemaEvolveE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/SchemaEvolvingTransformE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/TransformE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/UdfE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/utils/PipelineTestEnvironment.java

# Conflicts:
#	.github/workflows/flink_cdc_ci_nightly.yml

# Conflicts:
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/RouteE2eITCase.java
#	flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests/src/test/java/org/apache/flink/cdc/pipeline/tests/UdfE2eITCase.java
@yuxiqian yuxiqian changed the title [FLINK-37453][tests] Port Ruby migration tests to Java [FLINK-37453][tests] Add state restoration Pipeline E2e cases Apr 22, 2025
Copy link
Contributor

@leonardBang leonardBang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @yuxiqian for the contribution, as this is a test improvement, +1 to merge once CI passed

@leonardBang leonardBang merged commit e35180d into apache:master Apr 25, 2025
21 checks passed
linjianchang pushed a commit to linjianchang/flink-cdc that referenced this pull request May 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants