test failure on Mac OSX

Andrew Milkowski andrewmilkowski at gmail.com
Fri Jun 25 19:51:01 EDT 2010


Thanks Eric!

wonderful, all test passed (with very minimal CPU strain) I also
enabled full 64 bit kernel so that helps I am sure.

and yes, very true var is symlinked under 10.6 (not sure if this was
the case <)

thanks that was wonderful weekend gift (I am now unblocked) and try
other things with this container

have a wonderful weekend!

bash-3.2$ ls -l var
lrwxr-xr-x@ 1 root  wheel  11 Feb  1 18:44 var -> private/var
bash-3.2$


bash-3.2$ make
* test/unit/test_configurator.rb
* test/unit/test_http_parser.rb
* test/unit/test_http_parser_ng.rb
* test/unit/test_request.rb
* test/unit/test_response.rb
* test/unit/test_socket_helper.rb
* test/unit/test_tee_input.rb
* test/unit/test_util.rb
* test/unit/test_server.rb -n test_preload_app_config
* test/unit/test_server.rb -n test_broken_app
* test/unit/test_server.rb -n test_simple_server
* test/unit/test_server.rb -n test_client_shutdown_writes
* test/unit/test_server.rb -n test_client_shutdown_write_truncates
* test/unit/test_server.rb -n test_client_malformed_body
* test/unit/test_server.rb -n test_trickle_attack
* test/unit/test_server.rb -n test_close_client
* test/unit/test_server.rb -n test_bad_client
* test/unit/test_server.rb -n test_logger_set
* test/unit/test_server.rb -n test_logger_changed
* test/unit/test_server.rb -n test_bad_client_400
* test/unit/test_server.rb -n test_http_0_9
* test/unit/test_server.rb -n test_header_is_too_long
* test/unit/test_server.rb -n test_file_streamed_request
* test/unit/test_server.rb -n test_file_streamed_request_bad_body
* test/unit/test_server.rb -n test_listener_names
* test/exec/test_exec.rb -n test_working_directory_rel_path_config_file
* test/exec/test_exec.rb -n test_working_directory
* test/exec/test_exec.rb -n test_working_directory_controls_relative_paths
* test/exec/test_exec.rb -n test_exit_signals
* test/exec/test_exec.rb -n test_basic
* test/exec/test_exec.rb -n test_rack_env_unset
* test/exec/test_exec.rb -n test_rack_env_cli_set
* test/exec/test_exec.rb -n test_rack_env_ENV_set
* test/exec/test_exec.rb -n test_rack_env_cli_override_ENV
* test/exec/test_exec.rb -n test_ttin_ttou
* test/exec/test_exec.rb -n test_help
* test/exec/test_exec.rb -n test_broken_reexec_config
* test/exec/test_exec.rb -n test_broken_reexec_ru
* test/exec/test_exec.rb -n test_unicorn_config_listener_swap
* test/exec/test_exec.rb -n test_unicorn_config_listen_with_options
* test/exec/test_exec.rb -n test_unicorn_config_per_worker_listen
* test/exec/test_exec.rb -n test_unicorn_config_listen_augments_cli
* test/exec/test_exec.rb -n test_weird_config_settings
* test/exec/test_exec.rb -n test_read_embedded_cli_switches
* test/exec/test_exec.rb -n test_config_ru_alt_path
* test/exec/test_exec.rb -n test_load_module
* test/exec/test_exec.rb -n test_reexec
* test/exec/test_exec.rb -n test_reexec_alt_config
* test/exec/test_exec.rb -n test_socket_unlinked_restore
* test/exec/test_exec.rb -n test_unicorn_config_file
* test/exec/test_exec.rb -n test_daemonize_reexec
* test/exec/test_exec.rb -n test_daemonize_redirect_fail
* test/exec/test_exec.rb -n test_reexec_fd_leak
* test/exec/test_exec.rb -n test_preload_app_hup
* test/exec/test_exec.rb -n test_hup
* test/exec/test_exec.rb -n test_default_listen_hup_holds_listener
* test/exec/test_exec.rb -n test_default_listen_upgrade_holds_listener
* test/unit/test_signals.rb -n test_worker_dies_on_dead_master
* test/unit/test_signals.rb -n test_sleepy_kill
* test/unit/test_signals.rb -n test_timeout_slow_response
* test/unit/test_signals.rb -n test_response_write
* test/unit/test_signals.rb -n test_request_read
* test/unit/test_upload.rb -n test_put
* test/unit/test_upload.rb -n test_put_content_md5
* test/unit/test_upload.rb -n test_put_trickle_small
* test/unit/test_upload.rb -n test_put_keepalive_truncates_small_overwrite
* test/unit/test_upload.rb -n test_put_excessive_overwrite_closed
* test/unit/test_upload.rb -n test_uncomfortable_with_onenine_encodings
* test/unit/test_upload.rb -n test_chunked_upload_via_curl
* test/unit/test_upload.rb -n test_curl_chunked_small

179 tests, 63093 assertions, 0 failures, 0 errors
bash-3.2$


On Fri, Jun 25, 2010 at 2:35 PM, Eric Wong <normalperson at yhbt.net> wrote:
> Andrew Milkowski <andrewmilkowski at gmail.com> wrote:
>> Hi there,
>>
>> ran to a snag building unicorn from sources (git master at
>> git://git.bogomips.org/unicorn.git)
>>
>>   1) Failure:
>> : test_working_directory_rel_path_config_file(ExecTest)
>> [test/exec/test_exec.rb:106]:
>> : <"/var/folders/gy/gyjECZCGGxKv3I3mRTmhB++++TI/-Tmp-/unicorn_exec_test20100625-1679-1x3ks9d-0">
>> expected but was
>> : <"/private/var/folders/gy/gyjECZCGGxKv3I3mRTmhB++++TI/-Tmp-/unicorn_exec_test20100625-1679-1x3ks9d-0">.
>
> Hi Andrew,
>
> Not being an OSX user, I had to look this up, but apparently /var on OSX
> is a symlink to /private/var?  Weird...
>
> We have to work around a similar issue for upgrades in Capistrano
> deployments by updating ENV['PWD'], might as well do it here.
>
> I've just pushed out the following patch, which is a more thorough test
> anyways:
>
> >From cf63db66bca9acfd3416ab8fc8a7fd4f07927342 Mon Sep 17 00:00:00 2001
> From: Eric Wong <normalperson at yhbt.net>
> Date: Fri, 25 Jun 2010 11:29:13 -0700
> Subject: [PATCH] test-exec: prefer ENV['PWD'] in working_directory tests
>
> 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.
> ---
>  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")
> --
> Eric Wong
> _______________________________________________
> Unicorn mailing list - mongrel-unicorn at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-unicorn
> Do not quote signatures (like this one) or top post when replying
>


More information about the mongrel-unicorn mailing list