参考所有分组:锁定loadusr资产清单校验,测试通过

This commit is contained in:
cnc
2026-06-03 17:00:15 +08:00
parent 180c0f6dbe
commit 3cc7590121
2 changed files with 161 additions and 16 deletions

View File

@@ -363,6 +363,9 @@ validate_generator_cli_contract() {
local cli_manifest_with_unused_postgui
local cli_manifest_with_unused_remap
local cli_manifest_with_unused_tooldata
local cli_manifest_without_halfile_loadusr_asset
local cli_melfa_manifest
local cli_melfa_without_halcmd_loadusr_asset
local cli_trsrn_manifest
local cli_trsrn_without_g531_asset
local cli_trsrn_without_g69_asset
@@ -388,6 +391,9 @@ validate_generator_cli_contract() {
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_halfile_loadusr_asset="$cli_dir/bridgemill-manifest-without-halfile-loadusr-asset.txt"
cli_melfa_manifest="$cli_dir/melfa-manifest.txt"
cli_melfa_without_halcmd_loadusr_asset="$cli_dir/melfa-manifest-without-halcmd-loadusr-asset.txt"
cli_trsrn_manifest="$cli_dir/trsrn-manifest.txt"
cli_trsrn_without_g531_asset="$cli_dir/trsrn-manifest-without-g531-asset.txt"
cli_trsrn_without_g69_asset="$cli_dir/trsrn-manifest-without-g69-asset.txt"
@@ -415,6 +421,7 @@ validate_generator_cli_contract() {
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")
require("asset:src/hal/user_comps/vismach/5axisgui.py")
}
{
key = $1 ":" $2
@@ -528,6 +535,64 @@ validate_generator_cli_contract() {
echo "switchkins remap generator accepted manifest missing LinuxCNC TOOL_TABLE source" >&2
exit 1
fi
grep -Fv \
'asset:src/hal/user_comps/vismach/5axisgui.py:' \
"$cli_manifest" >"$cli_manifest_without_halfile_loadusr_asset"
if LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh \
"$cli_manifest_without_halfile_loadusr_asset" >/dev/null 2>&1; then
echo "switchkins remap generator accepted manifest missing LinuxCNC HALFILE loadusr asset source" >&2
exit 1
fi
if ! awk -F: -v manifest="$manifest_file" '
function require(key) {
expected[++expected_count] = key
expected_keys[key] = 1
}
BEGIN {
require("config:configs/sim/axis/vismach/melfa-sim/melfa.ini")
require("config:configs/sim/axis/vismach/melfa-sim/melfa_dh.hal")
require("config:configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal")
require("remap:configs/sim/axis/vismach/melfa-sim/remap_subs/428remap.ngc")
require("remap:configs/sim/axis/vismach/melfa-sim/remap_subs/429remap.ngc")
require("remap:configs/sim/axis/vismach/melfa-sim/remap_subs/430remap.ngc")
require("tooldata:configs/sim/axis/vismach/melfa-sim/melfa.tbl")
require("asset:src/hal/user_comps/vismach/melfagui.py")
}
{
key = $1 ":" $2
if (key in expected_keys) {
if (key in manifest_line) {
print "duplicate melfa switchkins source in " manifest ": " key > "/dev/stderr"
duplicate = 1
}
manifest_line[key] = $0
}
}
END {
missing = 0
for (expected_index = 1; expected_index <= expected_count; expected_index++) {
key = expected[expected_index]
if (!(key in manifest_line)) {
print "melfa switchkins source is not listed in " manifest ": " key > "/dev/stderr"
missing = 1
continue
}
print manifest_line[key]
}
exit missing || duplicate
}
' "$manifest_file" >"$cli_melfa_manifest"; then
exit 1
fi
grep -Fv \
'asset:src/hal/user_comps/vismach/melfagui.py:' \
"$cli_melfa_manifest" >"$cli_melfa_without_halcmd_loadusr_asset"
if LINUXCNC_ROOT="$linuxcnc_root" ./generate-linuxcnc-switchkins-remap-table.sh \
"$cli_melfa_without_halcmd_loadusr_asset" >/dev/null 2>&1; then
echo "switchkins remap generator accepted manifest missing LinuxCNC HALCMD loadusr command asset 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:' \