chore: close wasm status contract work
This commit is contained in:
97
wasm-port/tools/verify_task_emccanon_motion_output.sh
Executable file
97
wasm-port/tools/verify_task_emccanon_motion_output.sh
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
LINUXCNC_ROOT="${LINUXCNC_ROOT:-$ROOT_DIR/../linuxcnc}"
|
||||
UPSTREAM="$LINUXCNC_ROOT/src/emc/task/emccanon.cc"
|
||||
SUBSET_SRC="$ROOT_DIR/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.cc"
|
||||
SUBSET_HDR="$ROOT_DIR/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.hh"
|
||||
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_emccanon_motion_output_status=fail\n'
|
||||
printf 'task_emccanon_motion_output_error=%s\n' "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
require_file() {
|
||||
local label="$1"
|
||||
local file="$2"
|
||||
[[ -f "$file" ]] || fail "$label missing: $file"
|
||||
printf 'task_emccanon_motion_output_%s=ok\n' "$label"
|
||||
}
|
||||
|
||||
require_text() {
|
||||
local label="$1"
|
||||
local file="$2"
|
||||
local text="$3"
|
||||
grep -Fq "$text" "$file" || fail "$label missing"
|
||||
printf 'task_emccanon_motion_output_%s=ok\n' "$label"
|
||||
}
|
||||
|
||||
reject_text() {
|
||||
local label="$1"
|
||||
local file="$2"
|
||||
local text="$3"
|
||||
if grep -Fq "$text" "$file"; then
|
||||
fail "$label present"
|
||||
fi
|
||||
printf 'task_emccanon_motion_output_%s=absent\n' "$label"
|
||||
}
|
||||
|
||||
require_file upstream "$UPSTREAM"
|
||||
require_file subset_source "$SUBSET_SRC"
|
||||
require_file subset_header "$SUBSET_HDR"
|
||||
require_file task_wrapper "$TASK_WRAPPER"
|
||||
require_file wasm_test "$WASM_TEST"
|
||||
require_file matrix "$MATRIX"
|
||||
|
||||
for fn in \
|
||||
SET_MOTION_OUTPUT_BIT \
|
||||
CLEAR_MOTION_OUTPUT_BIT \
|
||||
SET_AUX_OUTPUT_BIT \
|
||||
CLEAR_AUX_OUTPUT_BIT \
|
||||
SET_MOTION_OUTPUT_VALUE \
|
||||
SET_AUX_OUTPUT_VALUE \
|
||||
WAIT
|
||||
do
|
||||
require_text "upstream_$fn" "$UPSTREAM" "$fn"
|
||||
done
|
||||
|
||||
require_text upstream_dout "$UPSTREAM" "EMC_MOTION_SET_DOUT"
|
||||
require_text upstream_aout "$UPSTREAM" "EMC_MOTION_SET_AOUT"
|
||||
require_text upstream_wait "$UPSTREAM" "EMC_AUX_INPUT_WAIT"
|
||||
require_text upstream_interp_list "$UPSTREAM" "interp_list.append"
|
||||
|
||||
require_text subset_output_type "$SUBSET_HDR" "LcEmcCanonSubsetOutputCommand"
|
||||
require_text subset_motion_bit_decl "$SUBSET_HDR" "lc_emccanon_subset_set_motion_output_bit"
|
||||
require_text subset_aux_value_decl "$SUBSET_HDR" "lc_emccanon_subset_set_aux_output_value"
|
||||
require_text subset_wait_decl "$SUBSET_HDR" "lc_emccanon_subset_wait_input"
|
||||
require_text subset_anchor_decl "$SUBSET_HDR" "lc_emccanon_subset_motion_output_anchor_list"
|
||||
require_text subset_anchor "$SUBSET_SRC" "EMC_MOTION_SET_DOUT,EMC_MOTION_SET_AOUT,EMC_AUX_INPUT_WAIT,interp_list"
|
||||
|
||||
require_text wrapper_output_count "$TASK_WRAPPER" "motionOutputCount"
|
||||
require_text wrapper_output_append "$TASK_WRAPPER" "motionOutputAppendCount"
|
||||
require_text wrapper_aout_bridge "$TASK_WRAPPER" "motionOutputTaskintfAoutCount"
|
||||
require_text wrapper_wait_count "$TASK_WRAPPER" "waitInputCount"
|
||||
require_text wrapper_issue_helper "$TASK_WRAPPER" "issue_motion_output_from_line"
|
||||
require_text wrapper_m428_exact "$TASK_WRAPPER" "line_has_m_code(line, 428)"
|
||||
require_text wrapper_m62_exact "$TASK_WRAPPER" "line_has_m_code(line, 62)"
|
||||
require_text wrapper_m68_exact "$TASK_WRAPPER" "line_has_m_code(line, 68)"
|
||||
require_text wrapper_anchor "$TASK_WRAPPER" "lc_emccanon_subset_motion_output_anchor_list"
|
||||
reject_text wrapper_old_m428_special "$TASK_WRAPPER" 'mdi.find("M428")'
|
||||
|
||||
require_text wasm_test_status "$WASM_TEST" "emccanon_motion_output_status=ok"
|
||||
require_text wasm_test_m428 "$WASM_TEST" "M428"
|
||||
require_text wasm_test_m62 "$WASM_TEST" "M62 P1"
|
||||
require_text wasm_test_m66 "$WASM_TEST" "M66 P4 L3 Q0.5"
|
||||
require_text wasm_test_m68 "$WASM_TEST" "M68 E3 Q2.5"
|
||||
require_text wasm_test_output_count "$WASM_TEST" "motionOutputCount"
|
||||
require_text wasm_test_anchor "$WASM_TEST" "motionOutputAnchors"
|
||||
|
||||
require_text matrix_t045_done "$MATRIX" '| T-045 | `emccanon.cc` motion output/switchkins 子集 | 完成 |'
|
||||
require_text matrix_t046_done "$MATRIX" '| T-046 | 移除主路径 JSON motion plan 依赖 | 完成 |'
|
||||
|
||||
printf 'task_emccanon_motion_output_status=ok\n'
|
||||
Reference in New Issue
Block a user