diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-06-25 11:29:13 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-06-25 11:36:05 -0700 |
commit | 00e04ecc9fda39fa77e2f7fd11834ea977ba9ee8 (patch) | |
tree | ca65a0c908da4a367a3f5ffa70a87c88a8d7c238 | |
parent | d9470b6358730fe9bef12cc9b7506e913ef91857 (diff) | |
download | unicorn-00e04ecc9fda39fa77e2f7fd11834ea977ba9ee8.tar.gz |
We do an extra check in the application dispatch to ensure ENV['PWD'] is set correctly to match Dir.pwd (even if the string path is different) as this is required for Capistrano deployments. These tests should now pass under OSX where /var is apparently a symlink to /private/var.
-rw-r--r-- | test/exec/test_exec.rb | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/test/exec/test_exec.rb b/test/exec/test_exec.rb index 9830683..1d24ca3 100644 --- a/test/exec/test_exec.rb +++ b/test/exec/test_exec.rb @@ -54,6 +54,20 @@ before_fork do |server, worker| end EOS + WORKING_DIRECTORY_CHECK_RU = <<-EOS +use Rack::ContentLength +run lambda { |env| + pwd = ENV['PWD'] + a = ::File.stat(pwd) + b = ::File.stat(Dir.pwd) + if (a.ino == b.ino && a.dev == b.dev) + [ 200, { 'Content-Type' => 'text/plain' }, [ pwd ] ] + else + [ 404, { 'Content-Type' => 'text/plain' }, [] ] + end +} + EOS + def setup @pwd = Dir.pwd @tmpfile = Tempfile.new('unicorn_exec_test') @@ -87,10 +101,7 @@ end File.unlink(other.path) Dir.mkdir(other.path) File.open("config.ru", "wb") do |fp| - fp.syswrite <<EOF -use Rack::ContentLength -run proc { |env| [ 200, { 'Content-Type' => 'text/plain' }, [ Dir.pwd ] ] } -EOF + fp.syswrite WORKING_DIRECTORY_CHECK_RU end FileUtils.cp("config.ru", other.path + "/config.ru") Dir.chdir(@tmpdir) @@ -138,10 +149,7 @@ EOF File.unlink(other.path) Dir.mkdir(other.path) File.open("config.ru", "wb") do |fp| - fp.syswrite <<EOF -use Rack::ContentLength -run proc { |env| [ 200, { 'Content-Type' => 'text/plain' }, [ Dir.pwd ] ] } -EOF + fp.syswrite WORKING_DIRECTORY_CHECK_RU end FileUtils.cp("config.ru", other.path + "/config.ru") tmp = Tempfile.new('unicorn.config') @@ -177,10 +185,7 @@ EOF File.unlink(other.path) Dir.mkdir(other.path) File.open("config.ru", "wb") do |fp| - fp.syswrite <<EOF -use Rack::ContentLength -run proc { |env| [ 200, { 'Content-Type' => 'text/plain' }, [ Dir.pwd ] ] } -EOF + fp.syswrite WORKING_DIRECTORY_CHECK_RU end FileUtils.cp("config.ru", other.path + "/config.ru") system('mkfifo', "#{other.path}/fifo") |