unicorn 4.6.0pre1 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -61,6 +61,10 @@ with rackup(1) but strongly discouraged.
61
61
  For production deployments, specifying the "listen" directive in
62
62
  CONFIG_FILE is recommended as it allows fine-tuning of socket
63
63
  options.
64
+ -N, \--no-default-middleware
65
+ : Disables loading middleware implied by RACK_ENV. This bypasses the
66
+ configuration documented in the RACK ENVIRONMENT section, but still
67
+ allows RACK_ENV to be used for application/framework-specific purposes.
64
68
 
65
69
  # RACKUP COMPATIBILITY OPTIONS
66
70
  -o, \--host HOST
@@ -144,10 +148,10 @@ As of Unicorn 0.94.0, RACK_ENV is exported as a process-wide environment
144
148
  variable as well. While not current a part of the Rack specification as
145
149
  of Rack 1.0.1, this has become a de facto standard in the Rack world.
146
150
 
147
- Note that the Rack::ContentLength and Rack::Chunked middlewares
148
- are never loaded by default. If needed, they should be
149
- individually specified in the RACKUP_FILE, some frameworks do
150
- not require them.
151
+ Note the Rack::ContentLength and Rack::Chunked middlewares are also
152
+ loaded by "deployment" and "development", but no other values of
153
+ RACK_ENV. If needed, they must be individually specified in the
154
+ RACKUP_FILE, some frameworks do not require them.
151
155
 
152
156
  # ENVIRONMENT VARIABLES
153
157
 
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
 
3
3
  GVF=GIT-VERSION-FILE
4
- DEF_VER=v4.6.0.pre1
4
+ DEF_VER=v4.6.0
5
5
 
6
6
  LF='
7
7
  '
@@ -26,7 +26,7 @@ t_begin "HTTP/0.9 request should not return headers" && {
26
26
  }
27
27
 
28
28
  t_begin "env.inspect should've put everything on one line" && {
29
- test 1 -eq $(wc -l < $tmp)
29
+ test 1 -eq $(count_lines < $tmp)
30
30
  }
31
31
 
