Skip to content

Adopt XDR views: add differential test suites for ensuring byte-equal JSON responses #987

Closed

Description

@cjonas9

What

Each XDR-view migration swaps the decode-based path behind a v1 method for a view-walk over raw ledger bytes. The wire contract must not move and a client cannot tell the two backends apart. This issue tracks the differential suites that prove it, one per migrated method, by freezing the pre-view path test-locally and asserting it and the view path produce byte-identical response JSON over a corpus that sweeps the shapes the migration touches.

This should ensure byte equality, not semantic equality, so if a field appears, vanishes or reorders, the differential test suite fails.

Acceptance criteria

  • Add getTransactions differential test suite #976 merged: getTransactions suite plus the shared machinery in differential_test.go (generic comparator, cursor-chain driver, corpus builders, sqlite seeding).
  • Add getEvents differential tests #982 merged: getEvents suite built on that machinery, with the SDK's GetEventsRequest.Matches frozen locally rather than called.
    • deprecate/remove unused legacy helpers in the SDK after
  • Each suite's reference path is frozen in test code and no production code depends on it.
  • Each suite pins its own corpus and filter table as non-vacuous, so a silently empty or one-shaped fixture cannot pass.
  • Both suites pass and lint clean on feature/full-history once the stack lands.

Activity

  1. added this to the platform sprint 75 milestone on Sep 8, 2026
  2. self-assigned this
    on Sep 8, 2026
  3. changed the title [-]Adopt XDR views: add differential test suites for ensuring byte-equal responses[/-] [+]Adopt XDR views: add differential test suites for ensuring byte-equal JSON responses[/+] on Sep 8, 2026
  4. linked a pull request that will close this issueAdd getEvents differential tests #982on Sep 8, 2026
  5. linked a pull request that will close this issueAdd getTransactions differential test suite #976on Sep 8, 2026
  6. moved this from To Do to In Progress in Platform Scrumon Sep 8, 2026
  7. moved this from In Progress to Done in Platform Scrumon Sep 21, 2026
  8. closed this as completedby moving to Done in Platform Scrumon Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions