summaryrefslogtreecommitdiff
path: root/regress/sys/kern/sosplice/tcp/args-relay-close-in.pl
diff options
context:
space:
mode:
authorAlexander Bluhm <bluhm@cvs.openbsd.org>2013-01-03 17:36:40 +0000
committerAlexander Bluhm <bluhm@cvs.openbsd.org>2013-01-03 17:36:40 +0000
commit439f9b4a840f88141347e1dd7e9ee5bb43589307 (patch)
treec32594a76889878a276c61c8eed78bd82c6f05ac /regress/sys/kern/sosplice/tcp/args-relay-close-in.pl
parent2ce7bb12a1f7d2fbfd4f40267a189c00bef845a0 (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.pl29
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,
+ },
+);