Files
cnc_wams/wasm-port/tools/verify_task_emctask_subset.sh
2026-07-08 09:20:47 -04:00

61 lines
2.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="$LINUXCNC_ROOT/src/emc/task/emctask.cc"
SUBSET_SRC="$ROOT_DIR/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.cc"
SUBSET_HDR="$ROOT_DIR/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.hh"
BUILD_SCRIPT="$ROOT_DIR/tools/build_task_hal_wasm.sh"
print_kv() {
printf '%s=%s\n' "$1" "$2"
}
require_file() {
local key="$1"
local path="$2"
if [[ ! -f "$path" ]]; then
print_kv "$key" missing
print_kv "${key}_path" "$path"
exit 1
fi
print_kv "$key" ok
print_kv "${key}_path" "$path"
}
require_pattern() {
local key="$1"
local pattern="$2"
local path="$3"
if ! rg -q "$pattern" "$path"; then
print_kv "$key" missing
print_kv "${key}_pattern" "$pattern"
print_kv "${key}_path" "$path"
exit 1
fi
print_kv "$key" ok
}
require_file task_emctask_subset_upstream "$UPSTREAM"
require_file task_emctask_subset_source "$SUBSET_SRC"
require_file task_emctask_subset_header "$SUBSET_HDR"
require_pattern task_emctask_subset_upstream_determine_mode "EMC_TASK_MODE determineMode\\(" "$UPSTREAM"
require_pattern task_emctask_subset_upstream_determine_state "static EMC_TASK_STATE determineState\\(" "$UPSTREAM"
require_pattern task_emctask_subset_upstream_update "int emcTaskUpdate\\(" "$UPSTREAM"
require_pattern task_emctask_subset_upstream_abort "int emcTaskAbort\\(" "$UPSTREAM"
require_pattern task_emctask_subset_upstream_set_mode "int emcTaskSetMode\\(" "$UPSTREAM"
require_pattern task_emctask_subset_upstream_set_state "int emcTaskSetState\\(" "$UPSTREAM"
require_pattern task_emctask_subset_origin_path "src/emc/task/emctask.cc" "$SUBSET_SRC"
require_pattern task_emctask_subset_origin_determine_mode "determineMode\\(\\)" "$SUBSET_SRC"
require_pattern task_emctask_subset_origin_determine_state "determineState\\(\\)" "$SUBSET_SRC"
require_pattern task_emctask_subset_origin_update "emcTaskUpdate\\(\\)" "$SUBSET_SRC"
require_pattern task_emctask_subset_origin_abort "emcTaskAbort\\(\\)" "$SUBSET_SRC"
require_pattern task_emctask_subset_origin_set_mode "emcTaskSetMode\\(\\)" "$SUBSET_SRC"
require_pattern task_emctask_subset_origin_set_state "emcTaskSetState\\(\\)" "$SUBSET_SRC"
require_pattern task_emctask_subset_state_mode_anchor "emcTaskAbort,emcTaskSetMode,emcTaskSetState" "$SUBSET_SRC"
require_pattern task_emctask_subset_build_included "emctask_wasm_subset.cc" "$BUILD_SCRIPT"
print_kv task_emctask_subset_source_reuse ok