chore: close wasm status contract work
This commit is contained in:
82
wasm-port/tools/verify_task_taskintf_traj_control.sh
Executable file
82
wasm-port/tools/verify_task_taskintf_traj_control.sh
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
LINUXCNC_ROOT="${LINUXCNC_ROOT:-$ROOT_DIR/../linuxcnc}"
|
||||
UPSTREAM_TASKINTF="$LINUXCNC_ROOT/src/emc/task/taskintf.cc"
|
||||
UPSTREAM_MOTION="$LINUXCNC_ROOT/src/emc/motion/motion.h"
|
||||
SUBSET_SRC="$ROOT_DIR/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.cc"
|
||||
SUBSET_HDR="$ROOT_DIR/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh"
|
||||
LCMOT_HDR="$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h"
|
||||
LCMOT_SRC="$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c"
|
||||
TASK_WRAPPER="$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp"
|
||||
WASM_TEST="$ROOT_DIR/tests/wasm/node/verify_task_hal_wasm.mjs"
|
||||
MATRIX="$ROOT_DIR/working/04-任务矩阵.md"
|
||||
|
||||
fail() {
|
||||
printf 'task_taskintf_traj_control_status=fail\n'
|
||||
printf 'task_taskintf_traj_control_error=%s\n' "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
require_file() {
|
||||
local label="$1"
|
||||
local file="$2"
|
||||
[[ -f "$file" ]] || fail "$label missing: $file"
|
||||
printf 'task_taskintf_traj_control_%s=ok\n' "$label"
|
||||
}
|
||||
|
||||
require_text() {
|
||||
local label="$1"
|
||||
local file="$2"
|
||||
local text="$3"
|
||||
grep -Fq "$text" "$file" || fail "$label missing"
|
||||
printf 'task_taskintf_traj_control_%s=ok\n' "$label"
|
||||
}
|
||||
|
||||
require_file upstream_taskintf "$UPSTREAM_TASKINTF"
|
||||
require_file upstream_motion "$UPSTREAM_MOTION"
|
||||
require_file subset_source "$SUBSET_SRC"
|
||||
require_file subset_header "$SUBSET_HDR"
|
||||
require_file lcmot_header "$LCMOT_HDR"
|
||||
require_file lcmot_source "$LCMOT_SRC"
|
||||
require_file task_wrapper "$TASK_WRAPPER"
|
||||
require_file wasm_test "$WASM_TEST"
|
||||
require_file matrix "$MATRIX"
|
||||
|
||||
for fn in emcTrajSetMotionId emcTrajEnable emcTrajDisable emcTrajAbort emcTrajPause emcTrajStep emcTrajResume; do
|
||||
require_text "upstream_taskintf_$fn" "$UPSTREAM_TASKINTF" "int $fn("
|
||||
done
|
||||
|
||||
for cmd in EMCMOT_ENABLE EMCMOT_DISABLE EMCMOT_ABORT EMCMOT_PAUSE EMCMOT_STEP EMCMOT_RESUME; do
|
||||
require_text "upstream_motion_$cmd" "$UPSTREAM_MOTION" "$cmd"
|
||||
done
|
||||
|
||||
require_text subset_has_enable_enum "$SUBSET_HDR" "LC_TASKINTF_SUBSET_COMMAND_TRAJ_ENABLE"
|
||||
require_text subset_has_disable_enum "$SUBSET_HDR" "LC_TASKINTF_SUBSET_COMMAND_TRAJ_DISABLE"
|
||||
require_text subset_has_motion_id_enum "$SUBSET_HDR" "LC_TASKINTF_SUBSET_COMMAND_TRAJ_SET_MOTION_ID"
|
||||
require_text subset_has_enable_fn "$SUBSET_HDR" "lc_taskintf_subset_traj_enable"
|
||||
require_text subset_has_disable_fn "$SUBSET_HDR" "lc_taskintf_subset_traj_disable"
|
||||
require_text subset_has_motion_id_fn "$SUBSET_HDR" "lc_taskintf_subset_traj_set_motion_id"
|
||||
require_text subset_anchor_list "$SUBSET_SRC" "emcTrajSetMotionId,emcTrajEnable,emcTrajDisable,emcTrajAbort,emcTrajPause,emcTrajStep,emcTrajResume"
|
||||
|
||||
require_text lcmot_snapshot_enabled "$LCMOT_HDR" "motion_enabled"
|
||||
require_text lcmot_snapshot_next_id "$LCMOT_HDR" "next_motion_id"
|
||||
require_text lcmot_enable_command "$LCMOT_SRC" "LCMOT_CMD_ENABLE"
|
||||
require_text lcmot_disable_command "$LCMOT_SRC" "LCMOT_CMD_DISABLE"
|
||||
require_text lcmot_motion_id_command "$LCMOT_SRC" "LCMOT_CMD_SET_MOTION_ID"
|
||||
require_text lcmot_accepts_enable "$LCMOT_SRC" "EMC_TRAJ_ENABLE"
|
||||
require_text lcmot_accepts_disable "$LCMOT_SRC" "EMC_TRAJ_DISABLE"
|
||||
require_text lcmot_accepts_motion_id "$LCMOT_SRC" "EMC_TRAJ_SET_MOTION_ID"
|
||||
|
||||
require_text wrapper_uses_enable "$TASK_WRAPPER" "lc_taskintf_subset_traj_enable"
|
||||
require_text wrapper_uses_disable "$TASK_WRAPPER" "lc_taskintf_subset_traj_disable"
|
||||
require_text wrapper_uses_motion_id "$TASK_WRAPPER" "lc_taskintf_subset_traj_set_motion_id"
|
||||
require_text wrapper_exports_traj_count "$TASK_WRAPPER" "trajControlIssueCount"
|
||||
require_text wasm_test_prints_traj "$WASM_TEST" "taskintf_traj_control_status=ok"
|
||||
require_text wasm_test_asserts_traj "$WASM_TEST" "trajControlAnchors"
|
||||
|
||||
require_text matrix_t034_done "$MATRIX" '| T-034 | `taskintf.cc` traj control 子集 | 完成 |'
|
||||
require_text matrix_t035_done "$MATRIX" '| T-035 | `taskintf.cc` linear move issue 子集 | 完成 |'
|
||||
|
||||
printf 'task_taskintf_traj_control_status=ok\n'
|
||||
Reference in New Issue
Block a user