Skip to content

Add end-to-end tests to verify data type support when migrating from MySQL #1243

Merged
pratickchokhani merged 13 commits intoGoogleCloudPlatform:masterfrom
nmemond:data-type-e2e-tests
Jan 7, 2026
Merged

Add end-to-end tests to verify data type support when migrating from MySQL #1243
pratickchokhani merged 13 commits intoGoogleCloudPlatform:masterfrom
nmemond:data-type-e2e-tests

Conversation

@nmemond
Copy link
Contributor

@nmemond nmemond commented Dec 2, 2025

This PR adds end-to-end tests to verify data type support when migrating from a MySQL database. It focuses only on the schema migration portion, verification for the data migration is not included here.

The expected data type mappings were determined based on the SMT documentation and Spanner's own documentation.

These end-to-end tests are expected to run against an actual Spanner instance, not an emulated Spanner instance. As such, they have been separated from the other integration tests with a new env var, SPANNER_MIGRATION_TOOL_RUN_E2E_TESTS, to indicate that the E2E tests should be run.

Additionally, given that these run against an actual Spanner instance, they're a bit slower than other tests (on the order of minutes, not seconds). I expect it makes more sense to only run these on-demand instead of for every build.

Also, note that some of these tests don't actually pass: I've written them under the expectation that the mappings defined in the documentation above are correct. Unfortunately, this is not always the case and the documentation differs from the actual implementation for a few of the types. I'll be including the full details of all the issues and disparities in the actual parity report.

  • Tests pass
  • Appropriate changes to README are included in PR

@nmemond nmemond force-pushed the data-type-e2e-tests branch 2 times, most recently from 17e06d5 to 21c5dcf Compare December 9, 2025 14:22
@codecov
Copy link

codecov bot commented Dec 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 47.22%. Comparing base (6939610) to head (fab27ac).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1243      +/-   ##
==========================================
- Coverage   47.22%   47.22%   -0.01%     
==========================================
  Files         231      231              
  Lines       26698    26698              
  Branches      581      581              
==========================================
- Hits        12609    12607       -2     
- Misses      13368    13370       +2     
  Partials      721      721              
Components Coverage Δ
backend-apis 42.11% <ø> (ø)
backend-library 51.58% <ø> (ø)
cli 24.44% <ø> (ø)
frontend 38.77% <ø> (-0.05%) ⬇️
see 1 file with indirect coverage changes
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nmemond nmemond marked this pull request as ready for review January 5, 2026 13:59
@nmemond nmemond requested a review from a team as a code owner January 5, 2026 13:59
@nmemond nmemond requested review from darshan-sj and manitgupta and removed request for a team January 5, 2026 13:59
@pratickchokhani pratickchokhani merged commit 76e68d1 into GoogleCloudPlatform:master Jan 7, 2026
12 checks passed
@nmemond nmemond deleted the data-type-e2e-tests branch January 7, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants