1# The syslogd binds UDP socket on localhost and port. 2# The client writes a message into a localhost UDP socket. 3# The syslogd writes it into a file and through a pipe. 4# The syslogd passes it via UDP to the loghost. 5# The server receives the message on its UDP socket. 6# Find the message in client, file, pipe, syslogd, server log. 7# Check that the file log contains the localhost name. 8# Check that fstat contains a bound UDP socket. 9 10use strict; 11use warnings; 12use Socket; 13require 'funcs.pl'; 14 15my $port = find_ports(domain => AF_UNSPEC, addr => "localhost"); 16 17our %args = ( 18 client => { 19 connect => { domain => AF_UNSPEC, addr => "localhost", port => $port }, 20 loggrep => { 21 qr/connect sock: (127.0.0.1|::1) \d+/ => 1, 22 get_testgrep() => 1, 23 }, 24 }, 25 syslogd => { 26 options => ["-U", "localhost:$port"], 27 fstat => { 28 qr/^root .* internet/ => 0, 29 qr/ internet6? dgram udp (127.0.0.1|\[::1\]):$port$/ => 1, 30 }, 31 }, 32 file => { 33 loggrep => qr/ localhost /. get_testgrep(), 34 }, 35); 36 371; 38