tests: add unbuffered tee(1)-like helper
[rainbows.git] / t / t4101-rev-rack-input-trailer.sh
blob9dffc43d089ff38b7d9f12e3cda6f46a8faeb85c
1 #!/bin/sh
2 nr_client=${nr_client-25}
3 nr=${nr-50}
5 . ./test-lib.sh
6 require_rev
7 test -r random_blob || die "random_blob required, run with 'make $0'"
9 eval $(unused_listen)
10 rtmpfiles unicorn_config tmp r_err r_out pid fifo ok
11 rm -f $fifo
12 mkfifo $fifo
14 cat > $unicorn_config <<EOF
15 listen "$listen"
16 pid "$pid"
17 stderr_path "$r_err"
18 stdout_path "$r_out"
19 Rainbows! do
20 use :Rev
21 end
22 EOF
24 rainbows -D content-md5.ru -c $unicorn_config
25 wait_for_pid $pid
27 echo "small blob"
29 echo hello world | content-md5-put
30 cat $fifo > $tmp &
31 wait
32 echo ok > $ok
33 ) | socat - TCP:$listen | tee $fifo
35 fgrep 'HTTP/1.1 200 OK' $tmp
36 test xok = x"$(cat $ok)"
37 ! grep Error $r_err
40 echo "big blob"
42 content-md5-put < random_blob
43 cat $fifo > $tmp &
44 wait
45 echo ok > $ok
46 ) | socat - TCP:$listen | tee $fifo
48 fgrep 'HTTP/1.1 200 OK' $tmp
49 test xok = x"$(cat $ok)"
50 ! grep Error $r_err
51 kill $(cat $pid)