summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbluhm <bluhm@openbsd.org>2011-09-02 21:05:41 +0000
committerbluhm <bluhm@openbsd.org>2011-09-02 21:05:41 +0000
commite1c6cc069bd9216a334b6730327e986b16fb815d (patch)
treecd8f7a5c0de520191b45d1b15b4e09c65961e111
parentDifferential gain calibration makes the 6005 firmware crap out, so skip it for (diff)
downloadwireguard-openbsd-e1c6cc069bd9216a334b6730327e986b16fb815d.tar.xz
wireguard-openbsd-e1c6cc069bd9216a334b6730327e986b16fb815d.zip
Add tests for relayd session timeout.
-rw-r--r--regress/usr.sbin/relayd/Client.pm3
-rw-r--r--regress/usr.sbin/relayd/args-http-log.pl2
-rw-r--r--regress/usr.sbin/relayd/args-http-persistent.pl2
-rw-r--r--regress/usr.sbin/relayd/args-http-put.pl2
-rw-r--r--regress/usr.sbin/relayd/args-http.pl2
-rw-r--r--regress/usr.sbin/relayd/args-https-persistent.pl2
-rw-r--r--regress/usr.sbin/relayd/args-https-put.pl2
-rw-r--r--regress/usr.sbin/relayd/args-https.pl2
-rw-r--r--regress/usr.sbin/relayd/args-ssl-client.pl2
-rw-r--r--regress/usr.sbin/relayd/args-ssl-server.pl2
-rw-r--r--regress/usr.sbin/relayd/args-ssl.pl2
-rw-r--r--regress/usr.sbin/relayd/args-timein-http.pl28
-rw-r--r--regress/usr.sbin/relayd/args-timein.pl23
-rw-r--r--regress/usr.sbin/relayd/args-timeout-http.pl29
-rw-r--r--regress/usr.sbin/relayd/args-timeout.pl24
-rw-r--r--regress/usr.sbin/relayd/funcs.pl17
-rw-r--r--regress/usr.sbin/relayd/relayd.pl4
17 files changed, 133 insertions, 15 deletions
diff --git a/regress/usr.sbin/relayd/Client.pm b/regress/usr.sbin/relayd/Client.pm
index 3b70147babe..fcb7319332e 100644
--- a/regress/usr.sbin/relayd/Client.pm
+++ b/regress/usr.sbin/relayd/Client.pm
@@ -1,4 +1,4 @@
-# $OpenBSD: Client.pm,v 1.1 2011/09/01 17:33:17 bluhm Exp $
+# $OpenBSD: Client.pm,v 1.2 2011/09/02 21:05:41 bluhm Exp $
# Copyright (c) 2010,2011 Alexander Bluhm <bluhm@openbsd.org>
#
@@ -31,7 +31,6 @@ sub new {
my %args = @_;
$args{logfile} ||= "client.log";
$args{up} ||= "Connected";
- $args{down} ||= "Shutdown|Broken pipe|Connection reset by peer";
my $self = Proc::new($class, %args);
$self->{connectdomain}
or croak "$class connect domain not given";
diff --git a/regress/usr.sbin/relayd/args-http-log.pl b/regress/usr.sbin/relayd/args-http-log.pl
index 37c773d9764..00f0180fdd5 100644
--- a/regress/usr.sbin/relayd/args-http-log.pl
+++ b/regress/usr.sbin/relayd/args-http-log.pl
@@ -7,7 +7,7 @@ our %args = (
client => {
func => \&http_client,
},
- relay => {
+ relayd => {
protocol => [ "http",
"request header log foo",
"response header log bar",
diff --git a/regress/usr.sbin/relayd/args-http-persistent.pl b/regress/usr.sbin/relayd/args-http-persistent.pl
index 08b644f6f31..59362bc8ad5 100644
--- a/regress/usr.sbin/relayd/args-http-persistent.pl
+++ b/regress/usr.sbin/relayd/args-http-persistent.pl
@@ -9,7 +9,7 @@ our %args = (
func => \&http_client,
lengths => \@lengths,
},
- relay => {
+ relayd => {
protocol => [ "http",
"request header log foo",
"response header log bar",
diff --git a/regress/usr.sbin/relayd/args-http-put.pl b/regress/usr.sbin/relayd/args-http-put.pl
index c33f4fb8562..302fe483596 100644
--- a/regress/usr.sbin/relayd/args-http-put.pl
+++ b/regress/usr.sbin/relayd/args-http-put.pl
@@ -10,7 +10,7 @@ our %args = (
lengths => \@lengths,
method => "PUT",
},
- relay => {
+ relayd => {
protocol => [ "http",
"request header log foo",
"response header log bar",
diff --git a/regress/usr.sbin/relayd/args-http.pl b/regress/usr.sbin/relayd/args-http.pl
index 4aa918a468e..180fe00d138 100644
--- a/regress/usr.sbin/relayd/args-http.pl
+++ b/regress/usr.sbin/relayd/args-http.pl
@@ -7,7 +7,7 @@ our %args = (
client => {
func => \&http_client,
},
- relay => {
+ relayd => {
protocol => [ "http" ],
},
server => {
diff --git a/regress/usr.sbin/relayd/args-https-persistent.pl b/regress/usr.sbin/relayd/args-https-persistent.pl
index 3cd869c33db..ed4569ade88 100644
--- a/regress/usr.sbin/relayd/args-https-persistent.pl
+++ b/regress/usr.sbin/relayd/args-https-persistent.pl
@@ -10,7 +10,7 @@ our %args = (
lengths => \@lengths,
ssl => 1,
},
- relay => {
+ relayd => {
protocol => [ "http",
"request header log foo",
"response header log bar",
diff --git a/regress/usr.sbin/relayd/args-https-put.pl b/regress/usr.sbin/relayd/args-https-put.pl
index 7284e0cbbfd..c8a8cef328e 100644
--- a/regress/usr.sbin/relayd/args-https-put.pl
+++ b/regress/usr.sbin/relayd/args-https-put.pl
@@ -11,7 +11,7 @@ our %args = (
method => "PUT",
ssl => 1,
},
- relay => {
+ relayd => {
protocol => [ "http",
"request header log foo",
"response header log bar",
diff --git a/regress/usr.sbin/relayd/args-https.pl b/regress/usr.sbin/relayd/args-https.pl
index 65b1014c56d..90f1141a3e1 100644
--- a/regress/usr.sbin/relayd/args-https.pl
+++ b/regress/usr.sbin/relayd/args-https.pl
@@ -8,7 +8,7 @@ our %args = (
func => \&http_client,
ssl => 1,
},
- relay => {
+ relayd => {
protocol => [ "http",
"request header log foo",
"response header log bar",
diff --git a/regress/usr.sbin/relayd/args-ssl-client.pl b/regress/usr.sbin/relayd/args-ssl-client.pl
index 2c657a5f1bd..4c08abeea68 100644
--- a/regress/usr.sbin/relayd/args-ssl-client.pl
+++ b/regress/usr.sbin/relayd/args-ssl-client.pl
@@ -7,7 +7,7 @@ our %args = (
client => {
ssl => 1,
},
- relay => {
+ relayd => {
listenssl => 1,
},
len => 251,
diff --git a/regress/usr.sbin/relayd/args-ssl-server.pl b/regress/usr.sbin/relayd/args-ssl-server.pl
index 629e46582cb..1f5e4106f67 100644
--- a/regress/usr.sbin/relayd/args-ssl-server.pl
+++ b/regress/usr.sbin/relayd/args-ssl-server.pl
@@ -4,7 +4,7 @@ use strict;
use warnings;
our %args = (
- relay => {
+ relayd => {
forwardssl => 1,
},
server => {
diff --git a/regress/usr.sbin/relayd/args-ssl.pl b/regress/usr.sbin/relayd/args-ssl.pl
index 80653efb12d..31a9e58b1c0 100644
--- a/regress/usr.sbin/relayd/args-ssl.pl
+++ b/regress/usr.sbin/relayd/args-ssl.pl
@@ -7,7 +7,7 @@ our %args = (
client => {
ssl => 1,
},
- relay => {
+ relayd => {
forwardssl => 1,
listenssl => 1,
},
diff --git a/regress/usr.sbin/relayd/args-timein-http.pl b/regress/usr.sbin/relayd/args-timein-http.pl
new file mode 100644
index 00000000000..6a0add6956e
--- /dev/null
+++ b/regress/usr.sbin/relayd/args-timein-http.pl
@@ -0,0 +1,28 @@
+# test that 3 seconds timeout does not occur within 2 seconds idle in http
+
+use strict;
+use warnings;
+
+our %args = (
+ client => {
+ func => \&http_client,
+ len => 5,
+ },
+ relayd => {
+ protocol => [ "http" ],
+ relay => [ "session timeout 3" ],
+ },
+ server => {
+ func => sub {
+ errignore();
+ http_server(@_);
+ sleep 2;
+ write_char(@_, 4);
+ },
+ sleep => 1,
+ nocheck => 1,
+ },
+ len => 9,
+);
+
+1;
diff --git a/regress/usr.sbin/relayd/args-timein.pl b/regress/usr.sbin/relayd/args-timein.pl
new file mode 100644
index 00000000000..6b3ec30a8ec
--- /dev/null
+++ b/regress/usr.sbin/relayd/args-timein.pl
@@ -0,0 +1,23 @@
+# test that 3 seconds timeout does not occur within 2 seconds idle
+
+use strict;
+use warnings;
+
+our %args = (
+ client => {
+ func => sub {
+ errignore();
+ write_char(@_, 5);
+ sleep 2;
+ write_char(@_, 4);
+ },
+ sleep => 1,
+ nocheck => 1,
+ },
+ relayd => {
+ relay => [ "session timeout 3" ],
+ },
+ len => 9,
+);
+
+1;
diff --git a/regress/usr.sbin/relayd/args-timeout-http.pl b/regress/usr.sbin/relayd/args-timeout-http.pl
new file mode 100644
index 00000000000..6cc33be4712
--- /dev/null
+++ b/regress/usr.sbin/relayd/args-timeout-http.pl
@@ -0,0 +1,29 @@
+# test that 3 seconds timeout occurs within 4 seconds idle in http
+
+use strict;
+use warnings;
+
+our %args = (
+ client => {
+ func => \&http_client,
+ len => 5,
+ },
+ relayd => {
+ protocol => [ "http" ],
+ relay => [ "session timeout 3" ],
+ },
+ server => {
+ func => sub {
+ errignore();
+ http_server(@_);
+ sleep 4;
+ write_char(@_, 4);
+ },
+ sleep => 1,
+ down => "Broken pipe",
+ nocheck => 1,
+ },
+ len => 5,
+);
+
+1;
diff --git a/regress/usr.sbin/relayd/args-timeout.pl b/regress/usr.sbin/relayd/args-timeout.pl
new file mode 100644
index 00000000000..f42d1a7f1ab
--- /dev/null
+++ b/regress/usr.sbin/relayd/args-timeout.pl
@@ -0,0 +1,24 @@
+# test that 3 seconds timeout occurs within 4 seconds idle
+
+use strict;
+use warnings;
+
+our %args = (
+ client => {
+ func => sub {
+ errignore();
+ write_char(@_, 5);
+ sleep 4;
+ write_char(@_, 4);
+ },
+ sleep => 1,
+ down => "Broken pipe",
+ nocheck => 1,
+ },
+ relayd => {
+ relay => [ "session timeout 3" ],
+ },
+ len => 5,
+);
+
+1;
diff --git a/regress/usr.sbin/relayd/funcs.pl b/regress/usr.sbin/relayd/funcs.pl
index c928208c7fa..4c12ef875b0 100644
--- a/regress/usr.sbin/relayd/funcs.pl
+++ b/regress/usr.sbin/relayd/funcs.pl
@@ -1,4 +1,4 @@
-# $OpenBSD: funcs.pl,v 1.3 2011/09/02 17:02:10 bluhm Exp $
+# $OpenBSD: funcs.pl,v 1.4 2011/09/02 21:05:41 bluhm Exp $
# Copyright (c) 2010,2011 Alexander Bluhm <bluhm@openbsd.org>
#
@@ -124,6 +124,21 @@ sub http_client {
}
}
+sub errignore {
+ $SIG{PIPE} = 'IGNORE';
+ $SIG{__DIE__} = sub {
+ die @_ if $^S;
+ warn @_;
+ my $soerror;
+ $soerror = getsockopt(STDIN, SOL_SOCKET, SO_ERROR);
+ print STDERR "ERROR IN: ", unpack('i', $soerror), "\n";
+ $soerror = getsockopt(STDOUT, SOL_SOCKET, SO_ERROR);
+ print STDERR "ERROR OUT: ", unpack('i', $soerror), "\n";
+ IO::Handle::flush(\*STDERR);
+ POSIX::_exit(0);
+ };
+}
+
########################################################################
# Server funcs
########################################################################
diff --git a/regress/usr.sbin/relayd/relayd.pl b/regress/usr.sbin/relayd/relayd.pl
index 73fbb2b6c23..878fdbb865a 100644
--- a/regress/usr.sbin/relayd/relayd.pl
+++ b/regress/usr.sbin/relayd/relayd.pl
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# $OpenBSD: relayd.pl,v 1.2 2011/09/02 10:45:36 bluhm Exp $
+# $OpenBSD: relayd.pl,v 1.3 2011/09/02 21:05:41 bluhm Exp $
# Copyright (c) 2010,2011 Alexander Bluhm <bluhm@openbsd.org>
#
@@ -54,7 +54,7 @@ my $r = Relayd->new(
connectdomain => AF_INET,
connectaddr => "127.0.0.1",
connectport => $sport,
- %{$args{relay}},
+ %{$args{relayd}},
test => $test,
);
my $c = Client->new(