diff options
author | 2011-09-02 21:05:41 +0000 | |
---|---|---|
committer | 2011-09-02 21:05:41 +0000 | |
commit | e1c6cc069bd9216a334b6730327e986b16fb815d (patch) | |
tree | cd8f7a5c0de520191b45d1b15b4e09c65961e111 | |
parent | Differential gain calibration makes the 6005 firmware crap out, so skip it for (diff) | |
download | wireguard-openbsd-e1c6cc069bd9216a334b6730327e986b16fb815d.tar.xz wireguard-openbsd-e1c6cc069bd9216a334b6730327e986b16fb815d.zip |
Add tests for relayd session timeout.
-rw-r--r-- | regress/usr.sbin/relayd/Client.pm | 3 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-http-log.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-http-persistent.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-http-put.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-http.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-https-persistent.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-https-put.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-https.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-ssl-client.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-ssl-server.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-ssl.pl | 2 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-timein-http.pl | 28 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-timein.pl | 23 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-timeout-http.pl | 29 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/args-timeout.pl | 24 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/funcs.pl | 17 | ||||
-rw-r--r-- | regress/usr.sbin/relayd/relayd.pl | 4 |
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( |