Skip to content

[Test logic] Metadata scenario strips timestamp before comparison #45

@balloob

Description

@balloob

Problem

The spec makes metadata.timestamp a required field ("server clock time in microseconds for when this metadata is valid") because the progress-drift formula depends on it.

The conformance harness discards it:

  • Client normalizer aiosendspin_client.py:126-148 _normalize_metadata_state has no timestamp key.
  • Server expected snapshot aiosendspin_server.py:151-167 _metadata_snapshot has no timestamp key.
  • Go server adapters/sendspin-go/server/main.go:648-665 metadataSnapshot has no timestamp key.

A server that omits timestamp or sets it to 0 would pass.

Proposed fix

  1. Include timestamp in the client and server metadata summaries.
  2. Assert it's present, an integer, > 0, and in microsecond range.
  3. Assert server-emitted value equals client-received value exactly.

See sibling issue on the progress-drift formula for the downstream effect of having a trustworthy timestamp.

Spec references

  • "Server → Client: server/state metadata object"

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions