From 344b85ff28e160daa6563ab7c80b733abdeb874a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 19 Jul 2009 16:48:12 -0700 Subject: [PATCH] fix tests to run correctly under 1.9.2preview1 test/test_helper doesn't seem to be required correctly anymore, since we know our own module/test names don't conflict, just fix RUBYLIB to include $(test_prefix) With test_util.rb, using #reopen with Tempfile objects seems prone to the objects being closed. Not completely sure what is going on but I'll just sidestep around it since I've stopped trusting Tempfile by now... --- GNUmakefile | 8 +++---- test/unit/test_util.rb | 58 ++++++++++++++++++++++++++------------------------ 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 72984b6b..b8a69a2e 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -48,7 +48,7 @@ http: lib/unicorn_http.$(DLEXT) $(test_prefix)/.stamp: $(inst_deps) mkdir -p $(test_prefix)/.ccache - tar c bin ext lib GNUmakefile Manifest | (cd $(test_prefix) && tar x) + tar c `cat Manifest` | (cd $(test_prefix) && tar x) $(MAKE) -C $(test_prefix) clean $(MAKE) -C $(test_prefix) http shebang > $@ @@ -92,14 +92,14 @@ run_test = $(quiet_pre) \ %.n: arg = $(subst .n,,$(subst --, -n ,$@)) %.n: t = $(subst .n,$(log_suffix),$@) %.n: export PATH := $(test_prefix)/bin:$(PATH) -%.n: export RUBYLIB := $(test_prefix)/lib:$(RUBYLIB) +%.n: export RUBYLIB := $(test_prefix):$(test_prefix)/lib:$(RUBYLIB) %.n: $(test_prefix)/.stamp $(run_test) $(T): arg = $@ $(T): t = $(subst .rb,$(log_suffix),$@) $(T): export PATH := $(test_prefix)/bin:$(PATH) -$(T): export RUBYLIB := $(test_prefix)/lib:$(RUBYLIB) +$(T): export RUBYLIB := $(test_prefix):$(test_prefix)/lib:$(RUBYLIB) $(T): $(test_prefix)/.stamp $(run_test) @@ -145,7 +145,7 @@ $(T_r).%.r: rv = $(subst .r,,$(subst $(T_r).,,$@)) $(T_r).%.r: extra = ' 'v$(rv) $(T_r).%.r: arg = $(T_r) $(T_r).%.r: export PATH := $(test_prefix)/bin:$(PATH) -$(T_r).%.r: export RUBYLIB := $(test_prefix)/lib:$(RUBYLIB) +$(T_r).%.r: export RUBYLIB := $(test_prefix):$(test_prefix)/lib:$(RUBYLIB) $(T_r).%.r: export UNICORN_RAILS_TEST_VERSION = $(rv) $(T_r).%.r: export RAILS_GIT_REPO = $(CURDIR)/$(rails_git) $(T_r).%.r: $(test_prefix)/.stamp $(rails_git)/info/cloned-stamp diff --git a/test/unit/test_util.rb b/test/unit/test_util.rb index 1616eace..032f0be6 100644 --- a/test/unit/test_util.rb +++ b/test/unit/test_util.rb @@ -43,20 +43,21 @@ class TestUtil < Test::Unit::TestCase tmp = Tempfile.new(nil) tmp_path = tmp.path.dup.freeze Encoding.list.each { |encoding| - tmp.reopen(tmp_path, "a:#{encoding.to_s}") - tmp.sync = true - assert_equal encoding, tmp.external_encoding - assert_nil tmp.internal_encoding - File.unlink(tmp_path) - assert ! File.exist?(tmp_path) - Unicorn::Util.reopen_logs - assert_equal tmp_path, tmp.path - assert File.exist?(tmp_path) - assert_equal tmp.stat.inspect, File.stat(tmp_path).inspect - assert_equal encoding, tmp.external_encoding - assert_nil tmp.internal_encoding - assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & tmp.fcntl(Fcntl::F_GETFL)) - assert tmp.sync + File.open(tmp_path, "a:#{encoding.to_s}") { |fp| + fp.sync = true + assert_equal encoding, fp.external_encoding + assert_nil fp.internal_encoding + File.unlink(tmp_path) + assert ! File.exist?(tmp_path) + Unicorn::Util.reopen_logs + assert_equal tmp_path, fp.path + assert File.exist?(tmp_path) + assert_equal fp.stat.inspect, File.stat(tmp_path).inspect + assert_equal encoding, fp.external_encoding + assert_nil fp.internal_encoding + assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & fp.fcntl(Fcntl::F_GETFL)) + assert fp.sync + } } end if STDIN.respond_to?(:external_encoding) @@ -66,20 +67,21 @@ class TestUtil < Test::Unit::TestCase Encoding.list.each { |ext| Encoding.list.each { |int| next if ext == int - tmp.reopen(tmp_path, "a:#{ext.to_s}:#{int.to_s}") - tmp.sync = true - assert_equal ext, tmp.external_encoding - assert_equal int, tmp.internal_encoding - File.unlink(tmp_path) - assert ! File.exist?(tmp_path) - Unicorn::Util.reopen_logs - assert_equal tmp_path, tmp.path - assert File.exist?(tmp_path) - assert_equal tmp.stat.inspect, File.stat(tmp_path).inspect - assert_equal ext, tmp.external_encoding - assert_equal int, tmp.internal_encoding - assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & tmp.fcntl(Fcntl::F_GETFL)) - assert tmp.sync + File.open(tmp_path, "a:#{ext.to_s}:#{int.to_s}") { |fp| + fp.sync = true + assert_equal ext, fp.external_encoding + assert_equal int, fp.internal_encoding + File.unlink(tmp_path) + assert ! File.exist?(tmp_path) + Unicorn::Util.reopen_logs + assert_equal tmp_path, fp.path + assert File.exist?(tmp_path) + assert_equal fp.stat.inspect, File.stat(tmp_path).inspect + assert_equal ext, fp.external_encoding + assert_equal int, fp.internal_encoding + assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & fp.fcntl(Fcntl::F_GETFL)) + assert fp.sync + } } } end if STDIN.respond_to?(:external_encoding) -- 2.11.4.GIT