按规划继续工作
结论:新增 namedparam_ini_semantics 夹具,将本地命名参数和 _ini[...] 查询纳入 upstream rs274 -i 基线,并接入 Node WASM 与浏览器 INI-aware 解释器 smoke;HAL 查询继续保留在 standalone adapter 边界。
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
saveMachineTextFiles,
|
||||
} from "../../runtime/opfs/machine-file-store.js";
|
||||
import {
|
||||
INTERP_BASELINE_INI_FIXTURE,
|
||||
INTERP_BROWSER_FILE_FIXTURES,
|
||||
INTERP_BROWSER_MDI_FIXTURES,
|
||||
INTERP_ERROR_FIXTURES,
|
||||
@@ -240,6 +241,18 @@
|
||||
namedParamExpectedText,
|
||||
);
|
||||
|
||||
const baselineIniProgramText = await fetchText(
|
||||
`../fixtures/gcode/${INTERP_BASELINE_INI_FIXTURE}.ngc`,
|
||||
);
|
||||
const baselineIniExpectedText = (
|
||||
await fetchText(`../fixtures/canon/${INTERP_BASELINE_INI_FIXTURE}.events`)
|
||||
).trimEnd();
|
||||
verifyExpectedOutput(
|
||||
INTERP_BASELINE_INI_FIXTURE,
|
||||
interp.runProgramWithIni(baselineIniProgramText, namedParamIniPath),
|
||||
baselineIniExpectedText,
|
||||
);
|
||||
|
||||
const positionParamsText = await fetchText(
|
||||
`../fixtures/gcode/${INTERP_POSITION_PARAMS_FILE_FIXTURE}.ngc`,
|
||||
);
|
||||
@@ -273,6 +286,14 @@
|
||||
namedParamExpectedText,
|
||||
);
|
||||
|
||||
const baselineIniPath = `/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`;
|
||||
interp.writeTextFile(baselineIniPath, baselineIniProgramText);
|
||||
verifyExpectedOutput(
|
||||
`${INTERP_BASELINE_INI_FIXTURE}_file`,
|
||||
interp.runFileWithIni(baselineIniPath, namedParamIniPath),
|
||||
baselineIniExpectedText,
|
||||
);
|
||||
|
||||
verifyExpectedOutput(
|
||||
"restore_parameters_missing_file",
|
||||
interp.restoreParameters("/work/browser-missing.var"),
|
||||
|
||||
4
wasm-port/tests/fixtures/canon/namedparam_ini_semantics.events
vendored
Normal file
4
wasm-port/tests/fixtures/canon/namedparam_ini_semantics.events
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
canon_event=MESSAGE: named local=7.2500
|
||||
canon_event=MESSAGE: exists local=1 missing=0
|
||||
canon_event=MESSAGE: ini velocity=35
|
||||
canon_event=PROGRAM_END
|
||||
8
wasm-port/tests/fixtures/gcode/namedparam_ini_semantics.ngc
vendored
Normal file
8
wasm-port/tests/fixtures/gcode/namedparam_ini_semantics.ngc
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
#<local_probe> = 7.25
|
||||
#<exists_local> = EXISTS[#<local_probe>]
|
||||
#<exists_missing> = EXISTS[#<missing_probe>]
|
||||
#<ini_velocity> = #<_ini[traj]max_linear_velocity>
|
||||
(DEBUG, named local=%f#<local_probe>)
|
||||
(DEBUG, exists local=%d#<exists_local> missing=%d#<exists_missing>)
|
||||
(DEBUG, ini velocity=%d#<ini_velocity>)
|
||||
M2
|
||||
@@ -71,4 +71,5 @@ export const INTERP_FILE_FIXTURES = [
|
||||
export const INTERP_BROWSER_FILE_FIXTURES = INTERP_FILE_FIXTURES;
|
||||
|
||||
export const INTERP_INI_FIXTURE = "namedparam_semantics";
|
||||
export const INTERP_BASELINE_INI_FIXTURE = "namedparam_ini_semantics";
|
||||
export const INTERP_POSITION_PARAMS_FILE_FIXTURE = "position_params";
|
||||
|
||||
@@ -5,6 +5,7 @@ import assert from "node:assert/strict";
|
||||
|
||||
import { createLinuxCncInterpSdk } from "../../../runtime/sdk/src/index.js";
|
||||
import {
|
||||
INTERP_BASELINE_INI_FIXTURE,
|
||||
INTERP_ERROR_FIXTURES,
|
||||
INTERP_FILE_FIXTURES,
|
||||
INTERP_INI_FIXTURE,
|
||||
@@ -188,6 +189,20 @@ verifyExpectedOutput(
|
||||
namedParamExpected,
|
||||
);
|
||||
|
||||
const baselineIniProgramText = readFileSync(
|
||||
resolve(rootDir, `tests/fixtures/gcode/${INTERP_BASELINE_INI_FIXTURE}.ngc`),
|
||||
"utf8",
|
||||
);
|
||||
const baselineIniExpected = readFileSync(
|
||||
resolve(rootDir, `tests/fixtures/canon/${INTERP_BASELINE_INI_FIXTURE}.events`),
|
||||
"utf8",
|
||||
).trimEnd();
|
||||
verifyExpectedOutput(
|
||||
INTERP_BASELINE_INI_FIXTURE,
|
||||
interp.runProgramWithIni(baselineIniProgramText, namedParamIniPath),
|
||||
baselineIniExpected,
|
||||
);
|
||||
|
||||
for (const fixtureName of INTERP_ERROR_FIXTURES) {
|
||||
const programText = readFileSync(
|
||||
resolve(rootDir, `tests/fixtures/gcode_errors/${fixtureName}.ngc`),
|
||||
@@ -239,6 +254,14 @@ verifyExpectedOutput(
|
||||
namedParamExpected,
|
||||
);
|
||||
|
||||
const baselineIniFilePath = `/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`;
|
||||
interp.writeTextFile(baselineIniFilePath, baselineIniProgramText);
|
||||
verifyExpectedOutput(
|
||||
`${INTERP_BASELINE_INI_FIXTURE}_file`,
|
||||
interp.runFileWithIni(baselineIniFilePath, namedParamIniPath),
|
||||
baselineIniExpected,
|
||||
);
|
||||
|
||||
const positionParamsFilePath = "/work/position_params.ngc";
|
||||
interp.writeTextFile(
|
||||
positionParamsFilePath,
|
||||
|
||||
Reference in New Issue
Block a user