Skip to content

TOOLS-4263 Convert mongorestore oplog-replay edge-case tests to Go#1048

Draft
autarch wants to merge 1 commit into
07-16-tools-4263_convert_mongorestore_invalid-input_tests_to_gofrom
07-17-tools-4263_convert_mongorestore_oplog-replay_edge-case_tests_to_go
Draft

TOOLS-4263 Convert mongorestore oplog-replay edge-case tests to Go#1048
autarch wants to merge 1 commit into
07-16-tools-4263_convert_mongorestore_invalid-input_tests_to_gofrom
07-17-tools-4263_convert_mongorestore_oplog-replay_edge-case_tests_to_go

Conversation

@autarch

@autarch autarch commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

The JS -> Go mapping (all under test/qa-tests/jstests/restore):

  • oplog_replay_conflict.js -> TestOplogReplayConflict
    (an embedded oplog plus --oplogFile must fail and apply no data)
  • oplog_replay_priority_oplog.js -> TestOplogReplayPriorityOplog
    (only the higher-priority --oplogFile entries are applied)
  • oplog_replay_noop.js -> TestOplogReplayNoop
    (noop entries are skipped, inserts applied)
  • preserve_oplog_structure_order.js -> TestOplogReplayPreservesComplexIDOrder
    (an update op with a multi-field subdocument _id preserves field
    order; the doc is pre-inserted on 8.1+ per SERVER-88158)
  • oplog_replay_size_safety.js -> TestOplogReplaySizeSafety
    (reduced matrix: 50k small ops + 8 ~1MB ops; the JS swept up to a
    million ops)

This also moves some fixtures under mongorestore/testdata. Move fixtures dump_oplog_conflict, dump_local_oplog, dump_with_noop_in_oplog, dump_with_complex_id_oplog, and extra_oplog.bson into mongorestore/testdata/.

The oplog_replay_local_rs.js and dumprestore7.js tests are not included in this conversion; they require a replica-set topology and will be converted separately.

The JS -> Go mapping (all under `test/qa-tests/jstests/restore`):

- oplog_replay_conflict.js         -> TestOplogReplayConflict
    (an embedded oplog plus --oplogFile must fail and apply no data)
- oplog_replay_priority_oplog.js   -> TestOplogReplayPriorityOplog
    (only the higher-priority --oplogFile entries are applied)
- oplog_replay_noop.js             -> TestOplogReplayNoop
    (noop entries are skipped, inserts applied)
- preserve_oplog_structure_order.js -> TestOplogReplayPreservesComplexIDOrder
    (an update op with a multi-field subdocument _id preserves field
    order; the doc is pre-inserted on 8.1+ per SERVER-88158)
- oplog_replay_size_safety.js      -> TestOplogReplaySizeSafety
    (reduced matrix: 50k small ops + 8 ~1MB ops; the JS swept up to a
    million ops)

This also moves some fixtures under `mongorestore/testdata`. Move fixtures dump_oplog_conflict, dump_local_oplog, dump_with_noop_in_oplog, dump_with_complex_id_oplog, and extra_oplog.bson into mongorestore/testdata/.

The `oplog_replay_local_rs.js` and `dumprestore7.js` tests are not included in this conversion; they require a replica-set topology and will be converted separately.

autarch commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant