Skip to content

test: Wire wrapper, context comparison and FDv1 fallback options in the contract test service - #418

Open
kinyoklion wants to merge 1 commit into
mainfrom
rlamb/contract-tests-wire-capabilities
Open

kinyoklion wants to merge 1 commit into
mainfrom
rlamb/contract-tests-wire-capabilities

Conversation

@kinyoklion

@kinyoklion kinyoklion commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Summary

The contract test service now declares four capabilities that the SDK already supports, so the harness tests they gate now run:

  • context-type: the contextBuild and contextConvert handlers already existed. This turns on the context type/build and context type/convert tests.
  • context-comparison: adds the contextComparison command, which builds both contexts and compares them with LDContext.equals.
  • wrapper: maps wrapper to HttpConfigurationBuilder.wrapper. The harness sends an empty string for an unset name or version, so the service treats it as unset.
  • fdv1-fallback (v3): reads dataSystem.fdv1Fallback. Its base URI becomes the polling endpoint, which the SDK's FDv1 fallback synchronizer uses. This turns on the streaming/fdv2/FDv1 fallback directive tests.

It also removes streaming/fdv2/fallback to FDv1 handling from testharness-suppressions-fdv2.txt. No test at v3.2.0-alpha.10 has that name.

Tested with this PR's CI. The emulator does not boot locally on this aarch64 host, which has no KVM, so I only built the APK locally.

Opened from termag


Note

Overview
The Android contract test service advertises four new harness capabilities (context-type, context-comparison, wrapper, fdv1-fallback) so gated conformance tests can run against behavior the SDK already implements.

Config wiring: harness wrapper name/version map to HttpConfigurationBuilder.wrapper, with empty strings treated as unset so headers are not sent blank. When a data system config is used, dataSystem.fdv1Fallback.baseUri sets the top-level polling endpoint used by the SDK’s FDv1 fallback synchronizer.

New command: contextComparison builds two contexts (single or multi-kind, attributes, literal/path private attributes) and returns whether LDContext.equals matches.

Harness list: removes the obsolete suppression streaming/fdv2/fallback to FDv1 handling from testharness-suppressions-fdv2.txt.

Reviewed by Cursor Bugbot for commit 79b3e4e. Bugbot is set up for automated code reviews on this repo. Configure here.

…he contract test service

Declare context-type, context-comparison, wrapper and fdv1-fallback, and
drop a suppression that matches no test on the pinned v3 harness.

Generated-by: termag
@kinyoklion
kinyoklion marked this pull request as ready for review November 3, 2026 17:56
@kinyoklion
kinyoklion requested a review from a team as a code owner November 3, 2026 17:56

This branch has not been deployed

No deployments
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