2 # Copyright (c) 2009 Rainbows! developers
7 # sometimes we rely on http_proxy to avoid wasting bandwidth with Isolate
8 # and multiple Ruby versions
9 NO_PROXY
=${UNICORN_TEST_ADDR-127.0.0.1}
14 # defaulting to Base would unfortunately fail some concurrency tests
16 t_info
"model undefined, defaulting to $model"
21 RUBY_VERSION
=${RUBY_VERSION-$($RUBY -e 'puts RUBY_VERSION')}
22 t_pfx
=$PWD/trash
/$model.
$T-$RUBY_ENGINE-$RUBY_VERSION
28 test -x $PWD/bin
/unused_listen || die
"must be run in 't' directory"
30 # requires $1 and prints out the value of $2
34 if ! $RUBY -r$lib -e "puts $const" >/dev
/null
2>&1
36 t_info
"skipping $T since we don't have $lib"
44 if test x
"$model" != x
"$i"
48 t_info
"skipping $T since it is not compatible with $model"
54 # given a list of variable names, create temporary files and assign
55 # the pathnames to those variables
67 T_RM_LIST
="$T_RM_LIST $_tmp"
71 T_RM_LIST
="$T_RM_LIST $_tmp"
75 T_OK_RM_LIST
="$T_OK_RM_LIST $_tmp"
85 sed -e "s/^/$id:/" < $_file
92 if grep -i Error
$_r_err
94 die
"Errors found in $_r_err"
95 elif grep SIGKILL
$_r_err
97 die
"SIGKILL found in $_r_err"
101 # zbatery_setup [ MODEL [ WORKER_CONNECTIONS ] ]
103 eval $
(unused_listen
)
104 rtmpfiles unicorn_config pid r_err r_out fifo tmp ok
105 cat > $unicorn_config <<EOF
111 after_fork do |server, worker|
112 # test script will block while reading from $fifo,
113 # so notify the script on the first worker we spawn
114 # by opening the FIFO
116 File.open("$fifo", "wb") { |fp| fp.syswrite "START" }
121 # set a higher default for tests since we run heavily-loaded
122 # boxes and sometimes sleep 1s in tests
125 echo " client_max_body_size nil"
129 test $# -ge 2 && echo " worker_connections $2"
132 echo " keepalive_timeout $3"
134 echo " keepalive_timeout $kato"
138 echo " keepalive_timeout $kato"
144 zbatery_wait_start
() {
145 # "cat $fifo" will block until the before_fork hook is called in
146 # the Unicorn config file
147 test xSTART
= x
"$(cat $fifo)"
148 zbatery_pid
=$
(cat $pid)
152 _cmd
="$(which sha1sum 2>/dev/null || :)"
153 test -n "$_cmd" || _cmd
="$(which openssl 2>/dev/null || :) sha1"
154 test "$_cmd" != " sha1" || _cmd
="$(which gsha1sum 2>/dev/null || :)"
156 # last resort, see comments in sha1sum.rb for reasoning
157 test -n "$_cmd" || _cmd
=sha1sum.rb
158 expr "$($_cmd)" : '\([a-f0-9]\{40\}\)'
161 req_curl_chunked_upload_err_check
() {
163 curl
--version 2>/dev
/null |
awk '$1 == "curl" {
165 if ((v[1] < 7) || (v[1] == 7 && v[2] < 18))
171 t_info
"curl >= 7.18.0 required for $T"
177 Rev
) require_check
rev Rev
::VERSION
;;
178 Coolio
) require_check coolio Coolio
::VERSION
;;
179 Revactor
) require_check revactor Revactor
::VERSION
;;
180 EventMachine
) require_check eventmachine EventMachine
::VERSION
;;