forked from assaf/vanity
-
Notifications
You must be signed in to change notification settings - Fork 1
/
passenger_test.rb
34 lines (29 loc) · 1.04 KB
/
passenger_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require "test/test_helper"
require "phusion_passenger/spawn_manager"
class PassengerTest < Test::Unit::TestCase
def setup
ActiveRecord::Base.connection.disconnect! # Otherwise AR metric tests fail
@original = Vanity.playground.redis
@server = PhusionPassenger::SpawnManager.new
@server.start
Thread.pass until @server.started?
app_root = File.expand_path("myapp", File.dirname(__FILE__))
@app = @server.spawn_application "app_root"=>app_root, "spawn_method"=>"smart-lv2"
end
def test_reconnect
sleep 0.1
socket = TCPSocket.new(*@app.listen_socket_name.split(":"))
channel = PhusionPassenger::MessageChannel.new(socket)
request = {"REQUEST_PATH"=>"/", "REQUEST_METHOD"=>"GET", "QUERY_STRING"=>" "}
channel.write_scalar request.to_a.join("\0")
response = socket.read.split("\r\n\r\n").last
socket.close
server, obj_id = response.split("\n")
assert_equal @original.server, server
assert_not_equal @original.object_id.to_s, obj_id
end
def teardown
super
@server.stop
end
end