summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-07-19 16:48:12 -0700
committerEric Wong <normalperson@yhbt.net>2009-07-19 16:50:53 -0700
commit344b85ff28e160daa6563ab7c80b733abdeb874a (patch)
tree352b5b55ffc47bca0a3ee0e504d6ee3b1a07a890
parent97e469fc3afb751618b8b9a7b364cb447aaf90dd (diff)
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...
-rw-r--r--GNUmakefile8
-rw-r--r--test/unit/test_util.rb58
2 files changed, 34 insertions, 32 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 72984b6..b8a69a2 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 1616eac..032f0be 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)