参考所有分组,完成尽量多的内容:收紧项目源列表路径守卫,结论测试通过

This commit is contained in:
cnc
2026-06-03 18:27:29 +08:00
parent c8b834e36b
commit 96b5973e1b
7 changed files with 34 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ missing_dump_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_rs274_dump_pro
missing_api_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_rs274_api_project_source.XXXXXX.log")
missing_core_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_core_source.XXXXXX.log")
missing_bridge_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_bridge_smoke_project_source.XXXXXX.log")
escaped_project_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_escaped_project_source.XXXXXX.log")
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")
@@ -57,6 +58,7 @@ cleanup_native_test_temps() {
"$missing_api_source_log" \
"$missing_core_source_log" \
"$missing_bridge_source_log" \
"$escaped_project_source_log" \
"$missing_support_object_log" \
"$missing_source_manifest" \
"$missing_source_log" \
@@ -171,6 +173,7 @@ for forbidden_manual_cleanup in \
'rm -f "$missing_api_source_log"' \
'rm -f "$missing_core_source_log"' \
'rm -f "$missing_bridge_source_log"' \
'rm -f "$escaped_project_source_log"' \
'rm -f "$missing_support_object_log"' \
'rm -f "$missing_source_manifest" "$missing_source_log"' \
'rm -f "$kinematics_unknown_filter_log"' \
@@ -212,7 +215,21 @@ grep -F 'exec 9>"${TMPDIR:-/tmp}/cnc_sim_rs274_source_link.lock"' test-linuxcnc-
grep -F "flock 9" test-linuxcnc-source-link.sh >/dev/null
grep -F "missing LinuxCNC support object" list-linuxcnc-source-support-objects.sh >/dev/null
grep -F 'echo "$missing_path_message: $path"' list-filtered-existing-paths.sh >/dev/null
grep -F 'project source path must stay project-relative: $path' list-filtered-existing-paths.sh >/dev/null
grep -F "build LinuxCNC first or set LINUXCNC_ROOT to a built tree" list-linuxcnc-source-support-objects.sh >/dev/null
if printf '../core/src/canon_event_sink.cpp\n' | ./list-filtered-existing-paths.sh \
--project-relative \
"" \
"missing project source" \
"missing project source in list" >"$escaped_project_source_log" 2>&1; then
echo "project source filter accepted an escaped project source path" >&2
exit 1
fi
if ! grep -F "project source path must stay project-relative: ../core/src/canon_event_sink.cpp" "$escaped_project_source_log" >/dev/null; then
echo "project source filter did not report escaped project paths clearly" >&2
sed -n '1,20p' "$escaped_project_source_log" >&2
exit 1
fi
native_link_flags=$(LINUXCNC_ROOT="$linuxcnc_root" ./list-linuxcnc-native-linkflags.sh)
grep -Fx -- "-L" <<<"$native_link_flags" >/dev/null
grep -Fx -- "$linuxcnc_root/lib" <<<"$native_link_flags" >/dev/null