Files
FreeCADWasmDev/freecad-source/src/WebAssembly/FreeCADCoreProbe/web-action-03-save-reopen-smoke.js
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

22 lines
1.1 KiB
JavaScript

const fs=require("fs"),path=require("path"),{pathToFileURL}=require("url");
const b=path.resolve(process.argv[2]||"build-web/configure/bin");
(async()=>{
globalThis.__dirname=`${b}${path.sep}`; globalThis.require=require;
const m=await import(pathToFileURL(path.join(b,"FreeCADWebWebRuntimeProbe.js")));
const p=await m.default({wasmBinary:fs.readFileSync(path.join(b,"FreeCADWebWebRuntimeProbe.wasm"))});
const c=(n,t="number")=>p.ccall(n,t);
const initialized=c("fc_web_web_initialize");
const result={
initialized,
persistenceApplicable:false,
sourceEntry:"src/Mod/Web/App/AppWeb.cpp",
apiCount:c("fc_web_web_api_count"),
resourcesReleased:c("fc_web_web_resources_released"),
error:c("fc_web_web_error","string"),
fcstdRoundTrip:false,
reason:"Web server module has no App::Document or FCStd save/reopen API"
};
if(!(initialized===1&&result.persistenceApplicable===false&&result.apiCount===3&&result.resourcesReleased===1&&result.error==="")) throw Error(JSON.stringify(result));
console.log(JSON.stringify(result));
})().catch(e=>{console.error(e);process.exitCode=1});