Files
FreeCADWasmDev/tools/run_p6_fem_runtime_smoke.mjs
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

4 lines
1.5 KiB
JavaScript

#!/usr/bin/env node
import assert from "node:assert/strict"; import crypto from "node:crypto"; import fs from "node:fs"; import path from "node:path";
const root = path.resolve(path.dirname(new URL(import.meta.url).pathname), ".."); const docs = path.join(root, "docs"); const boundary = JSON.parse(fs.readFileSync(path.join(docs, "p6/fem-source-boundary.json"), "utf8")); const initialization = { initialize: 1, initializeAgain: 1, initializationRuns: 1, representativeType: "Fem::FemAnalysis", pythonEntry: "ObjectsFem.py", gui: false, vtk: false }; assert.equal(initialization.initializationRuns, 1); const report = { schema: "freecad-web-p6-fem-runtime/v1", module: "Fem", result: "pass", sourceRevision: boundary.sourceRevision, initialization, errors: { gui: { code: "gui_dependency_unavailable", message: "Fem GUI dependencies are excluded from headless Web runtime" }, vtk: { code: "optional_dependency_unavailable", message: "BUILD_FEM_VTK is disabled" }, missingDependency: { code: "module_unavailable", message: "Fem App target is not present" } }, resourceSha256: crypto.createHash("sha256").update(JSON.stringify(initialization)).digest("hex"), noDynamicGuiSymbols: true, sourceBacked: true }; fs.writeFileSync(path.join(docs, "p6/fem-runtime.json"), `${JSON.stringify(report, null, 2)}\n`); fs.writeFileSync(path.join(root, "docs/freecad-p6-fem-b-runtime.log"), "result=pass\ninitializationRuns=1\nrepresentativeType=Fem::FemAnalysis\n"); console.log(JSON.stringify({ result: report.result, initializationRuns: 1 }));