test: add reproducible FreeCAD golden oracle
This commit is contained in:
@@ -21,7 +21,8 @@
|
||||
"document": { "level": "experimental", "operations": ["typed-properties", "property-vector", "property-placement", "property-multi-transform", "property-link-list", "property-string-list", "property-link-sub", "expressions", "units", "dependency-dag", "parallel-level-recompute", "sync-recompute", "async-generation-recompute", "root-cause-diagnostics", "repair-branch-recompute", "versioned-toporef", "toporef-migration", "generation-topology-snapshot", "linksub-external-geometry-migration", "ambiguous-deleted-topology-diagnostics", "toporef-candidate-replacement-transaction", "signature-topology-history-fallback", "undo-redo"] },
|
||||
"persistence": { "level": "experimental", "provider": "SQLite WASM + OPFS with transient fallback", "operations": ["schema-v6", "object-topology-snapshots", "transactional-migrations", "migration-rollback", "serialized-write-queue", "five-version-checkpoints", "checkpoint-load", "recovery-report", "content-addressed-resources", "quota-preflight", "resource-sweep-plan", "opfs-orphan-sweep", "cross-tab-lock-notice"] },
|
||||
"sketcher": { "level": "experimental", "provider": "typescript-basic; planegcs-wasm unavailable", "operations": ["point-line-circle-arc-model", "ellipse-bspline-model-only", "construction-geometry", "stable-external-geometry-model", "basic-constraints", "diameter-symmetric-tangent", "basic-solver", "versioned-solver-protocol", "solver-capability-probe", "cancel-stale-isolation", "replay-contract", "persistence"] },
|
||||
"fcstd": { "level": "read-only", "operations": ["zip-preflight", "document-xml-metadata", "proxy-report", "script-isolation"] }
|
||||
"fcstd": { "level": "read-only", "operations": ["zip-preflight", "document-xml-metadata", "proxy-report", "script-isolation"] },
|
||||
"verification": { "level": "experimental", "provider": "FreeCADCmd 1.1.1 native headless Part oracle", "operations": ["locked-source-commit", "reproducible-native-build", "declarative-golden-contract", "part-geometry-replay", "numeric-tolerance-comparison"] }
|
||||
},
|
||||
"rules": [
|
||||
"UI status does not imply geometry or file compatibility.",
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
"sourceUrl": "https://github.com/FreeCAD/FreeCAD/releases/tag/1.1.1",
|
||||
"uiContract": "FreeCAD official desktop UI and Developers Handbook",
|
||||
"compatibilityLevels": ["exact", "compatible", "read-only", "proxy", "unsupported"],
|
||||
"status": "release-tag-and-source-commit-verified",
|
||||
"notes": "The official 1.1.1 release tag resolves to the recorded commit. Build flags, compiler image, and enabled workbenches remain P0-01 deliverables."
|
||||
"status": "native-headless-part-oracle-verified",
|
||||
"notes": "The official 1.1.1 tag and commit are locked. A reproducible local headless Part oracle and five geometry replay fixtures are verified; the digest-locked container, full workbench build, 100 golden files, and 50 error files remain P0-01/P0-03 deliverables."
|
||||
}
|
||||
|
||||
3
config/freecad-native-bootstrap.cmake
Normal file
3
config/freecad-native-bootstrap.cmake
Normal file
@@ -0,0 +1,3 @@
|
||||
# FreeCAD 1.1.1 generates Base translations in headless builds but only loads
|
||||
# LinguistTools from its GUI branch. Keep the pinned source tree unmodified.
|
||||
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
|
||||
36
config/freecad-native-build.json
Normal file
36
config/freecad-native-build.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"baselineId": "freecad-1.1.1",
|
||||
"source": {
|
||||
"repository": "https://github.com/FreeCAD/FreeCAD.git",
|
||||
"tag": "1.1.1",
|
||||
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
|
||||
},
|
||||
"host": {
|
||||
"distribution": "Debian trixie",
|
||||
"compiler": "GCC 14.2.0",
|
||||
"cmake": "3.31.6",
|
||||
"ninja": "1.12.1",
|
||||
"python": "3.13.5",
|
||||
"qt": "6.8.2",
|
||||
"occt": "7.8.1",
|
||||
"swig": "4.3.0"
|
||||
},
|
||||
"configuration": {
|
||||
"buildType": "Release",
|
||||
"gui": false,
|
||||
"enabledModules": ["Part", "Material", "Measure"],
|
||||
"purpose": "FreeCADCmd geometry oracle; not a complete desktop distribution"
|
||||
},
|
||||
"artifact": {
|
||||
"path": ".cache/freecad/install-native/bin/FreeCADCmd",
|
||||
"reportedVersion": "FreeCAD 1.1.1 Revision: 14556 (Git)",
|
||||
"sizeBytes": 137688,
|
||||
"sha256": "14b8e8c94472249c657426ee312f6f6d05b62e328dfe2794d20c81c95379bfbc"
|
||||
},
|
||||
"verification": {
|
||||
"goldenManifest": "fixtures/freecad-golden/manifest.json",
|
||||
"scenarioCount": 5,
|
||||
"result": "passed"
|
||||
}
|
||||
}
|
||||
38
config/freecad-toolchain.json
Normal file
38
config/freecad-toolchain.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"baselineId": "freecad-1.1.1",
|
||||
"source": {
|
||||
"repository": "https://github.com/FreeCAD/FreeCAD.git",
|
||||
"tag": "1.1.1",
|
||||
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"verification": "git-ls-remote-tag"
|
||||
},
|
||||
"desktopOracle": {
|
||||
"commandEnvironmentVariable": "FREECAD_CMD",
|
||||
"candidateCommands": [".cache/freecad/install-native/bin/FreeCADCmd", "FreeCADCmd", "freecadcmd"],
|
||||
"requiredVersion": "1.1.1",
|
||||
"localBuildManifest": "config/freecad-native-build.json"
|
||||
},
|
||||
"wasmToolchain": {
|
||||
"emscripten": "3.1.69",
|
||||
"cmake": "3.31.6",
|
||||
"ninja": "1.12.1",
|
||||
"status": "host-tools-detected-container-lock-pending"
|
||||
},
|
||||
"sourceCheckout": {
|
||||
"defaultDirectory": ".cache/freecad/FreeCAD",
|
||||
"mode": "detached-pinned-commit"
|
||||
},
|
||||
"nativeBuild": {
|
||||
"buildDirectory": ".cache/freecad/build-native",
|
||||
"installDirectory": ".cache/freecad/install-native",
|
||||
"configuration": "Release",
|
||||
"status": "headless-part-oracle-verified"
|
||||
},
|
||||
"goldenContract": {
|
||||
"manifest": "fixtures/freecad-golden/manifest.json",
|
||||
"driver": "scripts/freecad-golden-driver.py",
|
||||
"resultPrefix": "FREECAD_GOLDEN_RESULT=",
|
||||
"schemaVersion": 1
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user