mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-14 23:32:20 +00:00
Check the globe contract by behaviour on every engine
The contract suite is split into one module per area and grows from 87 to 114 checks, each named after the member it exercises: a gesture during a flight does not cut it, a render request inside a frame draws the next one, a pure rotation raises changed, ground corridors are as wide in CSS pixels at device scale 2, imagery replans on resize, drapes draw only on their surface, sampleTerrainMostDetailed keeps order and passes on a rejection, terrainRevision changes on a new terrain and on fallback, follows raise followChanged on retarget, and a mesh, a ground fill and an imagery pixel draw the colour asked for. In the browser Cesium passes all 113 it runs at device scale 1 and 2; Navara passes 110 of 111 and reports its single-colour mesh, drawn before tone mapping, as a known failure. scripts/contract-mutants.test.mjs breaks one promise of the fake engine at a time, 30 mutants in all, and names the check that catches each; the list of contract members the suite never calls is down to five. maps.errors reports tile and terrain errors where an engine has them (the tileErrors capability: Cesium yes, Navara no), and the map controller falls back to another map only where it does; movers.list() rows tell whether a set is shown, as the other families do; FollowHandle .name and PickResult.primitive are marked deprecated. qa-contract-suite takes --dpr and the ANGLE backend from QA_ANGLE.
This commit is contained in:
1 parent
9c2a2d6951
commit
b03edaaf2b
39 files changed
+7247
-5194
No files matched your search
@@ -12,7 +12,12 @@ not through Cesium or Navara. The contract has five drawing primitives:
|
||||
Each engine implements all five. Cesium's are in `src/globe/cesium/`,
|
||||
Navara's in `src/globe/navara/`, and the fake engine's in
|
||||
`src/globe/testing/fakeEngine.js`. The checks every engine must pass are in
|
||||
`src/globe/testing/contractSuite.mjs`.
|
||||
`src/globe/testing/contractSuite/index.mjs`.
|
||||
|
||||
A new contract member lands in one change with its implementation on Cesium,
|
||||
Navara and the fake engine, a behavioral check in the contract suite, and a
|
||||
mutant that the check kills. Keep check names prefixed with the member they
|
||||
exercise; optional behavior belongs in `engineCapabilities`.
|
||||
|
||||
## Movers: things at a point
|
||||
|
||||
@@ -602,7 +607,7 @@ Run `createContractSuite(engine, { waitFrames, ... })` from
|
||||
pixel reads for browser checks; keep the fake-engine tests as fast contract
|
||||
checks. Test ownership and repeated destruction as well as visible output.
|
||||
The browser harness is `scripts/qa-contract-suite.mjs`; use
|
||||
`--only=ground:,imagery:` for ground and imagery pixel checks.
|
||||
`--only=ground.,imagery.` for ground and imagery pixel checks.
|
||||
|
||||
Three reports keep migration debt from growing: `scripts/report-engine-coupling.mjs`
|
||||
counts application coupling, `scripts/report-qa-harness.mjs` counts browser QA
|
||||
|
||||
Reference in new issue
Block a user