参考所有分组,完成尽量多的内容:收紧源列表过滤器 basename 守卫,结论测试通过
This commit is contained in:
@@ -21,6 +21,10 @@ filter=$1
|
|||||||
missing_path_message=$2
|
missing_path_message=$2
|
||||||
missing_filter_message=$3
|
missing_filter_message=$3
|
||||||
missing_path_hint=${4:-}
|
missing_path_hint=${4:-}
|
||||||
|
if [[ -n "$filter" && ( "$filter" == */* || "$filter" == "." || "$filter" == ".." ) ]]; then
|
||||||
|
echo "source filter must be a basename: $filter" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
found=0
|
found=0
|
||||||
while IFS= read -r path; do
|
while IFS= read -r path; do
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ missing_api_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_rs274_api_proje
|
|||||||
missing_core_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_core_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")
|
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")
|
escaped_project_source_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_escaped_project_source.XXXXXX.log")
|
||||||
|
invalid_source_filter_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_invalid_source_filter.XXXXXX.log")
|
||||||
missing_cmake_set_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_cmake_set.XXXXXX.log")
|
missing_cmake_set_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_cmake_set.XXXXXX.log")
|
||||||
missing_cmake_append_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_cmake_append.XXXXXX.log")
|
missing_cmake_append_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_missing_cmake_append.XXXXXX.log")
|
||||||
invalid_cmake_set_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_invalid_cmake_set.XXXXXX.log")
|
invalid_cmake_set_log=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_invalid_cmake_set.XXXXXX.log")
|
||||||
@@ -63,6 +64,7 @@ cleanup_native_test_temps() {
|
|||||||
"$missing_core_source_log" \
|
"$missing_core_source_log" \
|
||||||
"$missing_bridge_source_log" \
|
"$missing_bridge_source_log" \
|
||||||
"$escaped_project_source_log" \
|
"$escaped_project_source_log" \
|
||||||
|
"$invalid_source_filter_log" \
|
||||||
"$missing_cmake_set_log" \
|
"$missing_cmake_set_log" \
|
||||||
"$missing_cmake_append_log" \
|
"$missing_cmake_append_log" \
|
||||||
"$invalid_cmake_set_log" \
|
"$invalid_cmake_set_log" \
|
||||||
@@ -182,6 +184,7 @@ for forbidden_manual_cleanup in \
|
|||||||
'rm -f "$missing_core_source_log"' \
|
'rm -f "$missing_core_source_log"' \
|
||||||
'rm -f "$missing_bridge_source_log"' \
|
'rm -f "$missing_bridge_source_log"' \
|
||||||
'rm -f "$escaped_project_source_log"' \
|
'rm -f "$escaped_project_source_log"' \
|
||||||
|
'rm -f "$invalid_source_filter_log"' \
|
||||||
'rm -f "$missing_cmake_set_log"' \
|
'rm -f "$missing_cmake_set_log"' \
|
||||||
'rm -f "$missing_cmake_append_log"' \
|
'rm -f "$missing_cmake_append_log"' \
|
||||||
'rm -f "$invalid_cmake_set_log"' \
|
'rm -f "$invalid_cmake_set_log"' \
|
||||||
@@ -232,6 +235,7 @@ grep -F 'CMake source relative prefix must stay project-relative: $relative_pref
|
|||||||
grep -F 'missing CMake source set: " set_name' list-cmake-set-sources.sh >/dev/null
|
grep -F 'missing CMake source set: " set_name' list-cmake-set-sources.sh >/dev/null
|
||||||
grep -F 'missing CMake append source set: " append_name' list-cmake-set-plus-append-sources.sh >/dev/null
|
grep -F 'missing CMake append source set: " append_name' list-cmake-set-plus-append-sources.sh >/dev/null
|
||||||
grep -F 'echo "$missing_path_message: $path"' list-filtered-existing-paths.sh >/dev/null
|
grep -F 'echo "$missing_path_message: $path"' list-filtered-existing-paths.sh >/dev/null
|
||||||
|
grep -F 'source filter must be a basename: $filter' 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 '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
|
grep -F "build LinuxCNC first or set LINUXCNC_ROOT to a built tree" list-linuxcnc-source-support-objects.sh >/dev/null
|
||||||
if ./list-cmake-set-sources.sh does_not_exist_cmake_set >"$missing_cmake_set_log" 2>&1; then
|
if ./list-cmake-set-sources.sh does_not_exist_cmake_set >"$missing_cmake_set_log" 2>&1; then
|
||||||
@@ -283,6 +287,18 @@ if ! grep -F "CMake source relative prefix must stay project-relative: ../core/"
|
|||||||
sed -n '1,20p' "$escaped_cmake_prefix_log" >&2
|
sed -n '1,20p' "$escaped_cmake_prefix_log" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if printf 'core/src/canon_event_sink.cpp\n' | ./list-filtered-existing-paths.sh \
|
||||||
|
core/src/canon_event_sink.cpp \
|
||||||
|
"missing project source" \
|
||||||
|
"missing project source in list" >"$invalid_source_filter_log" 2>&1; then
|
||||||
|
echo "source-list filter accepted a path-like filter" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! grep -F "source filter must be a basename: core/src/canon_event_sink.cpp" "$invalid_source_filter_log" >/dev/null; then
|
||||||
|
echo "source-list filter did not report path-like filters clearly" >&2
|
||||||
|
sed -n '1,20p' "$invalid_source_filter_log" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
if printf '../core/src/canon_event_sink.cpp\n' | ./list-filtered-existing-paths.sh \
|
if printf '../core/src/canon_event_sink.cpp\n' | ./list-filtered-existing-paths.sh \
|
||||||
--project-relative \
|
--project-relative \
|
||||||
"" \
|
"" \
|
||||||
|
|||||||
Reference in New Issue
Block a user