77 lines
3.5 KiB
Bash
Executable File
77 lines
3.5 KiB
Bash
Executable File
#!/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"
|
|
BUILD_SCRIPT="$ROOT_DIR/tools/build_task_hal_wasm.sh"
|
|
WASM_TEST="$ROOT_DIR/tests/wasm/node/verify_task_hal_wasm.mjs"
|
|
MATRIX="$ROOT_DIR/working/04-任务矩阵.md"
|
|
|
|
fail() {
|
|
printf 'task_taskintf_linear_move_status=fail\n'
|
|
printf 'task_taskintf_linear_move_error=%s\n' "$1"
|
|
exit 1
|
|
}
|
|
|
|
require_file() {
|
|
local label="$1"
|
|
local file="$2"
|
|
[[ -f "$file" ]] || fail "$label missing: $file"
|
|
printf 'task_taskintf_linear_move_%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_linear_move_%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 build_script "$BUILD_SCRIPT"
|
|
require_file wasm_test "$WASM_TEST"
|
|
require_file matrix "$MATRIX"
|
|
|
|
require_text upstream_emcTrajLinearMove "$UPSTREAM_TASKINTF" "int emcTrajLinearMove("
|
|
require_text upstream_sets_line "$UPSTREAM_TASKINTF" "EMCMOT_SET_LINE"
|
|
require_text upstream_writes_command "$UPSTREAM_TASKINTF" "usrmotWriteEmcmotCommand(&emcmotCommand)"
|
|
require_text upstream_motion_set_line "$UPSTREAM_MOTION" "EMCMOT_SET_LINE"
|
|
|
|
require_text subset_linear_move_ex_decl "$SUBSET_HDR" "lc_taskintf_subset_linear_move_ex"
|
|
require_text subset_linear_move_ex_impl "$SUBSET_SRC" "lc_taskintf_subset_linear_move_ex"
|
|
require_text subset_motion_id_field "$SUBSET_SRC" "out->motion_id = motion_id"
|
|
require_text subset_ini_maxvel_field "$SUBSET_SRC" "out->ini_maxvel = ini_maxvel"
|
|
require_text subset_linear_anchor "$SUBSET_SRC" "emcTrajLinearMove,EMCMOT_SET_LINE,usrmotWriteEmcmotCommand"
|
|
|
|
require_text lcmot_linear_abi "$LCMOT_HDR" "lcmot_write_linear_move"
|
|
require_text lcmot_linear_impl "$LCMOT_SRC" "int lcmot_write_linear_move("
|
|
require_text lcmot_linear_command "$LCMOT_SRC" "command.type = LCMOT_CMD_LINEAR_MOVE"
|
|
require_text lcmot_linear_motion_id "$LCMOT_SRC" "next_command_motion_id"
|
|
|
|
require_text wrapper_structured_issue "$TASK_WRAPPER" "lcmot_write_linear_move"
|
|
require_text wrapper_pending_struct "$TASK_WRAPPER" "PendingMotionCommand"
|
|
require_text wrapper_linear_count "$TASK_WRAPPER" "linearMoveStructuredIssueCount"
|
|
require_text build_exports_linear "$BUILD_SCRIPT" "_lcmot_write_linear_move"
|
|
require_text wasm_test_prints_linear "$WASM_TEST" "taskintf_linear_move_status=ok"
|
|
require_text wasm_test_asserts_linear "$WASM_TEST" "linearMoveAnchors"
|
|
require_text wasm_test_direct_linear "$WASM_TEST" "_lcmot_write_linear_move"
|
|
|
|
require_text matrix_t035_done "$MATRIX" '| T-035 | `taskintf.cc` linear move issue 子集 | 完成 |'
|
|
require_text matrix_t036_done "$MATRIX" '| T-036 | `taskintf.cc` jog/home/switchkins 子集 | 完成 |'
|
|
|
|
printf 'task_taskintf_linear_move_status=ok\n'
|