Advance simulation parity and 3-axis tutorial coverage
This commit is contained in:
@@ -2,6 +2,7 @@ import assert from "node:assert/strict";
|
||||
import { readFile } from "node:fs/promises";
|
||||
import createModule from "../../build-wasm/linuxcnc-sim-core.js";
|
||||
import { WorkspaceRuntime } from "../workspace/runtime.mjs";
|
||||
import { parseIni } from "../workspace/ini-parser.mjs";
|
||||
import { ConfigurationStartupStateMachine, startConfiguration } from "../workspace/configuration.mjs";
|
||||
import { SimSession, CONTEXT_ID } from "./sim-session.mjs";
|
||||
|
||||
@@ -10,6 +11,13 @@ const files = {
|
||||
"config/machine.hal": "setp sim.x 1\n",
|
||||
"config/main.ngc": "G0 X1\n",
|
||||
};
|
||||
const relativeIniWorkspace = new WorkspaceRuntime({ files: {
|
||||
"config/nested/main.ini": "#INCLUDE ../shared.inc\n",
|
||||
"config/shared.inc": "[HAL]\nHALFILE = ../machine.hal\n",
|
||||
"machine.hal": "setp sim.x 1\n",
|
||||
} });
|
||||
const relativeIni = parseIni({ workspace: relativeIniWorkspace, entrypoint: "config/nested/main.ini" });
|
||||
assert.deepEqual(relativeIni.includes.map((item) => item.path), ["config/shared.inc"]);
|
||||
const manifest = [{ component: "sim" }];
|
||||
const nativeCalls = [];
|
||||
let nativeSeq = 0;
|
||||
@@ -50,8 +58,8 @@ const ambiguous = startConfiguration({ workspace: new WorkspaceRuntime({ files:
|
||||
"linuxcnc/lib/machine.hal": "setp sim.x 1\n",
|
||||
"linuxcnc/lib/hallib/machine.hal": "setp sim.x 2\n",
|
||||
} }), entrypoint: "config/main.ini", core: nativeCore });
|
||||
assert.equal(ambiguous.status, "blocked");
|
||||
assert.equal(ambiguous.resources.resources[0].code, "resource_ambiguous");
|
||||
assert.equal(ambiguous.status, "ready");
|
||||
assert.equal(ambiguous.resources.resources[0].path, "linuxcnc/lib/hallib/machine.hal");
|
||||
|
||||
const unsupportedHal = startConfiguration({ workspace: new WorkspaceRuntime({ files: { "config/main.ini": "[HAL]\nHALFILE = machine.hal\n", "config/machine.hal": "loadrt unknown names=u\n" } }), entrypoint: "config/main.ini", core: nativeCore, halManifest: [] });
|
||||
assert.equal(unsupportedHal.status, "blocked");
|
||||
|
||||
Reference in New Issue
Block a user