Skip to content

Discharge every abstract test of Annex A - #63

Open
estebanzimanyi wants to merge 3 commits into
masterfrom
ats/annex-a-complete
Open

Discharge every abstract test of Annex A#63
estebanzimanyi wants to merge 3 commits into
masterfrom
ats/annex-a-complete

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Annex A is the only conformance instrument Part 1 has, and each of its 45 abstract tests rests on evidence. Three commits of one topic.

The conformance job runs MobilityDB master, which is what this tier is built against. A job pinned to a release measures a MobilityDB the project does not develop, so a defect fixed upstream reads as a live one: deleting a temporal value whose span covers a whole composing sequence segfaults the backend on 1.3.0 and answers correctly on master. Naming a version somebody can install is a reason to also run a release, never a reason to develop against one.

Two POSTs answer 201, which Annex A requires of a POST that creates a sub-resource. Appending a temporal primitive geometry, and appending values to a temporal property, each create one.

Three live tests carry the remaining abstract tests — the moving-feature lifecycle (features-post, mf-delete, tgsequence-post, tpgeometry-delete), the temporal-property values (tproperty-post, tpvalue-delete) and the query parameters (leaf, subTrajectory). Each lifecycle creates its own subject and removes it, so the fixture the read-side tests assert against stays as it is. Each parameter assertion is that the answer moves: a parameter read and not acted on cannot be told from one ignored.

atsDischargedBy names, per abstract test needing a backend, the live test that discharges it, and the registry reports that name in place of an unconditional "awaits its live assertion", which reports a row a named group asserts as outstanding and makes the tier's own coverage report understate its conformance. The map is built from what a test calls: the temporal-property lifecycle posts to the plural route, so it discharges tproperties-post-success and not the singular tproperty-post-success. TestATSEveryLiveRowIsDischarged keeps every row carrying an entry that names a test the suite declares, and fails in both directions — a dropped entry, and an entry naming a test that does not exist.

Against master: 12 live groups pass, 0 placeholder skips, 17 of 17 backend-needing abstract tests discharged, and the 13 sample documents are identical.

The conformance job runs the master image, which is what this tier is built
against. A job pinned to a release measures a MobilityDB the project no longer
develops, so a defect already fixed upstream reads as a live one and blocks work
that is not blocked: deleting a temporal value whose span covers a whole
composing sequence segfaults the backend on 1.3.0 and answers correctly on
master. Naming a version somebody can install is a reason to also run a release,
never a reason to develop against one.
Appending a temporal primitive geometry to a feature, and appending values to a
temporal property, each answer 201: both create a sub-resource, and Annex A
requires 201 or 202 of the POST that does so.
Three live tests carry the abstract tests that had none: the moving-feature
lifecycle (features-post, mf-delete, tgsequence-post, tpgeometry-delete), the
temporal-property values (tproperty-post, tpvalue-delete) and the query
parameters (leaf, subTrajectory). Each lifecycle creates its own subject and
removes it, so the fixture the read-side tests assert against is untouched, and
each parameter assertion is that the answer MOVES: a parameter read and not
acted on cannot be told from one ignored.

`atsDischargedBy` names, per abstract test needing a backend, the live test that
discharges it, and the registry reports that name rather than an unconditional
"awaits its live assertion" — which reports a row a named group already asserts
as outstanding, so the tier's own coverage report understates its conformance.
The map is built from what a test CALLS: the temporal-property lifecycle posts
to the plural route, so it discharges tproperties-post-success and not the
singular tproperty-post-success. `TestATSEveryLiveRowIsDischarged` keeps every
row carrying an entry that names a test the suite declares.
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