OSDN Git Service

Replaced mongrel with thin
[redminele/redminele.git] / ruby / lib / ruby / gems / 1.8 / gems / thin-1.2.11-x86-mswin32 / spec / server / robustness_spec.rb
1 require File.dirname(__FILE__) + '/../spec_helper'
2
3 describe Server, 'robustness' do
4   before do
5     start_server do |env|
6       body = 'hello!'
7       [200, { 'Content-Type' => 'text/html' }, body]
8     end
9   end
10   
11   it "should not crash when header too large" do
12     100.times do
13       begin
14         socket = TCPSocket.new(DEFAULT_TEST_ADDRESS, DEFAULT_TEST_PORT)
15         socket.write("GET / HTTP/1.1\r\n")
16         socket.write("Host: localhost\r\n")
17         socket.write("Connection: close\r\n")
18         10000.times do
19                 socket.write("X-Foo: #{'x' * 100}\r\n")
20                 socket.flush
21         end
22         socket.write("\r\n")
23         socket.read
24         socket.close
25       rescue Errno::EPIPE, Errno::ECONNRESET
26                                 # Ignore.
27                         end
28     end
29   end
30   
31   after do
32     stop_server
33   end
34 end