import assert from "node:assert/strict"; import fs from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; import { createLinuxCncTaskHalSdk } from "../../../wasm-port/runtime/sdk/src/linuxcnc-task-hal.js"; import { collectHalMeterScopeEvidence, validateHalMeterEvidence, validateHalScopeWaveformEvidence, } from "../../../wasm-port/runtime/sdk/src/hal-meter-scope-evidence.js"; const workspace = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../.."); const wasmBinary = fs.readFileSync(path.join(workspace, "wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm")); const sdk = await createLinuxCncTaskHalSdk({ wasmBinary, print() {}, printErr() {} }); const { halMeterEvidence, halScopeWaveformEvidence } = collectHalMeterScopeEvidence(sdk.module, { profileId: "xyzbc-trt", samplePeriodNs: 1000000, recordLength: 16, }); assert.equal(validateHalMeterEvidence(halMeterEvidence), true); assert.equal(validateHalScopeWaveformEvidence(halScopeWaveformEvidence), true); assert.equal(halMeterEvidence.profileId, "xyzbc-trt"); assert.equal(halScopeWaveformEvidence.profileId, "xyzbc-trt"); assert.equal(halScopeWaveformEvidence.samples.length, 16); console.log("web_hal_meter_evidence=ok"); console.log("web_hal_scope_waveform_evidence=ok");