From 2655f6e96196ab6fb49527dd2776ef7380911e41 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Sat, 30 May 2026 19:06:37 +0000 Subject: [PATCH] tests: limit AFP smoke log excerpt to recent lines --- tests/linux/afp_smoke_suite.sh | 38 ++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/tests/linux/afp_smoke_suite.sh b/tests/linux/afp_smoke_suite.sh index c07ad9d..c321524 100755 --- a/tests/linux/afp_smoke_suite.sh +++ b/tests/linux/afp_smoke_suite.sh @@ -26,6 +26,7 @@ PREPARE_READONLY_RIGHTS=0 READONLY_RIGHTS="[RF]" KEEP_GOING=1 CAPTURE_LOG=1 +LOG_WINDOW_SECONDS=120 usage() { cat <&2; exit 2 ;; esac +case "$LOG_WINDOW_SECONDS" in + ''|*[!0-9]*) echo "--log-window-seconds must be a positive integer" >&2; exit 2 ;; +esac +if [ "$LOG_WINDOW_SECONDS" -le 0 ]; then + echo "--log-window-seconds must be greater than zero" >&2 + exit 2 +fi DIR_PATH=$NETWARE_PATH case "$NETWARE_PATH" in @@ -136,6 +147,7 @@ UNIX_DIR20_PATH_DOS=$UNIX_PARENT_PATH/$CREATE_DIR20_NAME_DOS REPORT_TMP=$(mktemp "${TMPDIR:-/tmp}/mars-afp-smoke.XXXXXX") LOG_TMP=$(mktemp "${TMPDIR:-/tmp}/mars-afp-log.XXXXXX") +LOG_RECENT_TMP=$(mktemp "${TMPDIR:-/tmp}/mars-afp-log-recent.XXXXXX") LOG_PID="" FAILURES=0 RIGHTS_PREPARED=0 @@ -150,7 +162,7 @@ cleanup() { kill "$LOG_PID" 2>/dev/null || true wait "$LOG_PID" 2>/dev/null || true fi - rm -f "$LOG_TMP" + rm -f "$LOG_TMP" "$LOG_RECENT_TMP" } trap cleanup EXIT INT TERM @@ -217,6 +229,24 @@ readonly_print_auth() { fi } + +capture_recent_afp_log() { + local cutoff + + : >"$LOG_RECENT_TMP" + if [ ! -r "$LOG_FILE" ]; then + return 1 + fi + + cutoff=$(date -d "@$(( $(date +%s) - LOG_WINDOW_SECONDS ))" '+%m.%d,%H:%M:%S' 2>/dev/null) || return 1 + awk -v cutoff="$cutoff" ' + /AFP/ { + ts = substr($0, 1, 14) + if (ts >= cutoff) print + } + ' "$LOG_FILE" >"$LOG_RECENT_TMP" +} + finish_report() { if [ "$CAPTURE_LOG" -eq 1 ]; then sleep 1 @@ -226,7 +256,10 @@ finish_report() { LOG_PID="" fi section "AFP server log excerpt" - if [ -s "$LOG_TMP" ]; then + emit "recent_window_seconds=$LOG_WINDOW_SECONDS" + if capture_recent_afp_log && [ -s "$LOG_RECENT_TMP" ]; then + cat "$LOG_RECENT_TMP" | tee -a "$REPORT_TMP" + elif [ -s "$LOG_TMP" ]; then cat "$LOG_TMP" | tee -a "$REPORT_TMP" else emit "No AFP lines captured from $LOG_FILE." @@ -249,6 +282,7 @@ emit "path=$NETWARE_PATH" emit "dir_path=$DIR_PATH" emit "unix_path=$UNIX_PATH" emit "log=$LOG_FILE" +emit "log_window_seconds=$LOG_WINDOW_SECONDS" emit "finder_type=$FINDER_TYPE" emit "finder_creator=$FINDER_CREATOR" emit "mtime_epoch=$TIMESTAMP_EPOCH"