Discharge every abstract test of Annex A - #63
Open
estebanzimanyi wants to merge 3 commits into
Open
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.atsDischargedBynames, 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 dischargestproperties-post-successand not the singulartproperty-post-success.TestATSEveryLiveRowIsDischargedkeeps 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.