rainbows 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/GIT-VERSION-GEN +1 -1
  2. data/TODO +15 -0
  3. data/TUNING +14 -0
  4. data/lib/rainbows.rb +7 -0
  5. data/lib/rainbows/app_pool.rb +4 -3
  6. data/lib/rainbows/base.rb +17 -11
  7. data/lib/rainbows/const.rb +5 -1
  8. data/lib/rainbows/dev_fd_response.rb +69 -0
  9. data/lib/rainbows/http_response.rb +1 -0
  10. data/lib/rainbows/http_server.rb +2 -0
  11. data/lib/rainbows/rev.rb +136 -43
  12. data/lib/rainbows/revactor.rb +6 -14
  13. data/lib/rainbows/thread_pool.rb +11 -13
  14. data/lib/rainbows/thread_spawn.rb +4 -4
  15. data/local.mk.sample +9 -1
  16. data/t/GNUmakefile +4 -4
  17. data/t/README +1 -1
  18. data/t/async-response-no-autochunk.ru +24 -0
  19. data/t/async-response.ru +13 -0
  20. data/t/bin/content-md5-put +1 -1
  21. data/t/bin/utee +12 -0
  22. data/t/env.ru +3 -0
  23. data/t/large-file-response.ru +13 -0
  24. data/t/lib-async-response-no-autochunk.sh +6 -0
  25. data/t/lib-async-response.sh +45 -0
  26. data/t/lib-graceful.sh +40 -0
  27. data/t/lib-input-trailer.sh +63 -0
  28. data/t/lib-large-file-response.sh +45 -0
  29. data/t/lib-parser-error.sh +29 -0
  30. data/t/{t3100-revactor-tee-input.sh → lib-rack-input-hammer.sh} +3 -9
  31. data/t/lib-reopen-logs.sh +60 -0
  32. data/t/lib-simple-http.sh +92 -0
  33. data/t/sleep.ru +13 -6
  34. data/t/t0000-basic.sh +1 -36
  35. data/t/t1000-thread-pool-basic.sh +1 -41
  36. data/t/t1002-thread-pool-graceful.sh +1 -36
  37. data/t/t1003-thread-pool-reopen-logs.sh +2 -0
  38. data/t/t1004-thread-pool-async-response.sh +45 -0
  39. data/t/t1005-thread-pool-large-file-response.sh +45 -0
  40. data/t/t1006-thread-pool-async-response-no-autochunk.sh +6 -0
  41. data/t/t1100-thread-pool-rack-input.sh +2 -0
  42. data/t/t1101-thread-pool-input-trailer.sh +2 -0
  43. data/t/t2000-thread-spawn-basic.sh +1 -37
  44. data/t/t2002-thread-spawn-graceful.sh +1 -36
  45. data/t/t2003-thread-spawn-reopen-logs.sh +2 -0
  46. data/t/t2004-thread-spawn-async-response.sh +45 -0
  47. data/t/t2005-thread-spawn-large-file-response.sh +45 -0
  48. data/t/t2006-thread-spawn-async-response-no-autochunk.sh +6 -0
  49. data/t/t2100-thread-spawn-rack-input.sh +2 -0
  50. data/t/t2101-thread-spawn-input-trailer.sh +2 -0
  51. data/t/t3000-revactor-basic.sh +1 -39
  52. data/t/t3002-revactor-graceful.sh +1 -37
  53. data/t/t3003-revactor-reopen-logs.sh +1 -53
  54. data/t/t3004-revactor-async-response.sh +45 -0
  55. data/t/t3005-revactor-large-file-response.sh +2 -0
  56. data/t/t3006-revactor-async-response-no-autochunk.sh +6 -0
  57. data/t/t3100-revactor-rack-input.sh +2 -0
  58. data/t/t3101-revactor-rack-input-trailer.sh +2 -0
  59. data/t/t4000-rev-basic.sh +1 -50
  60. data/t/t4002-rev-graceful.sh +1 -51
  61. data/t/t4003-rev-parser-error.sh +1 -33
  62. data/t/t4003-rev-reopen-logs.sh +2 -0
  63. data/t/t4004-rev-async-response.sh +45 -0
  64. data/t/t4005-rev-large-file-response.sh +2 -0
  65. data/t/t4006-rev-async-response-no-autochunk.sh +6 -0
  66. data/t/t4100-rev-rack-input.sh +1 -43
  67. data/t/t4101-rev-rack-input-trailer.sh +1 -50
  68. data/t/t9000-rack-app-pool.sh +2 -3
  69. data/t/test-lib.sh +80 -18
  70. metadata +39 -4
  71. data/t/t3001-revactor-pipeline.sh +0 -46
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rainbows
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rainbows! developers
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-15 00:00:00 -07:00
12
+ date: 2009-10-19 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -51,6 +51,7 @@ extra_rdoc_files:
51
51
  - lib/rainbows/app_pool.rb
52
52
  - lib/rainbows/base.rb
53
53
  - lib/rainbows/const.rb
54
+ - lib/rainbows/dev_fd_response.rb
54
55
  - lib/rainbows/http_response.rb
55
56
  - lib/rainbows/http_server.rb
56
57
  - lib/rainbows/rev.rb
@@ -91,6 +92,7 @@ files:
91
92
  - lib/rainbows/app_pool.rb
92
93
  - lib/rainbows/base.rb
93
94
  - lib/rainbows/const.rb
95
+ - lib/rainbows/dev_fd_response.rb
94
96
  - lib/rainbows/http_response.rb
