rsyslog/tests/uxsock_simple.sh
Billie Alsup e05f69793e
New functionality for omuxsock (#5630)
* New functionality for omuxsock

This builds on "PR#6121 net: Add NetworkNamespace APIS"
to add Network Namespace support for omuxsock.  In
addition, new functionality is added to support
abstract socket names, as well as connected sockets.

Changes are isolated to omuxsock to provide the new
functionality:

a. Abstract unix socket names (including network namespaces)
b. Connected socket support (SOCK_STREAM, SOCK_SEQPACKET)
c. Support for load, and action configuration
d. Bug fix related to closing/reopening sockets
   This bug would cause the socket to be closed and
   reopened for every message sent.

New tests are added as follows:

a. uxsock_multiple.sh tests basic functionality with
   multiple output instances.
b. uxsock_multiple_netns.sh is similar but using
   multiple namespaces.
c. uxsock_simple_abstract.sh mirrors the existing
   uxsock_simple.sh but tests with abstract socket
   names.

The uxsockrcvr test program was modified to support
these new tests.

Signed-off-by: Billie Alsup <balsup@cisco.com>
2025-12-02 10:36:50 +01:00

47 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# This tests basic omuxsock functionality. A socket receiver is started which sends
# all data to an output file, then a rsyslog instance is started which generates
# messages and sends them to the unix socket. Datagram sockets are being used.
# added 2010-08-06 by Rgerhards
. ${srcdir:=.}/diag.sh init
check_command_available timeout
uname
if [ $(uname) = "FreeBSD" ] ; then
echo "This test currently does not work on FreeBSD."
exit 77
fi
# create the pipe and start a background process that copies data from
# it to the "regular" work file
generate_conf
add_conf '
$MainMsgQueueTimeoutShutdown 10000
$ModLoad ../plugins/omuxsock/.libs/omuxsock
$template outfmt,"%msg:F,58:2%\n"
$OMUXSockSocket '$RSYSLOG_DYNNAME'-testbench-dgram-uxsock
:msg, contains, "msgnum:" :omuxsock:;outfmt
'
timeout 30s ./uxsockrcvr -s$RSYSLOG_DYNNAME-testbench-dgram-uxsock -o $RSYSLOG_OUT_LOG -t 60 &
BGPROCESS=$!
echo background uxsockrcvr process id is $BGPROCESS
# now do the usual run
startup
# 10000 messages should be enough
injectmsg 0 10000
shutdown_when_empty # shut down rsyslogd when done processing messages
wait_shutdown
# wait for the cp process to finish, do pipe-specific cleanup
echo shutting down uxsockrcvr...
# TODO: we should do this more reliable in the long run! (message counter? timeout?)
kill $BGPROCESS
wait $BGPROCESS
echo background process has terminated, continue test...
# and continue the usual checks
seq_check 0 9999
exit_test