Merge remote-tracking branch 'origin/topic/awelzel/4562-post-proc-lookup-failure'

* origin/topic/awelzel/4562-post-proc-lookup-failure:
  btest/logging: Fly-by cleanup
  logging/Ascii: Fix abort() for non-existing postrotation functions

(cherry picked from commit f4357485d2)
This commit is contained in:
Arne Welzel 2025-06-16 14:58:12 +02:00 committed by Tim Wojtulewicz
parent 7abf74e2d3
commit 8045612bb4
7 changed files with 66 additions and 19 deletions

View file

@ -0,0 +1,32 @@
# @TEST-DOC: Put a non-existing postprocessor function into a shadow file, ensure the default gets picked up. Regression test for #4562
#
# @TEST-EXEC: echo ".log" >> .shadow.conn.log
# @TEST-EXEC: echo "non_existing_rotation_postprocessor" >> .shadow.conn.log
# @TEST-EXEC: echo "leftover conn log" > conn.log
#
# @TEST-EXEC: echo ".log" >> .shadow.dns.log
# @TEST-EXEC: echo "wrongly_typed_rotation_postprocessor" >> .shadow.dns.log
# @TEST-EXEC: echo "leftover dns log" > dns.log
#
# @TEST-EXEC: zeek -b %INPUT
# @TEST-EXEC: TEST_DIFF_CANONIFIER="$SCRIPTS/diff-remove-abspath | $SCRIPTS/diff-sort" btest-diff .stderr
#
# Ensure leftover files were removed.
# @TEST-EXEC: ! test -f .shadow.conn.log
# @TEST-EXEC: ! test -f conn.log
# @TEST-EXEC: ! test -f .shadow.dns.log
# @TEST-EXEC: ! test -f dns.log
#
# Ensure the rotated conn log ends-up in the current working directory.
# @TEST-EXEC: cat ./conn.*.log ./dns.*.log > logs.cat
# @TEST-EXEC: btest-diff logs.cat
function wrongly_typed_rotation_postprocessor(): bool
{
exit(1);
return T;
}
redef LogAscii::enable_leftover_log_rotation = T;
redef Log::default_rotation_interval = 1hr;
redef Log::default_rotation_date_format = "no-date";

View file

@ -22,20 +22,6 @@
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-sort btest-diff out
# @TEST-EXEC: btest-diff logs.cat
module Test;
export {
# Create a new ID for our log stream
redef enum Log::ID += { LOG };
# Define a record with all the columns the log file can have.
# (I'm using a subset of fields from ssh-ext for demonstration.)
type Log: record {
t: time;
id: conn_id; # Will be rolled out into individual columns.
} &log;
}
module GLOBAL;
function my_rotation_postprocessor(info: Log::RotationInfo) : bool