Files
FreeCADWasmDev/freecad-source/src/WebAssembly/FreeCADCoreProbe/templatepymod-action02-recovery-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

2 lines
1.3 KiB
JavaScript

const fs=require("fs"),path=require("path"),{pathToFileURL}=require("url");const build=path.resolve(process.argv[2]||"build-web/configure/bin");(async()=>{globalThis.__dirname=`${build}${path.sep}`;globalThis.require=require;const m=await import(pathToFileURL(path.join(build,"FreeCADWebTemplatePyModRuntimeProbe.js")));const p=await m.default({wasmBinary:fs.readFileSync(path.join(build,"FreeCADWebTemplatePyModRuntimeProbe.wasm"))});const c=(n,t="number",a=[])=>p.ccall(n,t,a.length?["string"]:[],a);const valid="src/Mod/TemplatePyMod/DocumentObject.py",bad="src/Mod/TemplatePyMod/Missing.py";const before=c("fc_web_templatepymod_python_api_probe","number",[valid]),countBefore=c("fc_web_templatepymod_python_api_count"),rejected=c("fc_web_templatepymod_python_api_probe","number",[bad]),error=c("fc_web_templatepymod_error","string"),after=c("fc_web_templatepymod_python_api_probe","number",[valid]),countAfter=c("fc_web_templatepymod_python_api_count"),result={before,countBefore,rejected,error,after,countAfter,resourcesReleased:c("fc_web_templatepymod_resources_released")};if(!(before===1&&countBefore===65&&rejected===0&&error==="TemplatePyMod Python source entry is not locked"&&after===1&&countAfter===65&&result.resourcesReleased===1))throw Error(JSON.stringify(result));console.log(JSON.stringify(result))})().catch(e=>{console.error(e);process.exitCode=1})