diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2013-01-03 17:36:40 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2013-01-03 17:36:40 +0000 |
commit | 439f9b4a840f88141347e1dd7e9ee5bb43589307 (patch) | |
tree | c32594a76889878a276c61c8eed78bd82c6f05ac /regress/sys/kern/sosplice/tcp/args-relay-close-in.pl | |
parent | 2ce7bb12a1f7d2fbfd4f40267a189c00bef845a0 (diff) |
Reengineer the socket splicing regression tests:
- Move the tests from splice to new sosplice directory for consistent naming.
- Split the API tests and the TCP splicing tests into separate directories.
- Create some tests for the upcoming UDP splicing.
- Tests can be run in obj directories now.
- The API tests can run both on a local and on a remote machine now.
- Fix the forking TCP tests which splice and read or write simultaneously.
- Bunch of little fixes for races in the tests.
- Deduplicate code, move checks into common functions.
Diffstat (limited to 'regress/sys/kern/sosplice/tcp/args-relay-close-in.pl')
-rw-r--r-- | regress/sys/kern/sosplice/tcp/args-relay-close-in.pl | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/regress/sys/kern/sosplice/tcp/args-relay-close-in.pl b/regress/sys/kern/sosplice/tcp/args-relay-close-in.pl new file mode 100644 index 00000000000..e01f96030e6 --- /dev/null +++ b/regress/sys/kern/sosplice/tcp/args-relay-close-in.pl @@ -0,0 +1,29 @@ +# test relay closes stdin after relaying some data + +use strict; +use warnings; + +our %args = ( + client => { + func => sub { errignore(@_); write_stream(@_); }, + len => 2**30, # not reached + sndbuf => 2**10, # small buffer triggers error during write + # the error message seems to be timing dependent + down => "Client print failed: (Broken pipe|Connection reset by peer)", + nocheck => 1, + error => 54, + }, + relay => { + func => sub { errignore(@_); $SIG{ALRM} = sub { close STDIN }; + alarm(3); relay(@_); }, + rcvbuf => 2**10, + sndbuf => 2**10, + down => "Bad file descriptor", + nocheck => 1, + errorin => "", + }, + server => { + rcvbuf => 2**10, + nocheck => 1, + }, +); |