1# test server reads and exits after reading some data 2 3use strict; 4use warnings; 5 6our %args = ( 7 client => { 8 func => sub { errignore(@_); write_stream(@_); }, 9 len => 2**30, # not reached 10 sndbuf => 2**10, # small buffer triggers error during write 11 # the error message seems to be timing dependent 12 down => "Client print failed: (Broken pipe|Connection reset by peer)", 13 nocheck => 1, 14 error => 54, 15 }, 16 relay => { 17 func => sub { errignore(@_); relay(@_); }, 18 rcvbuf => 2**10, 19 sndbuf => 2**10, 20 down => "Broken pipe|Connection reset by peer", 21 nocheck => 1, 22 errorin => 0, # syscall has read the error and resetted it 23 errorout => 54, 24 }, 25 server => { 26 alarm => 3, 27 rcvbuf => 2**15, 28 nocheck => 1, 29 }, 30 noecho => 1, 31); 32