mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-17 03:20:41 +01:00
testbench: add test to check omfile handling of unwritable files
This commit is contained in:
parent
b7f453335b
commit
7466ec1d81
@ -16,7 +16,7 @@
|
||||
*
|
||||
* Part of the testbench for rsyslog.
|
||||
*
|
||||
* Copyright 2009-2014 Rainer Gerhards and Adiscon GmbH.
|
||||
* Copyright 2009-2016 Rainer Gerhards and Adiscon GmbH.
|
||||
*
|
||||
* This file is part of rsyslog.
|
||||
*
|
||||
@ -224,7 +224,10 @@ breakIF:
|
||||
printf("info: had %d duplicates (this is no error)\n", nDups);
|
||||
|
||||
if(!reachedEOF) {
|
||||
printf("end of processing, but NOT end of file!\n");
|
||||
printf("end of processing, but NOT end of file! First line of extra data is:\n");
|
||||
for(c = fgetc(fp) ; c != '\n' && c != EOF ; c = fgetc(fp))
|
||||
putchar(c);
|
||||
putchar('\n');
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
@ -341,6 +341,13 @@ case $1 in
|
||||
. $srcdir/diag.sh error-exit 1
|
||||
fi
|
||||
;;
|
||||
'presort') # sort the output file just like we normally do it, but do not call
|
||||
# seqchk. This is needed for some operations where we need the sort
|
||||
# result for some preprocessing. Note that a later seqchk will sort
|
||||
# again, but that's not an issue.
|
||||
rm -f work
|
||||
$RS_SORTCMD -g < rsyslog.out.log > work
|
||||
;;
|
||||
'seq-check') # do the usual sequence check to see if everything was properly received. $2 is the instance.
|
||||
rm -f work
|
||||
cp rsyslog.out.log work-presort
|
||||
|
||||
39
tests/omfile-read-only.sh
Executable file
39
tests/omfile-read-only.sh
Executable file
@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# addd 2016-06-16 by RGerhards, released under ASL 2.0
|
||||
|
||||
messages=20000 # how many messages to inject?
|
||||
# Note: we need to inject a somewhat larger nubmer of messages in order
|
||||
# to ensure that we receive some messages in the actual output file,
|
||||
# as batching can (validly) cause a larger loss in the non-writable
|
||||
# file
|
||||
|
||||
. $srcdir/diag.sh init
|
||||
. $srcdir/diag.sh generate-conf
|
||||
. $srcdir/diag.sh add-conf '
|
||||
module(load="../plugins/imtcp/.libs/imtcp")
|
||||
input(type="imtcp" port="13514")
|
||||
|
||||
template(name="outfmt" type="string" string="%msg:F,58:2%\n")
|
||||
:msg, contains, "msgnum:" {
|
||||
action(type="omfile" template="outfmt" file="rsyslog2.out.log")
|
||||
action(type="omfile" template="outfmt" file="rsyslog.out.log"
|
||||
action.execOnlyWhenPreviousIsSuspended="on"
|
||||
)
|
||||
}
|
||||
'
|
||||
touch rsyslog2.out.log
|
||||
chmod 0400 rsyslog2.out.log
|
||||
ls -l rsyslog.ou*
|
||||
. $srcdir/diag.sh startup
|
||||
$srcdir/diag.sh injectmsg 0 $messages
|
||||
. $srcdir/diag.sh shutdown-when-empty
|
||||
. $srcdir/diag.sh wait-shutdown
|
||||
# we know that the output file is missing some messages, but it
|
||||
# MUST have some more, and these be in sequence. So we now read
|
||||
# the first message number and calculate based on it what must be
|
||||
# present in the output file.
|
||||
. $srcdir/diag.sh presort
|
||||
let firstnum=$((10#`head -n1 work`)) # work is the sorted output file
|
||||
echo "info: first message expected to be number $firstnum, using that value."
|
||||
. $srcdir/diag.sh seq-check $firstnum $(($messages-1))
|
||||
. $srcdir/diag.sh exit
|
||||
Loading…
x
Reference in New Issue
Block a user