32
32
  t_begin "no headers in output" && {
@@ -23,9 +23,9 @@ t_begin "sleep for a bit, ensure worker PID does not change" && {
23
23
 
24
24
  t_begin "block the worker process to force it to die" && {
25
25
  rm $ok
26
- t0=$(date +%s)
26
+ t0=$(unix_time)
27
27
  err="$(curl -sSf http://$listen/block-forever 2>&1 || > $ok)"
28
- t1=$(date +%s)
28
+ t1=$(unix_time)
29
29
  elapsed=$(($t1 - $t0))
30
30
  t_info "elapsed=$elapsed err=$err"
31
31
  test x"$err" != x"Should never get here"
@@ -34,7 +34,7 @@ t_begin "block the worker process to force it to die" && {
34
34
 
35
35
  t_begin "ensure worker was killed" && {
36
36
  test -e $ok
37
- test 1 -eq $(grep timeout $r_err | grep killing | wc -l)
37
+ test 1 -eq $(grep timeout $r_err | grep killing | count_lines)
38
38
  }
39
39
 
40
40
  t_begin "ensure timeout took at least 3 seconds" && {
@@ -62,11 +62,11 @@ t_begin "rotated stderr is clean" && {
62
62
  }
63
63
 
64
64
  t_begin "server is now writing logs to new stderr" && {
65
- before_rot=$(wc -c < $r_rot)
66
- before_err=$(wc -c < $r_err)
65
+ before_rot=$(count_bytes < $r_rot)
66
+ before_err=$(count_bytes < $r_err)
67
67
  test xtrue = x$(curl -sSf http://$listen/ 2> $curl_err)
68
- after_rot=$(wc -c < $r_rot)
69
- after_err=$(wc -c < $r_err)
68
+ after_rot=$(count_bytes < $r_rot)
69
+ after_err=$(count_bytes < $r_err)
70
70
  test $after_rot -eq $before_rot
71
71
  test $after_err -gt $before_err
72
72
  }
@@ -5,7 +5,7 @@ t_plan 5 "max_header_len setting (only intended for Rainbows!)"
5
5
  t_begin "setup and start" && {
6
6
  unicorn_setup
7
7
  req='GET / HTTP/1.0\r\n\r\n'
8
- len=$(printf "$req" | wc -c)
8
+ len=$(printf "$req" | count_bytes)
9
9
  echo Unicorn::HttpParser.max_header_len = $len >> $unicorn_config
10
10
  unicorn -D -c $unicorn_config env.ru
11
11
  unicorn_wait_start
@@ -8,9 +8,9 @@ t_begin "setup and startup" && {
8
8
  rtmpfiles curl_out curl_err
9
9
  unicorn_setup
10
10
  unicorn -E none -D rack-input-tests.ru -c $unicorn_config
11
- blob_sha1=$(rsha1 < random_blob)
12
- blob_size=$(wc -c < random_blob)
13
- t_info "blob_sha1=$blob_sha1"
11
+ blob_sha1=$(rsha1 < random_blob)
12
+ blob_size=$(count_bytes < random_blob)
13
+ t_info "blob_sha1=$blob_sha1"
14
14
  unicorn_wait_start
15
15
  }
16
16
 
@@ -24,7 +24,7 @@ t_begin "corked identity request" && {
24
24
  wait
25
25
  echo ok > $ok
26
26
  ) | ( sleep 1 && socat - TCP4:$listen > $fifo )
27
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
27
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
28
28
  test x"$(cat $ok)" = xok
29
29
  }
30
30
 
@@ -36,7 +36,7 @@ t_begin "corked chunked request" && {
36
36
  wait
37
37
  echo ok > $ok
38
38
  ) | ( sleep 1 && socat - TCP4:$listen > $fifo )
39
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
39
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
40
40
  test x"$(cat $ok)" = xok
41
41
  }
42
42
 
@@ -50,7 +50,7 @@ t_begin "corked identity request (input#size first)" && {
50
50
  wait
51
51
  echo ok > $ok
52
52
  ) | ( sleep 1 && socat - TCP4:$listen > $fifo )
53
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
53
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
54
54
  test x"$(cat $ok)" = xok
55
55
  }
56
56
 
@@ -64,7 +64,7 @@ t_begin "corked identity request (input#rewind first)" && {
64
64
  wait
65
65
  echo ok > $ok
66
66
  ) | ( sleep 1 && socat - TCP4:$listen > $fifo )
67
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
67
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
68
68
  test x"$(cat $ok)" = xok
69
69
  }
70
70
 
@@ -81,8 +81,8 @@ t_begin "corked chunked request (input#size first)" && {
81
81
  wait
82
82
  echo ok > $ok
83
83
  ) | ( sleep 1 && socat - TCP4:$listen > $fifo )
84
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
85
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
84
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
85
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
86
86
  test x"$(cat $ok)" = xok
87
87
  }
88
88
 
@@ -99,7 +99,7 @@ t_begin "corked chunked request (input#rewind first)" && {
99
99
  wait
100
100
  echo ok > $ok
101
101
  ) | ( sleep 1 && socat - TCP4:$listen > $fifo )
102
- test 1 -eq $(grep $blob_sha1 $tmp |wc -l)
102
+ test 1 -eq $(grep $blob_sha1 $tmp |count_lines)
103
103
  test x"$(cat $ok)" = xok
104
104
  }
105
105
 
@@ -26,7 +26,7 @@ t_begin "sha1 matches" && {
26
26
  }
27
27
 
28
28
  t_begin "app only dispatched twice" && {
29
- test 2 -eq "$(grep 'app dispatch:' < $r_err | wc -l )"
29
+ test 2 -eq "$(grep 'app dispatch:' < $r_err | count_lines )"
30
30
  }
31
31
 
32
32
  t_begin "aborted chunked request" && {
@@ -38,7 +38,7 @@ t_begin "aborted chunked request" && {
38
38
  }
39
39
 
40
40
  t_begin "app only dispatched twice" && {
41
- test 2 -eq "$(grep 'app dispatch:' < $r_err | wc -l )"
41
+ test 2 -eq "$(grep 'app dispatch:' < $r_err | count_lines )"
42
42
  }
43
43
 
44
44
  t_begin "killing succeeds" && {
@@ -32,6 +32,21 @@ wait_for_pid () {
32
32
  done
33
33
  }
34
34
 
35
+ # "unix_time" is not in POSIX, but in GNU, and FreeBSD 9.0 (possibly earlier)
36
+ unix_time () {
37
+ $RUBY -e 'puts Time.now.to_i'
38
+ }
39
+
40
+ # "wc -l" outputs leading whitespace on *BSDs, filter it out for portability
41
+ count_lines () {
42
+ wc -l | tr -d '[:space:]'
43
+ }
44
+
45
+ # "wc -c" outputs leading whitespace on *BSDs, filter it out for portability
46
+ count_bytes () {
47
+ wc -c | tr -d '[:space:]'
48
+ }
49
+
35
50
  # given a list of variable names, create temporary files and assign
36
51
  # the pathnames to those variables
37
52
  rtmpfiles () {
@@ -49,7 +64,7 @@ rtmpfiles () {
49
64
  ;;
50
65
  *socket)
51
66
  _tmp="$(mktemp -t $id.$$.XXXXXXXX)"
52
- if test $(printf "$_tmp" |wc -c) -gt 108
67
+ if test $(printf "$_tmp" |count_bytes) -gt 108
53
68
  then
54
69
  echo >&2 "$_tmp too long, tests may fail"
55
70
  echo >&2 "Try to set TMPDIR to a shorter path"
metadata CHANGED
@@ -2,15 +2,15 @@
2
2
  name: !binary |-
3
3
  dW5pY29ybg==
4
4
  version: !ruby/object:Gem::Version
5
- version: 4.6.0pre1
6
- prerelease: 5
5
+ version: 4.6.0
6
+ prerelease:
7
7
  platform: ruby
8
8
  authors:
9
9
  - Unicorn hackers
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-29 00:00:00.000000000 Z
13
+ date: 2013-02-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: !binary |-
@@ -250,7 +250,6 @@ files:
250
250
  - t/bin/content-md5-put
251
251
  - t/bin/sha1sum.rb
252
252
  - t/bin/unused_listen
253
- - t/bin/utee
254
253
  - t/broken-app.ru
255
254
  - t/detach.ru
256
255
  - t/env.ru
@@ -351,9 +350,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
351
350
  required_rubygems_version: !ruby/object:Gem::Requirement
352
351
  none: false
353
352
  requirements:
354
- - - ! '>'
353
+ - - ! '>='
355
354
  - !ruby/object:Gem::Version
356
- version: 1.3.1
355
+ version: '0'
357
356
  requirements: []
358
357
  rubyforge_project: !binary |-
359
358
  bW9uZ3JlbA==
data/t/bin/utee DELETED
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # -*- encoding: binary -*-
3
- # tee(1) as distributed on most(all?) systems is buffered in luserspace
4
- # this only does unbuffered writes (with line-buffered input) to make
5
- # test output appear in real-time
6
- $stdin.binmode
7
- $stdout.binmode
8
- fp = File.open(ARGV.shift, "wb")
9
- $stdin.each_line do |line|
10
- fp.syswrite line
11
- $stdout.syswrite line
12
- end