按规划持续工作

This commit is contained in:
2026-06-09 06:13:28 +08:00
parent 902c6ecaea
commit 2658ee3b72
255 changed files with 12487 additions and 150 deletions

View File

@@ -7,6 +7,9 @@ GCODE_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/gcode"
CANON_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/canon"
GCODE_ERROR_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/gcode_errors"
CANON_ERROR_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/canon_errors"
BUILD_DIR="$ROOT_DIR/build/native"
CACHE_KEY_FILE="$BUILD_DIR/native-linuxcnc-fixture-baseline.input.sha256"
CACHE_OK_FILE="$BUILD_DIR/native-linuxcnc-fixture-baseline.ok"
FIXTURES=(
minimal_linear
@@ -56,6 +59,35 @@ if [[ ! -x "$UPSTREAM_RS274" ]]; then
exit 1
fi
mkdir -p "$BUILD_DIR"
hash_tree() {
find "$@" -type f -print0 | sort -z | xargs -0 -r sha256sum
}
fixture_baseline_fingerprint() {
{
sha256sum \
"$ROOT_DIR/tools/verify_native_linuxcnc_fixture_baseline.sh" \
"$UPSTREAM_RS274"
"$UPSTREAM_RS274" --version 2>/dev/null || true
hash_tree \
"$GCODE_FIXTURE_DIR" \
"$CANON_FIXTURE_DIR" \
"$GCODE_ERROR_FIXTURE_DIR" \
"$CANON_ERROR_FIXTURE_DIR" \
"$ROOT_DIR/tests/fixtures/ini"
} | sha256sum | awk '{ print $1 }'
}
FIXTURE_BASELINE_FINGERPRINT="$(fixture_baseline_fingerprint)"
if [[ -f "$CACHE_KEY_FILE" && -f "$CACHE_OK_FILE" ]] &&
[[ "$(tr -d '[:space:]' < "$CACHE_KEY_FILE")" == "$FIXTURE_BASELINE_FINGERPRINT" ]] &&
[[ "$(tr -d '[:space:]' < "$CACHE_OK_FILE")" == "$FIXTURE_BASELINE_FINGERPRINT" ]]; then
echo "native LinuxCNC fixture baseline up to date"
exit 0
fi
TMP_DIR="$(mktemp -d)"
trap 'rm -rf "$TMP_DIR"' EXIT
TOOL_TABLE_BASELINE="$TMP_DIR/tool_table_setup.tbl"
@@ -967,4 +999,6 @@ for name in "${ERROR_FIXTURES[@]}"; do
done < "$expected_file"
done
printf '%s\n' "$FIXTURE_BASELINE_FINGERPRINT" > "$CACHE_KEY_FILE"
printf '%s\n' "$FIXTURE_BASELINE_FINGERPRINT" > "$CACHE_OK_FILE"
echo "native LinuxCNC fixture baseline validation complete"