summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
Diffstat (limited to 'regress')
-rw-r--r--regress/usr.sbin/syslogd/Makefile3
-rw-r--r--regress/usr.sbin/syslogd/Syslogd.pm33
-rw-r--r--regress/usr.sbin/syslogd/args-length-tcp.pl2
-rw-r--r--regress/usr.sbin/syslogd/args-length-tls.pl2
-rw-r--r--regress/usr.sbin/syslogd/args-length-udp.pl2
-rw-r--r--regress/usr.sbin/syslogd/args-length-unix.pl2
-rw-r--r--regress/usr.sbin/syslogd/args-length-vis.pl2
-rw-r--r--regress/usr.sbin/syslogd/args-libevent-kqueue.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-libevent-poll.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-libevent-select.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-only4.pl9
-rw-r--r--regress/usr.sbin/syslogd/args-only6.pl9
-rw-r--r--regress/usr.sbin/syslogd/args-privsep-daemon.pl45
-rw-r--r--regress/usr.sbin/syslogd/args-privsep-foreground.pl44
-rw-r--r--regress/usr.sbin/syslogd/args-privsep.pl36
-rw-r--r--regress/usr.sbin/syslogd/args-sendsyslog.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-sighup-config.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-sighup-privsep.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-sighup-tcp.pl14
-rw-r--r--regress/usr.sbin/syslogd/args-sighup-tls.pl14
-rw-r--r--regress/usr.sbin/syslogd/args-sighup.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-sigpipe.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-sigterm.pl3
-rw-r--r--regress/usr.sbin/syslogd/args-socket-tcp.pl9
-rw-r--r--regress/usr.sbin/syslogd/args-socket-tls.pl9
-rw-r--r--regress/usr.sbin/syslogd/args-socket.pl7
-rw-r--r--regress/usr.sbin/syslogd/funcs.pl26
27 files changed, 203 insertions, 92 deletions
diff --git a/regress/usr.sbin/syslogd/Makefile b/regress/usr.sbin/syslogd/Makefile
index 83a6e5df51b..d0f8d56bb0e 100644
--- a/regress/usr.sbin/syslogd/Makefile
+++ b/regress/usr.sbin/syslogd/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.8 2015/01/28 19:23:22 bluhm Exp $
+# $OpenBSD: Makefile,v 1.9 2015/06/15 21:44:57 bluhm Exp $
# The following ports must be installed for the regression tests:
# p5-IO-Socket-INET6 object interface for AF_INET and AF_INET6 domain sockets
@@ -41,6 +41,7 @@ CLEANFILES += *.pem *.req *.crt *.key *.srl empty toobig
.BEGIN:
@echo
[ -z "${SUDO}" ] || ${SUDO} true
+ ${SUDO} /etc/rc.d/syslogd stop
.END:
@echo
${SUDO} /etc/rc.d/syslogd restart
diff --git a/regress/usr.sbin/syslogd/Syslogd.pm b/regress/usr.sbin/syslogd/Syslogd.pm
index 94e5f5ad3de..8aa6f6fe182 100644
--- a/regress/usr.sbin/syslogd/Syslogd.pm
+++ b/regress/usr.sbin/syslogd/Syslogd.pm
@@ -1,4 +1,4 @@
-# $OpenBSD: Syslogd.pm,v 1.11 2015/02/13 21:40:50 bluhm Exp $
+# $OpenBSD: Syslogd.pm,v 1.12 2015/06/15 21:44:57 bluhm Exp $
# Copyright (c) 2010-2015 Alexander Bluhm <bluhm@openbsd.org>
# Copyright (c) 2014 Florian Riehm <mail@friehm.de>
@@ -23,6 +23,7 @@ use parent 'Proc';
use Carp;
use Cwd;
use File::Basename;
+use Time::HiRes qw(time alarm sleep);
sub new {
my $class = shift;
@@ -32,6 +33,10 @@ sub new {
$args{logfile} ||= "syslogd.log";
$args{up} ||= "syslogd: started";
$args{down} ||= "syslogd: exiting";
+ $args{up} = $args{down} = "execute:"
+ if $args{foreground} || $args{daemon};
+ $args{foreground} && $args{daemon}
+ and croak "$class cannot run in foreground and as daemon";
$args{func} = sub { Carp::confess "$class func may not be called" };
$args{conffile} ||= "syslogd.conf";
$args{outfile} ||= "file.log";
@@ -113,9 +118,11 @@ sub child {
@ktrace = "ktrace" if $self->{ktrace} && !@ktrace;
push @ktrace, "-i", "-f", $self->{ktracefile} if @ktrace;
my $syslogd = $ENV{SYSLOGD} ? $ENV{SYSLOGD} : "syslogd";
- my @cmd = (@sudo, @libevent, @ktrace, $syslogd, "-d",
+ my @cmd = (@sudo, @libevent, @ktrace, $syslogd,
"-f", $self->{conffile});
- push @cmd, "-V", unless $self->{cacrt};
+ push @cmd, "-d" if !$self->{foreground} && !$self->{daemon};
+ push @cmd, "-F" if $self->{foreground};
+ push @cmd, "-V" unless $self->{cacrt};
push @cmd, "-C", $self->{cacrt}
if $self->{cacrt} && $self->{cacrt} ne "default";
push @cmd, "-s", $self->{ctlsock} if $self->{ctlsock};
@@ -127,9 +134,23 @@ sub child {
sub up {
my $self = Proc::up(shift, @_);
-
- if ($self->{fstat}) {
- $self->fstat;
+ my $timeout = shift || 10;
+
+ my $end = time() + $timeout;
+
+ while ($self->{fstat}) {
+ $self->fstat();
+ last unless $self->{foreground} || $self->{daemon};
+
+ # in foreground mode and as daemon we have no debug output
+ # check fstat kqueue entry to detect statup
+ open(my $fh, '<', $self->{fstatfile}) or die ref($self),
+ " open $self->{fstatfile} for reading failed: $!";
+ last if grep { /kqueue/ } <$fh>;
+ time() < $end
+ or croak ref($self), " no 'kqueue' in $self->{fstatfile} ".
+ "after $timeout seconds";
+ sleep .1;
}
return $self;
}
diff --git a/regress/usr.sbin/syslogd/args-length-tcp.pl b/regress/usr.sbin/syslogd/args-length-tcp.pl
index da83deb39b5..5cd53747668 100644
--- a/regress/usr.sbin/syslogd/args-length-tcp.pl
+++ b/regress/usr.sbin/syslogd/args-length-tcp.pl
@@ -23,7 +23,7 @@ our %args = (
options => ["-u"],
loggrep => {
get_charlog() => 5,
- }
+ },
},
server => {
listen => { domain => AF_UNSPEC, proto => "tcp", addr => "localhost" },
diff --git a/regress/usr.sbin/syslogd/args-length-tls.pl b/regress/usr.sbin/syslogd/args-length-tls.pl
index 7da418cb155..baaae5f6e45 100644
--- a/regress/usr.sbin/syslogd/args-length-tls.pl
+++ b/regress/usr.sbin/syslogd/args-length-tls.pl
@@ -23,7 +23,7 @@ our %args = (
options => ["-u"],
loggrep => {
get_charlog() => 5,
- }
+ },
},
server => {
listen => { domain => AF_UNSPEC, proto => "tls", addr => "localhost" },
diff --git a/regress/usr.sbin/syslogd/args-length-udp.pl b/regress/usr.sbin/syslogd/args-length-udp.pl
index b757146ec86..9a5d60208ab 100644
--- a/regress/usr.sbin/syslogd/args-length-udp.pl
+++ b/regress/usr.sbin/syslogd/args-length-udp.pl
@@ -23,7 +23,7 @@ our %args = (
options => ["-u"],
loggrep => {
get_charlog() => 5,
- }
+ },
},
server => {
# >>> <13>Jan 31 00:10:11 0123456789ABC...lmn
diff --git a/regress/usr.sbin/syslogd/args-length-unix.pl b/regress/usr.sbin/syslogd/args-length-unix.pl
index e84e843c75c..74431ec4bf8 100644
--- a/regress/usr.sbin/syslogd/args-length-unix.pl
+++ b/regress/usr.sbin/syslogd/args-length-unix.pl
@@ -21,7 +21,7 @@ our %args = (
syslogd => {
loggrep => {
get_charlog() => 5,
- }
+ },
},
file => {
# Feb 2 00:43:36 hostname 0123456789ABC...567
diff --git a/regress/usr.sbin/syslogd/args-length-vis.pl b/regress/usr.sbin/syslogd/args-length-vis.pl
index e9104d66a45..c3f03c2b18b 100644
--- a/regress/usr.sbin/syslogd/args-length-vis.pl
+++ b/regress/usr.sbin/syslogd/args-length-vis.pl
@@ -22,7 +22,7 @@ our %args = (
options => ["-u"],
loggrep => {
get_charlog() => 11,
- }
+ },
},
file => {
# Jan 31 00:12:39 localhost 0123456789ABC...567
diff --git a/regress/usr.sbin/syslogd/args-libevent-kqueue.pl b/regress/usr.sbin/syslogd/args-libevent-kqueue.pl
index 570c5ee9f05..15d925e08e4 100644
--- a/regress/usr.sbin/syslogd/args-libevent-kqueue.pl
+++ b/regress/usr.sbin/syslogd/args-libevent-kqueue.pl
@@ -15,8 +15,7 @@ $ENV{EVENT_NOSELECT} = 1;
our %args = (
syslogd => {
loggrep => qr/libevent using: kqueue/,
- ktrace => 1,
- kdump => qr/CALL kqueue/,
+ ktrace => qr/CALL kqueue/,
},
);
diff --git a/regress/usr.sbin/syslogd/args-libevent-poll.pl b/regress/usr.sbin/syslogd/args-libevent-poll.pl
index 1dd688a1ab6..b06fbc6eb4f 100644
--- a/regress/usr.sbin/syslogd/args-libevent-poll.pl
+++ b/regress/usr.sbin/syslogd/args-libevent-poll.pl
@@ -15,8 +15,7 @@ $ENV{EVENT_NOSELECT} = 1;
our %args = (
syslogd => {
loggrep => qr/libevent using: poll/,
- ktrace => 1,
- kdump => qr/CALL poll/,
+ ktrace => qr/CALL poll/,
},
);
diff --git a/regress/usr.sbin/syslogd/args-libevent-select.pl b/regress/usr.sbin/syslogd/args-libevent-select.pl
index 9c9bb3662ba..2643369b3ee 100644
--- a/regress/usr.sbin/syslogd/args-libevent-select.pl
+++ b/regress/usr.sbin/syslogd/args-libevent-select.pl
@@ -15,8 +15,7 @@ $ENV{EVENT_NOSELECT} = 0;
our %args = (
syslogd => {
loggrep => qr/libevent using: select/,
- ktrace => 1,
- kdump => qr/CALL select/,
+ ktrace => qr/CALL select/,
},
);
diff --git a/regress/usr.sbin/syslogd/args-only4.pl b/regress/usr.sbin/syslogd/args-only4.pl
index db4d9df2155..e6993f5acfb 100644
--- a/regress/usr.sbin/syslogd/args-only4.pl
+++ b/regress/usr.sbin/syslogd/args-only4.pl
@@ -14,7 +14,9 @@ our %args = (
connect => { domain => AF_INET, addr => "127.0.0.1", port => 514 },
},
syslogd => {
- fstat => 1,
+ fstat => {
+ qr/ internet6 / => 0,
+ },
loghost => '@127.0.0.1:$connectport',
options => ["-4nu"],
},
@@ -24,11 +26,6 @@ our %args = (
file => {
loggrep => qr/ 127.0.0.1 /. get_testlog(),
},
- fstat => {
- loggrep => {
- qr/ internet6 / => 0,
- },
- },
);
1;
diff --git a/regress/usr.sbin/syslogd/args-only6.pl b/regress/usr.sbin/syslogd/args-only6.pl
index bda7243088b..11072861020 100644
--- a/regress/usr.sbin/syslogd/args-only6.pl
+++ b/regress/usr.sbin/syslogd/args-only6.pl
@@ -14,7 +14,9 @@ our %args = (
connect => { domain => AF_INET6, addr => "::1", port => 514 },
},
syslogd => {
- fstat => 1,
+ fstat => {
+ qr/ internet / => 0,
+ },
loghost => '@[::1]:$connectport',
options => ["-6nu"],
},
@@ -24,11 +26,6 @@ our %args = (
file => {
loggrep => qr/ ::1 /. get_testlog(),
},
- fstat => {
- loggrep => {
- qr/ internet / => 0,
- },
- },
);
1;
diff --git a/regress/usr.sbin/syslogd/args-privsep-daemon.pl b/regress/usr.sbin/syslogd/args-privsep-daemon.pl
new file mode 100644
index 00000000000..6c8f814d55c
--- /dev/null
+++ b/regress/usr.sbin/syslogd/args-privsep-daemon.pl
@@ -0,0 +1,45 @@
+# Start syslogd in daemon mode.
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via UDP to the loghost.
+# The server receives the message on its UDP socket.
+# Find the message in client, file, syslogd, server log.
+# Check fstat for the parent and child process.
+# Check ktrace for setting the correct uid and gid.
+# Check that stdio is dupped to /dev/null.
+
+use strict;
+use warnings;
+
+our %args = (
+ syslogd => {
+ daemon => 1,
+ loggrep => {
+ qr/ -F / => 0,
+ qr/ -d / => 0,
+ },
+ fstat => {
+ qr/^root .* wd / => 1,
+ qr/^root .* root / => 0,
+ qr/^root .* [012] .* null$/ => 3,
+ qr/^root .* kqueue / => 0,
+ qr/^root .* internet/ => 0,
+ qr/^_syslogd .* wd / => 1,
+ qr/^_syslogd .* root / => 1,
+ qr/^_syslogd .* [012] .* null$/ => 3,
+ qr/^_syslogd .* kqueue / => 1,
+ qr/^_syslogd .* internet/ => 2,
+ },
+ ktrace => {
+ qr/CALL setresuid(.*"_syslogd".*){3}/ => 2,
+ qr/CALL setresgid(.*"_syslogd".*){3}/ => 2,
+ qr/CALL setsid/ => 1,
+ qr/RET setsid.* errno / => 0,
+ },
+ },
+ pipe => {
+ nocheck => 1,
+ },
+);
+
+1;
diff --git a/regress/usr.sbin/syslogd/args-privsep-foreground.pl b/regress/usr.sbin/syslogd/args-privsep-foreground.pl
new file mode 100644
index 00000000000..33053a815d0
--- /dev/null
+++ b/regress/usr.sbin/syslogd/args-privsep-foreground.pl
@@ -0,0 +1,44 @@
+# Start syslogd in foreground mode.
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via UDP to the loghost.
+# The server receives the message on its UDP socket.
+# Find the message in client, file, syslogd, server log.
+# Check fstat for the parent and child process.
+# Check ktrace for setting the correct uid and gid.
+# Check that stdio is dupped to /dev/null.
+
+use strict;
+use warnings;
+
+our %args = (
+ syslogd => {
+ foreground => 1,
+ loggrep => {
+ qr/ -F / => 1,
+ qr/ -d / => 0,
+ },
+ fstat => {
+ qr/^root .* wd / => 1,
+ qr/^root .* root / => 0,
+ qr/^root .* [012] .* null$/ => 3,
+ qr/^root .* kqueue / => 0,
+ qr/^root .* internet/ => 0,
+ qr/^_syslogd .* wd / => 1,
+ qr/^_syslogd .* root / => 1,
+ qr/^_syslogd .* [012] .* null$/ => 3,
+ qr/^_syslogd .* kqueue / => 1,
+ qr/^_syslogd .* internet/ => 2,
+ },
+ ktrace => {
+ qr/CALL setresuid(.*"_syslogd".*){3}/ => 2,
+ qr/CALL setresgid(.*"_syslogd".*){3}/ => 2,
+ qr/CALL setsid/ => 0,
+ },
+ },
+ pipe => {
+ nocheck => 1,
+ },
+);
+
+1;
diff --git a/regress/usr.sbin/syslogd/args-privsep.pl b/regress/usr.sbin/syslogd/args-privsep.pl
new file mode 100644
index 00000000000..d88e2740601
--- /dev/null
+++ b/regress/usr.sbin/syslogd/args-privsep.pl
@@ -0,0 +1,36 @@
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# 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, syslogd, server log.
+# Check fstat for the parent and child process.
+# Check ktrace for setting the correct uid and gid.
+
+use strict;
+use warnings;
+
+our %args = (
+ syslogd => {
+ loggrep => {
+ qr/ -F / => 0,
+ qr/ -d / => 1,
+ },
+ fstat => {
+ qr/^root .* wd / => 1,
+ qr/^root .* root / => 0,
+ qr/^root .* kqueue / => 0,
+ qr/^root .* internet/ => 0,
+ qr/^_syslogd .* wd / => 1,
+ qr/^_syslogd .* root / => 1,
+ qr/^_syslogd .* kqueue / => 1,
+ qr/^_syslogd .* internet/ => 2,
+ },
+ ktrace => {
+ qr/CALL setresuid(.*"_syslogd".*){3}/ => 2,
+ qr/CALL setresgid(.*"_syslogd".*){3}/ => 2,
+ qr/CALL setsid/ => 0,
+ },
+ },
+);
+
+1;
diff --git a/regress/usr.sbin/syslogd/args-sendsyslog.pl b/regress/usr.sbin/syslogd/args-sendsyslog.pl
index b29b25ac91f..18f716301ee 100644
--- a/regress/usr.sbin/syslogd/args-sendsyslog.pl
+++ b/regress/usr.sbin/syslogd/args-sendsyslog.pl
@@ -11,8 +11,7 @@ use warnings;
our %args = (
client => {
- ktrace => 1,
- kdump => {
+ ktrace => {
qr/CALL sendsyslog/ => 2,
qr/GIO fd -1 wrote \d+ bytes/ => 2,
qr/RET sendsyslog 0/ => 2,
diff --git a/regress/usr.sbin/syslogd/args-sighup-config.pl b/regress/usr.sbin/syslogd/args-sighup-config.pl
index a6c64e3fb5f..6f03753063e 100644
--- a/regress/usr.sbin/syslogd/args-sighup-config.pl
+++ b/regress/usr.sbin/syslogd/args-sighup-config.pl
@@ -18,8 +18,7 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- kdump => {
+ ktrace => {
qr/syslogd PSIG SIGHUP caught handler/ => 1,
qr/syslogd RET execve 0/ => 2,
},
diff --git a/regress/usr.sbin/syslogd/args-sighup-privsep.pl b/regress/usr.sbin/syslogd/args-sighup-privsep.pl
index 83415866d5b..e7f2b75a465 100644
--- a/regress/usr.sbin/syslogd/args-sighup-privsep.pl
+++ b/regress/usr.sbin/syslogd/args-sighup-privsep.pl
@@ -18,8 +18,7 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- kdump => {
+ ktrace => {
qr/syslogd PSIG SIGHUP caught handler/ => 2,
qr/syslogd RET execve 0/ => 1,
},
diff --git a/regress/usr.sbin/syslogd/args-sighup-tcp.pl b/regress/usr.sbin/syslogd/args-sighup-tcp.pl
index ba26557b0b3..5a6c8414224 100644
--- a/regress/usr.sbin/syslogd/args-sighup-tcp.pl
+++ b/regress/usr.sbin/syslogd/args-sighup-tcp.pl
@@ -19,9 +19,11 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- fstat => 1,
- kdump => {
+ fstat => {
+ # sighup must not leak a TCP socket
+ qr/internet stream tcp/ => 1,
+ },
+ ktrace => {
qr/syslogd PSIG SIGHUP caught handler/ => 1,
qr/syslogd RET execve 0/ => 1,
},
@@ -57,12 +59,6 @@ our %args = (
qr/Accepted/ => 2,
},
},
- fstat => {
- loggrep => {
- # sighup must not leak a TCP socket
- qr/internet stream tcp/ => 1,
- },
- },
);
1;
diff --git a/regress/usr.sbin/syslogd/args-sighup-tls.pl b/regress/usr.sbin/syslogd/args-sighup-tls.pl
index 20b04b17966..f97c2009c3c 100644
--- a/regress/usr.sbin/syslogd/args-sighup-tls.pl
+++ b/regress/usr.sbin/syslogd/args-sighup-tls.pl
@@ -19,9 +19,11 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- fstat => 1,
- kdump => {
+ fstat => {
+ # sighup must not leak a TCP socket
+ qr/internet stream tcp/ => 1,
+ },
+ ktrace => {
qr/syslogd PSIG SIGHUP caught handler/ => 1,
qr/syslogd RET execve 0/ => 1,
},
@@ -57,12 +59,6 @@ our %args = (
qr/Accepted/ => 2,
},
},
- fstat => {
- loggrep => {
- # sighup must not leak a TCP socket
- qr/internet stream tcp/ => 1,
- },
- },
);
1;
diff --git a/regress/usr.sbin/syslogd/args-sighup.pl b/regress/usr.sbin/syslogd/args-sighup.pl
index 41b4b0dbbe5..c8dc56ad865 100644
--- a/regress/usr.sbin/syslogd/args-sighup.pl
+++ b/regress/usr.sbin/syslogd/args-sighup.pl
@@ -18,8 +18,7 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- kdump => {
+ ktrace => {
qr/syslogd PSIG SIGHUP caught handler/ => 1,
qr/syslogd RET execve 0/ => 1,
},
diff --git a/regress/usr.sbin/syslogd/args-sigpipe.pl b/regress/usr.sbin/syslogd/args-sigpipe.pl
index 7bf9259b3aa..a74f8ae3a67 100644
--- a/regress/usr.sbin/syslogd/args-sigpipe.pl
+++ b/regress/usr.sbin/syslogd/args-sigpipe.pl
@@ -18,8 +18,7 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- kdump => {
+ ktrace => {
qr/syslogd PSIG SIGPIPE/ => 0,
qr/syslogd RET execve 0/ => 1,
},
diff --git a/regress/usr.sbin/syslogd/args-sigterm.pl b/regress/usr.sbin/syslogd/args-sigterm.pl
index 93032fe3410..ef3d62ba5fb 100644
--- a/regress/usr.sbin/syslogd/args-sigterm.pl
+++ b/regress/usr.sbin/syslogd/args-sigterm.pl
@@ -18,8 +18,7 @@ our %args = (
loggrep => { get_between2loggrep() },
},
syslogd => {
- ktrace => 1,
- kdump => {
+ ktrace => {
qr/syslogd PSIG SIGTERM caught handler/ => 1,
qr/syslogd RET execve 0/ => 1,
},
diff --git a/regress/usr.sbin/syslogd/args-socket-tcp.pl b/regress/usr.sbin/syslogd/args-socket-tcp.pl
index 13429a6dc2e..1db665a2532 100644
--- a/regress/usr.sbin/syslogd/args-socket-tcp.pl
+++ b/regress/usr.sbin/syslogd/args-socket-tcp.pl
@@ -11,18 +11,15 @@ use Socket;
our %args = (
syslogd => {
- fstat => 1,
+ fstat => {
+ qr/ internet stream tcp / => 1,
+ },
loghost => '@tcp://127.0.0.1:$connectport',
options => ["-n"],
},
server => {
listen => { domain => AF_INET, addr => "127.0.0.1", proto => "tcp" },
},
- fstat => {
- loggrep => {
- qr/ internet stream tcp / => 1,
- },
- },
);
1;
diff --git a/regress/usr.sbin/syslogd/args-socket-tls.pl b/regress/usr.sbin/syslogd/args-socket-tls.pl
index 67faf5e1801..850fadfb2ff 100644
--- a/regress/usr.sbin/syslogd/args-socket-tls.pl
+++ b/regress/usr.sbin/syslogd/args-socket-tls.pl
@@ -11,18 +11,15 @@ use Socket;
our %args = (
syslogd => {
- fstat => 1,
+ fstat => {
+ qr/ internet stream tcp / => 1,
+ },
loghost => '@tls://127.0.0.1:$connectport',
options => ["-n"],
},
server => {
listen => { domain => AF_INET, addr => "127.0.0.1", proto => "tls" },
},
- fstat => {
- loggrep => {
- qr/ internet stream tcp / => 1,
- },
- },
);
1;
diff --git a/regress/usr.sbin/syslogd/args-socket.pl b/regress/usr.sbin/syslogd/args-socket.pl
index afb48650ff8..2903cf67c23 100644
--- a/regress/usr.sbin/syslogd/args-socket.pl
+++ b/regress/usr.sbin/syslogd/args-socket.pl
@@ -15,14 +15,11 @@ our %args = (
connect => { domain => AF_INET, addr => "127.0.0.1", port => 514 },
},
syslogd => {
- fstat => 1,
- options => ["-nu"],
- },
- fstat => {
- loggrep => {
+ fstat => {
qr/ internet dgram udp \*:514$/ => 1,
qr/ internet6 dgram udp \*:514$/ => 1,
},
+ options => ["-nu"],
},
);
diff --git a/regress/usr.sbin/syslogd/funcs.pl b/regress/usr.sbin/syslogd/funcs.pl
index 4f71b5277d8..a30d97e1bc6 100644
--- a/regress/usr.sbin/syslogd/funcs.pl
+++ b/regress/usr.sbin/syslogd/funcs.pl
@@ -1,4 +1,4 @@
-# $OpenBSD: funcs.pl,v 1.18 2015/02/12 23:16:02 bluhm Exp $
+# $OpenBSD: funcs.pl,v 1.19 2015/06/15 21:44:57 bluhm Exp $
# Copyright (c) 2010-2015 Alexander Bluhm <bluhm@openbsd.org>
#
@@ -248,8 +248,8 @@ sub check_logs {
check_log($c, $r, $s, @$m);
check_out($r, %args);
- check_stat($r, %args);
- check_kdump($c, $r, $s);
+ check_fstat($c, $r, $s);
+ check_ktrace($c, $r, $s);
if (my $file = $s->{"outfile"}) {
my $pattern = $s->{filegrep} || $testlog;
check_pattern(ref $s, $file, $pattern, \&filegrep);
@@ -323,14 +323,11 @@ sub check_out {
}
}
-sub check_stat {
- my ($r, %args) = @_;
-
- foreach my $name (qw(fstat)) {
- next unless $r && $r->{$name};
- my $file = $r->{"${name}file"} or die;
- my $pattern = $args{$name}{loggrep} or die;
- check_pattern($name, $file, $pattern, \&filegrep);
+sub check_fstat {
+ foreach my $proc (@_) {
+ my $pattern = $proc && $proc->{fstat} or next;
+ my $file = $proc->{fstatfile} or die;
+ check_pattern("fstat", $file, $pattern, \&filegrep);
}
}
@@ -343,12 +340,11 @@ sub filegrep {
grep { /$pattern/ } <$fh> : first { /$pattern/ } <$fh>;
}
-sub check_kdump {
+sub check_ktrace {
foreach my $proc (@_) {
- next unless $proc && $proc->{ktrace};
+ my $pattern = $proc && $proc->{ktrace} or next;
my $file = $proc->{ktracefile} or die;
- my $pattern = $proc->{kdump} or die;
- check_pattern(ref $proc, $file, $pattern, \&kdumpgrep);
+ check_pattern("ktrace", $file, $pattern, \&kdumpgrep);
}
}