95
97
  - lib/rainbows/http_server.rb
96
98
  - lib/rainbows/rev.rb
@@ -105,9 +107,23 @@ files:
105
107
  - t/.gitignore
106
108
  - t/GNUmakefile
107
109
  - t/README
110
+ - t/async-response-no-autochunk.ru
111
+ - t/async-response.ru
108
112
  - t/bin/content-md5-put
109
113
  - t/bin/unused_listen
114
+ - t/bin/utee
110
115
  - t/content-md5.ru
116
+ - t/env.ru
117
+ - t/large-file-response.ru
118
+ - t/lib-async-response-no-autochunk.sh
119
+ - t/lib-async-response.sh
120
+ - t/lib-graceful.sh
121
+ - t/lib-input-trailer.sh
122
+ - t/lib-large-file-response.sh
123
+ - t/lib-parser-error.sh
124
+ - t/lib-rack-input-hammer.sh
125
+ - t/lib-reopen-logs.sh
126
+ - t/lib-simple-http.sh
111
127
  - t/sha1.ru
112
128
  - t/sleep.ru
113
129
  - t/t0000-basic.sh
@@ -115,19 +131,38 @@ files:
115
131
  - t/t1000-thread-pool-basic.sh
116
132
  - t/t1000.ru
117
133
  - t/t1002-thread-pool-graceful.sh
134
+ - t/t1003-thread-pool-reopen-logs.sh
135
+ - t/t1004-thread-pool-async-response.sh
136
+ - t/t1005-thread-pool-large-file-response.sh
137
+ - t/t1006-thread-pool-async-response-no-autochunk.sh
138
+ - t/t1100-thread-pool-rack-input.sh
139
+ - t/t1101-thread-pool-input-trailer.sh
118
140
  - t/t2000-thread-spawn-basic.sh
119
141
  - t/t2000.ru
120
142
  - t/t2002-thread-spawn-graceful.sh
143
+ - t/t2003-thread-spawn-reopen-logs.sh
144
+ - t/t2004-thread-spawn-async-response.sh
145
+ - t/t2005-thread-spawn-large-file-response.sh
146
+ - t/t2006-thread-spawn-async-response-no-autochunk.sh
147
+ - t/t2100-thread-spawn-rack-input.sh
148
+ - t/t2101-thread-spawn-input-trailer.sh
121
149
  - t/t3000-revactor-basic.sh
122
150
  - t/t3000.ru
123
- - t/t3001-revactor-pipeline.sh
124
151
  - t/t3002-revactor-graceful.sh
125
152
  - t/t3003-revactor-reopen-logs.sh
126
- - t/t3100-revactor-tee-input.sh
153
+ - t/t3004-revactor-async-response.sh
154
+ - t/t3005-revactor-large-file-response.sh
155
+ - t/t3006-revactor-async-response-no-autochunk.sh
156
+ - t/t3100-revactor-rack-input.sh
157
+ - t/t3101-revactor-rack-input-trailer.sh
127
158
  - t/t4000-rev-basic.sh
128
159
  - t/t4000.ru
129
160
  - t/t4002-rev-graceful.sh
130
161
  - t/t4003-rev-parser-error.sh
162
+ - t/t4003-rev-reopen-logs.sh
163
+ - t/t4004-rev-async-response.sh
164
+ - t/t4005-rev-large-file-response.sh
165
+ - t/t4006-rev-async-response-no-autochunk.sh
131
166
  - t/t4100-rev-rack-input.sh
132
167
  - t/t4101-rev-rack-input-trailer.sh
133
168
  - t/t9000-rack-app-pool.sh
@@ -1,46 +0,0 @@
1
- #!/bin/sh
2
- . ./test-lib.sh
3
- require_revactor
4
-
5
- eval $(unused_listen)
6
- rtmpfiles unicorn_config curl_out curl_err pid fifo tmp ok r_err r_out
7
-
8
- rm -f $fifo
9
- mkfifo $fifo
10
-
11
- cat > $unicorn_config <<EOF
12
- stderr_path "$r_err"
13
- stdout_path "$r_out"
14
- listen "$listen"
15
- pid "$pid"
16
- Rainbows! do
17
- use :Revactor
18
- end
19
- EOF
20
-
21
- rainbows -D t0000.ru -c $unicorn_config
22
- wait_for_pid $pid
23
-
24
- echo "two requests with keepalive"
25
- curl -sSfv http://$listen/a http://$listen/b > $tmp 2>&1
26
- grep 'Re-using existing connection' < $tmp
27
-
28
- echo "pipelining partial requests"
29
- req='GET / HTTP/1.1\r\nHost: foo\r\n'
30
- (
31
- printf "$req"'\r\n'"$req"
32
- cat $fifo > $tmp &
33
- sleep 1
34
- printf 'Connection: close\r\n\r\n'
35
- echo ok > $ok
36
- ) | socat - TCP:$listen > $fifo
37
-
38
- kill $(cat $pid)
39
-
40
- dbgcat tmp
41
- test 2 -eq $(grep '^HTTP/1.1' $tmp | wc -l)
42
- test 2 -eq $(grep '^HTTP/1.1 200 OK' $tmp | wc -l)
43
- test 1 -eq $(grep '^Connection: keep-alive' $tmp | wc -l)
44
- test 1 -eq $(grep '^Connection: close' $tmp | wc -l)
45
- test x"$(cat $ok)" = xok
46
- ! grep Error $r_err