参考所有分组,完成尽量多的内容。禁止顺手扩功能 smoke
结论:按 align-linuxcnc 约束让 switchkins/remap 生成器读取 LinuxCNC INI [EMCIO] TOOL_TABLE,仅用于校验 linuxcnc-kinematics-source-files.txt 的 tooldata 源覆盖;不把 TOOL_TABLE 输出为新 API case,不扩展 smoke 行为。 源依据:../linuxcnc/configs/sim 下 M428/M429/M430 switchkins INI 的 [EMCIO] TOOL_TABLE 条目,以及现有 kinematics manifest 的 tooldata 条目。 验证:./check-linuxcnc-switchkins-remap-table.sh linuxcnc-kinematics-source-files.txt 通过;./test-native.sh 通过;./test-linuxcnc-source-link.sh 通过。
This commit is contained in:
@@ -355,28 +355,36 @@ validate_generator_cli_contract() {
|
||||
local cli_dir
|
||||
local cli_manifest
|
||||
local cli_manifest_with_config_ngc
|
||||
local cli_manifest_with_config_tbl
|
||||
local cli_manifest_with_duplicate_ini
|
||||
local cli_manifest_with_duplicate_remap
|
||||
local cli_manifest_with_duplicate_tooldata
|
||||
local cli_manifest_with_unused_hal
|
||||
local cli_manifest_with_unused_postgui
|
||||
local cli_manifest_with_unused_remap
|
||||
local cli_manifest_with_unused_tooldata
|
||||
local cli_manifest_without_ini
|
||||
local cli_manifest_without_hal
|
||||
local cli_manifest_without_postgui
|
||||
local cli_manifest_without_remap
|
||||
local cli_manifest_without_tooldata
|
||||
cli_dir=$(mktemp -d "${TMPDIR:-/tmp}/linuxcnc_switchkins_remap_cli.XXXXXX")
|
||||
trap 'rm -rf "$cli_dir"' EXIT
|
||||
cli_manifest="$cli_dir/bridgemill-manifest.txt"
|
||||
cli_manifest_with_config_ngc="$cli_dir/bridgemill-manifest-with-config-ngc.txt"
|
||||
cli_manifest_with_config_tbl="$cli_dir/bridgemill-manifest-with-config-tbl.txt"
|
||||
cli_manifest_with_duplicate_ini="$cli_dir/bridgemill-manifest-with-duplicate-ini.txt"
|
||||
cli_manifest_with_duplicate_remap="$cli_dir/bridgemill-manifest-with-duplicate-remap.txt"
|
||||
cli_manifest_with_duplicate_tooldata="$cli_dir/bridgemill-manifest-with-duplicate-tooldata.txt"
|
||||
cli_manifest_with_unused_hal="$cli_dir/bridgemill-manifest-with-unused-hal.txt"
|
||||
cli_manifest_with_unused_postgui="$cli_dir/bridgemill-manifest-with-unused-postgui.txt"
|
||||
cli_manifest_with_unused_remap="$cli_dir/bridgemill-manifest-with-unused-remap.txt"
|
||||
cli_manifest_with_unused_tooldata="$cli_dir/bridgemill-manifest-with-unused-tooldata.txt"
|
||||
cli_manifest_without_ini="$cli_dir/bridgemill-manifest-without-ini.txt"
|
||||
cli_manifest_without_hal="$cli_dir/bridgemill-manifest-without-hal.txt"
|
||||
cli_manifest_without_postgui="$cli_dir/bridgemill-manifest-without-postgui.txt"
|
||||
cli_manifest_without_remap="$cli_dir/bridgemill-manifest-without-remap.txt"
|
||||
cli_manifest_without_tooldata="$cli_dir/bridgemill-manifest-without-tooldata.txt"
|
||||
|
||||
if ! awk -F: -v manifest="$manifest_file" '
|
||||
function require(key) {
|
||||
@@ -390,6 +398,7 @@ validate_generator_cli_contract() {
|
||||
require("remap:configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc")
|
||||
require("remap:configs/sim/axis/vismach/5axis/bridgemill/remap_subs/429remap.ngc")
|
||||
require("remap:configs/sim/axis/vismach/5axis/bridgemill/remap_subs/430remap.ngc")
|
||||
require("tooldata:configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl")
|
||||
}
|
||||
{
|
||||
key = $1 ":" $2
|
||||
@@ -427,6 +436,15 @@ validate_generator_cli_contract() {
|
||||
echo "switchkins remap generator accepted LinuxCNC remap source listed as config" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$cli_manifest" "$cli_manifest_with_config_tbl"
|
||||
grep -F \
|
||||
'tooldata:configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl:' \
|
||||
"$cli_manifest" | sed 's/^tooldata:/config:/' >>"$cli_manifest_with_config_tbl"
|
||||
if LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh \
|
||||
"$cli_manifest_with_config_tbl" >/dev/null 2>&1; then
|
||||
echo "switchkins remap generator accepted LinuxCNC TOOL_TABLE source listed as config" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$cli_manifest" "$cli_manifest_with_duplicate_ini"
|
||||
grep -F \
|
||||
'config:configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:' \
|
||||
@@ -445,6 +463,15 @@ validate_generator_cli_contract() {
|
||||
echo "switchkins remap generator accepted duplicate LinuxCNC M428 remap source" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$cli_manifest" "$cli_manifest_with_duplicate_tooldata"
|
||||
grep -F \
|
||||
'tooldata:configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl:' \
|
||||
"$cli_manifest" >>"$cli_manifest_with_duplicate_tooldata"
|
||||
if LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh \
|
||||
"$cli_manifest_with_duplicate_tooldata" >/dev/null 2>&1; then
|
||||
echo "switchkins remap generator accepted duplicate LinuxCNC TOOL_TABLE source" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fv \
|
||||
'config:configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:' \
|
||||
"$cli_manifest" >"$cli_manifest_without_ini"
|
||||
@@ -477,6 +504,14 @@ validate_generator_cli_contract() {
|
||||
echo "switchkins remap generator accepted manifest missing LinuxCNC M430 remap source" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fv \
|
||||
'tooldata:configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl:' \
|
||||
"$cli_manifest" >"$cli_manifest_without_tooldata"
|
||||
if LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh \
|
||||
"$cli_manifest_without_tooldata" >/dev/null 2>&1; then
|
||||
echo "switchkins remap generator accepted manifest missing LinuxCNC TOOL_TABLE source" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$cli_manifest" "$cli_manifest_with_unused_hal"
|
||||
grep -F \
|
||||
'config:configs/sim/axis/vismach/melfa-sim/melfa_dh.hal:' \
|
||||
@@ -504,6 +539,15 @@ validate_generator_cli_contract() {
|
||||
echo "switchkins remap generator accepted unused LinuxCNC M428 remap source" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$cli_manifest" "$cli_manifest_with_unused_tooldata"
|
||||
grep -F \
|
||||
'tooldata:configs/sim/axis/vismach/melfa-sim/melfa.tbl:' \
|
||||
"$manifest_file" >>"$cli_manifest_with_unused_tooldata"
|
||||
if LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh \
|
||||
"$cli_manifest_with_unused_tooldata" >/dev/null 2>&1; then
|
||||
echo "switchkins remap generator accepted unused LinuxCNC TOOL_TABLE source" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh --all-output-dir "$cli_dir/out" "$cli_manifest"
|
||||
LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh "$cli_manifest" \
|
||||
|
||||
Reference in New Issue
Block a user