继续推进:浏览器批量验证LinuxCNC配置入口

结论:浏览器 WASM smoke 已读取 LinuxCNC 生成的 64 个 switchkins 配置用例,覆盖 config/MACHINE/KINEMATICS/HALFILE 入口;native 与 source-link 验证通过。
This commit is contained in:
cnc
2026-05-30 10:19:32 +08:00
parent c2d1aa6fe3
commit 1498d9830d
6 changed files with 134 additions and 4 deletions

View File

@@ -8,6 +8,9 @@ mode=table
if [[ "${1:-}" == "--config-cases" ]]; then
mode=config-cases
shift
elif [[ "${1:-}" == "--json-cases" ]]; then
mode=json-cases
shift
fi
manifest=${1:-linuxcnc-kinematics-source-files.txt}
@@ -131,6 +134,7 @@ declare -A seen_aliases=()
declare -A seen_cases=()
entries=()
case_entries=()
json_case_entries=()
add_alias() {
local alias=$1
@@ -166,9 +170,12 @@ add_case() {
[[ -z "${seen_cases[$key]:-}" ]] || return 0
seen_cases[$key]=1
field=$(cpp_string "$field")
value=$(cpp_string "$value")
case_entries+=(" {\"$field\", \"$value\", $m428, $m429, $m430},")
local cpp_field
local cpp_value
cpp_field=$(cpp_string "$field")
cpp_value=$(cpp_string "$value")
case_entries+=(" {\"$cpp_field\", \"$cpp_value\", $m428, $m429, $m430},")
json_case_entries+=("{\"field\":\"$cpp_field\",\"value\":\"$cpp_value\",\"m428\":$m428,\"m429\":$m429,\"m430\":$m430}")
}
add_machine_aliases() {
@@ -298,6 +305,16 @@ elif [[ "$mode" == config-cases ]]; then
EOF
printf '%s\n' "${case_entries[@]}"
elif [[ "$mode" == json-cases ]]; then
printf '[\n'
for i in "${!json_case_entries[@]}"; do
suffix=,
if [[ "$i" == "$((${#json_case_entries[@]} - 1))" ]]; then
suffix=
fi
printf ' %s%s\n' "${json_case_entries[$i]}" "$suffix"
done
printf ']\n'
else
echo "unknown switchkins remap table generator mode: $mode" >&2
exit 1