diff --git a/test-all-native.sh b/test-all-native.sh index b459d8f..217c7ee 100755 --- a/test-all-native.sh +++ b/test-all-native.sh @@ -31,6 +31,8 @@ missing_bridge_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_bridge_smoke missing_support_object_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_linuxcnc_support_object.XXXXXX.log") missing_source_manifest=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_native_syntax_missing_source_manifest.XXXXXX.txt") missing_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_native_syntax_missing_source.XXXXXX.log") +kinematics_unknown_filter_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_kinematics_manifest_unknown_filter.XXXXXX.log") +kinematics_unknown_output_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_kinematics_manifest_unknown_output.XXXXXX.log") bad_line_manifest=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_bad_manifest_line.XXXXXX.txt") bad_line_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_bad_manifest_line.XXXXXX.log") absolute_source_manifest=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_absolute_manifest_source.XXXXXX.txt") @@ -58,6 +60,8 @@ cleanup_native_test_temps() { "$missing_support_object_log" \ "$missing_source_manifest" \ "$missing_source_log" \ + "$kinematics_unknown_filter_log" \ + "$kinematics_unknown_output_log" \ "$bad_line_manifest" \ "$bad_line_log" \ "$absolute_source_manifest" \ @@ -161,6 +165,8 @@ for forbidden_manual_cleanup in \ 'rm -f "$missing_bridge_source_log"' \ 'rm -f "$missing_support_object_log"' \ 'rm -f "$missing_source_manifest" "$missing_source_log"' \ + 'rm -f "$kinematics_unknown_filter_log"' \ + 'rm -f "$kinematics_unknown_output_log"' \ 'rm -f "$bad_line_manifest" "$bad_line_log"' \ 'rm -f "$absolute_source_manifest" "$absolute_source_log"' \ 'rm -f "$invalid_build_jobs_log"' \ @@ -1051,6 +1057,42 @@ 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_asset=$(./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt asset) +grep -Fx "configs/sim/axis/vismach/5axis/bridgemill/README" <<<"$kinematics_manifest_asset" >/dev/null +grep -Fx "src/hal/user_comps/vismach/5axisgui.py" <<<"$kinematics_manifest_asset" >/dev/null +grep -Fx "share/qtvcp/panels/vismach_scara/vismach_scara.ui" <<<"$kinematics_manifest_asset" >/dev/null +kinematics_manifest_tooldata=$(./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt tooldata) +grep -Fx "configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl" <<<"$kinematics_manifest_tooldata" >/dev/null +grep -Fx "configs/sim/axis/vismach/millturn/millturn.tbl" <<<"$kinematics_manifest_tooldata" >/dev/null +grep -Fx "configs/sim/qtaxis/non-trivial/scara/scara.tbl" <<<"$kinematics_manifest_tooldata" >/dev/null +if [[ "$(grep -Ec '\.tbl$' <<<"$kinematics_manifest_tooldata")" -ne 10 ]]; then + echo "all-native guardrail expected all LinuxCNC switchkins TOOL_TABLE tooldata sources" >&2 + exit 1 +fi +kinematics_manifest_generated=$(./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt generated) +grep -Fx "src/objects/hal/components/xyzab_tdr_kins.c" <<<"$kinematics_manifest_generated" >/dev/null +grep -Fx "src/objects/hal/components/xyzacb_trsrn.c" <<<"$kinematics_manifest_generated" >/dev/null +grep -Fx "src/objects/hal/components/xyzbca_trsrn.c" <<<"$kinematics_manifest_generated" >/dev/null +kinematics_manifest_config_full=$(LINUXCNC_ROOT="$linuxcnc_root" ./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt config full) +grep -Fx "$linuxcnc_root_full/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" <<<"$kinematics_manifest_config_full" >/dev/null +if ./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt bogus >"$kinematics_unknown_filter_log" 2>&1; then + echo "kinematics manifest source lister accepted unknown filter" >&2 + exit 1 +fi +if ! grep -F "unknown manifest source filter: bogus" "$kinematics_unknown_filter_log" >/dev/null; then + echo "kinematics manifest source lister did not report unknown filter clearly" >&2 + sed -n '1,20p' "$kinematics_unknown_filter_log" >&2 + exit 1 +fi +if ./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt config bogus >"$kinematics_unknown_output_log" 2>&1; then + echo "kinematics manifest source lister accepted unknown output mode" >&2 + exit 1 +fi +if ! grep -F "unknown manifest source output mode: bogus" "$kinematics_unknown_output_log" >/dev/null; then + echo "kinematics manifest source lister did not report unknown output mode clearly" >&2 + sed -n '1,20p' "$kinematics_unknown_output_log" >&2 + exit 1 +fi 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