From 5481ab3bff93937233a77016e6719ec4bf3487d3 Mon Sep 17 00:00:00 2001 From: cnc Date: Wed, 3 Jun 2026 11:36:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=80=83=E6=89=80=E6=9C=89=E5=88=86?= =?UTF-8?q?=E7=BB=84=EF=BC=9A=E9=94=81=E5=AE=9Akinematics=E6=BA=90?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=E5=AE=88=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:按 align-linuxcnc 约束把 generated component manpage metadata 和已知不可解析 TOOL_TABLE 基线纳入 native/all-native guardrail,防止 kinematics manifest/source 校验被削弱。 验证:check-linuxcnc-inputs --require-kinematics-complete、check-linuxcnc-switchkins-remap-table、CNC_SIM_ALL_NATIVE_GUARDRAILS_ONLY=1 test-all-native、test-native、test-linuxcnc-source-link 均通过。 --- test-all-native.sh | 19 +++++++++++++++++++ test-native.sh | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/test-all-native.sh b/test-all-native.sh index 6206704..b459d8f 100755 --- a/test-all-native.sh +++ b/test-all-native.sh @@ -1051,6 +1051,25 @@ kinematics_manifest_config=$(./list-linuxcnc-kinematics-manifest-sources.sh linu grep -Fx "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" <<<"$kinematics_manifest_config" >/dev/null grep -Fx "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" <<<"$kinematics_manifest_config" >/dev/null grep -Fx "configs/sim/axis/vismach/puma/puma560_dh.hal" <<<"$kinematics_manifest_config" >/dev/null +kinematics_manifest_metadata=$(./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt metadata) +grep -Fx "src/objects/man/man9/corexy_by_hal.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/gantry.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/matrixkins.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/millturn.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/userkins.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/xyzab_tdr_kins.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/xyzacb_trsrn.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +grep -Fx "src/objects/man/man9/xyzbca_trsrn.9.adoc" <<<"$kinematics_manifest_metadata" >/dev/null +if [[ "$(grep -Ec '^src/objects/man/man9/(corexy_by_hal|gantry|matrixkins|millturn|userkins|xyzab_tdr_kins|xyzacb_trsrn|xyzbca_trsrn)\.9\.adoc$' <<<"$kinematics_manifest_metadata")" -ne 8 ]]; then + echo "all-native guardrail expected all LinuxCNC generated component manpage metadata sources" >&2 + exit 1 +fi +grep -F 'manifest does not cover all LinuxCNC generated component manpage sources adjacent to generated kinematics sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'configs/sim/axis/vismach/hexapod-sim/hexapod.ini TOOL_TABLE=hexapod.tbl' check-linuxcnc-inputs.sh >/dev/null +grep -F 'configs/sim/axis/vismach/scara/scara.ini TOOL_TABLE=scara.tbl' check-linuxcnc-inputs.sh >/dev/null +grep -F 'configs/sim/qtvcp_screens/non-trivial/scara/scara.ini TOOL_TABLE=scara.tbl' check-linuxcnc-inputs.sh >/dev/null +grep -F 'LinuxCNC M428/M429/M430 INI TOOL_TABLE files have new unresolved sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'LinuxCNC M428/M429/M430 INI TOOL_TABLE unresolved source set changed' check-linuxcnc-inputs.sh >/dev/null grep -Fx "HALCMD = sets :x-offset -20" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null grep -Fx "HALCMD = sets :z-offset -15" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null grep -Fx "HALCMD = setp xyzbc-trt-kins.x-rot-point 0" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null diff --git a/test-native.sh b/test-native.sh index 9b89e49..9ba057a 100755 --- a/test-native.sh +++ b/test-native.sh @@ -649,12 +649,30 @@ fi grep -Fx "src/emc/kinematics/switchkins.h" "$kinematics_manifest_sources" >/dev/null grep -Fx "src/emc/kinematics/Submakefile" "$kinematics_manifest_sources" >/dev/null grep -Fx "src/emc/kinematics/blend.fig" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/corexy_by_hal.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/gantry.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/matrixkins.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/millturn.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/userkins.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/xyzab_tdr_kins.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/xyzacb_trsrn.9.adoc" "$kinematics_manifest_sources" >/dev/null +grep -Fx "src/objects/man/man9/xyzbca_trsrn.9.adoc" "$kinematics_manifest_sources" >/dev/null +if [[ "$(grep -Ec '^src/objects/man/man9/(corexy_by_hal|gantry|matrixkins|millturn|userkins|xyzab_tdr_kins|xyzacb_trsrn|xyzbca_trsrn)\.9\.adoc$' "$kinematics_manifest_sources")" -ne 8 ]]; then + echo "expected kinematics manifest to cover all LinuxCNC generated component manpage sources" >&2 + exit 1 +fi grep -F 'manifest does not group all LinuxCNC kinematics headers as header sources' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not group all LinuxCNC kinematics build metadata as metadata sources' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not group all LinuxCNC kinematics reference assets as asset sources' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover all LinuxCNC component sources referenced by M428/M429/M430 INI KINEMATICS entries' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover all LinuxCNC generated component sources referenced by M428/M429/M430 INI KINEMATICS entries' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover all LinuxCNC generated component make metadata adjacent to generated kinematics sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'manifest does not cover all LinuxCNC generated component manpage sources adjacent to generated kinematics sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'configs/sim/axis/vismach/hexapod-sim/hexapod.ini TOOL_TABLE=hexapod.tbl' check-linuxcnc-inputs.sh >/dev/null +grep -F 'configs/sim/axis/vismach/scara/scara.ini TOOL_TABLE=scara.tbl' check-linuxcnc-inputs.sh >/dev/null +grep -F 'configs/sim/qtvcp_screens/non-trivial/scara/scara.ini TOOL_TABLE=scara.tbl' check-linuxcnc-inputs.sh >/dev/null +grep -F 'LinuxCNC M428/M429/M430 INI TOOL_TABLE files have new unresolved sources' check-linuxcnc-inputs.sh >/dev/null +grep -F 'LinuxCNC M428/M429/M430 INI TOOL_TABLE unresolved source set changed' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover all resolvable LinuxCNC TOOL_TABLE files referenced by M428/M429/M430 INI files as tooldata sources' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover LinuxCNC README sources adjacent to M428/M429/M430 INI files as asset sources' check-linuxcnc-inputs.sh >/dev/null grep -F 'manifest does not cover all LinuxCNC vismach user component sources referenced by M428/M429/M430 INI/HAL loadusr commands as asset sources' check-linuxcnc-inputs.sh >/dev/null