From 9f048da9538137ee34e5f17d72760d309f6f0be8 Mon Sep 17 00:00:00 2001 From: bluhm Date: Mon, 17 Apr 2017 14:27:46 +0000 Subject: [PATCH] Test syslogd(8) "last message repeated" feature and -r option. --- regress/usr.sbin/syslogd/Client.pm | 4 +- regress/usr.sbin/syslogd/args-repeat.pl | 58 +++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 regress/usr.sbin/syslogd/args-repeat.pl diff --git a/regress/usr.sbin/syslogd/Client.pm b/regress/usr.sbin/syslogd/Client.pm index 4be39f79d1f..bcc02b24895 100644 --- a/regress/usr.sbin/syslogd/Client.pm +++ b/regress/usr.sbin/syslogd/Client.pm @@ -1,4 +1,4 @@ -# $OpenBSD: Client.pm,v 1.9 2017/01/02 16:58:28 bluhm Exp $ +# $OpenBSD: Client.pm,v 1.10 2017/04/17 14:27:46 bluhm Exp $ # Copyright (c) 2010-2014 Alexander Bluhm # @@ -114,7 +114,7 @@ sub child { or die ref($self), " setlogsock failed: $!"; } # we take LOG_UUCP as it is not used nowadays - openlog("syslogd-regress", "ndelay,perror,pid", LOG_UUCP); + openlog("syslogd-regress", "perror,pid", LOG_UUCP); } 1; diff --git a/regress/usr.sbin/syslogd/args-repeat.pl b/regress/usr.sbin/syslogd/args-repeat.pl new file mode 100644 index 00000000000..25cb6f0ab8d --- /dev/null +++ b/regress/usr.sbin/syslogd/args-repeat.pl @@ -0,0 +1,58 @@ +# Start syslogd with -r option. +# The client writes messages repeatedly to Sys::Syslog native method. +# The syslogd writes it into a file and through a pipe and to tty. +# The syslogd passes it via UDP to the loghost. +# The server receives the message on its UDP socket. +# Find the message in client, file, pipe, console, user, syslogd, server log. +# Check that message repeated is not in server or pipe log. + +use strict; +use warnings; + +our %args = ( + client => { + func => sub { + my $self = shift; + write_message($self, "foo"); + write_message($self, "bar"); + write_message($self, "bar"); + write_message($self, "bar"); + write_message($self, "foo"); + write_message($self, "bar"); + write_log($self); + }, + }, + syslogd => { + options => ["-r"], + }, + server => { + loggrep => { + qr/foo/ => 2, + qr/bar/ => 4, + qr/message repeated/ => 0, + }, + }, + pipe => { + loggrep => { + qr/foo/ => 2, + qr/bar/ => 4, + qr/message repeated/ => 0, + }, + }, + file => { + loggrep => { + qr/foo/ => 2, + qr/bar/ => 2, + qr/message repeated 2 times/ => 1, + }, + }, + tty => { + loggrep => { + qr/foo/ => 2, + qr/bar/ => 2, + qr/message repeated 2 times/ => 1, + }, + }, +); + +1; -- 2.20.1