about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-02-29 08:18:55 +0000
committerEric Wong <e@80x24.org>2016-02-29 08:22:02 +0000
commit7ee064f52ee740eeafa49089911f6eca18c67e38 (patch)
tree6bf2588b7d3b992d38b7056d8a230367cde479eb
parent5fff94f35928feeb9d6bf91087ee7cdbe97ecdb7 (diff)
downloadyahns-7ee064f52ee740eeafa49089911f6eca18c67e38.tar.gz
We should not infinite loop, oops :x
Also, ensure 'yahns' is in the directory in case tests are
SIGKILL-ed and directories are left over.
-rw-r--r--test/helper.rb30
-rw-r--r--test/test_bin.rb2
-rw-r--r--test/test_buffer_tmpdir.rb2
-rw-r--r--test/test_config.rb4
-rw-r--r--test/test_extras_autoindex.rb2
-rw-r--r--test/test_extras_try_gzip_static.rb2
-rw-r--r--test/test_proxy_pass.rb2
-rw-r--r--test/test_serve_static.rb8
-rw-r--r--test/test_server.rb8
-rw-r--r--test/test_unix_socket.rb4
10 files changed, 33 insertions, 31 deletions
diff --git a/test/helper.rb b/test/helper.rb
index 8f70ddc..73cde51 100644
--- a/test/helper.rb
+++ b/test/helper.rb
@@ -88,21 +88,23 @@ end
 
 require "tempfile"
 require 'tmpdir'
-class Dir
-  def Dir.mktmpdir
-    begin
-      d = "#{Dir.tmpdir}/#$$.#{rand}"
-      Dir.mkdir(d)
-    rescue Errno::EEXIST
-    end while true
-    return d unless block_given?
-    begin
-      yield d
-    ensure
-      FileUtils.remove_entry(d)
-    end
+
+# Can't rely on mktmpdir until we drop Ruby 1.9.3 support
+def yahns_mktmpdir
+  d = nil
+  begin
+    dir = "#{Dir.tmpdir}/yahns.#$$.#{rand}"
+    Dir.mkdir(dir)
+    d = dir
+  rescue Errno::EEXIST
+  end until d
+  return d unless block_given?
+  begin
+    yield d
+  ensure
+    FileUtils.remove_entry(d)
   end
-end unless Dir.respond_to?(:mktmpdir)
+end
 
 def tmpfile(*args)
   tmp = Tempfile.new(*args)
diff --git a/test/test_bin.rb b/test/test_bin.rb
index eeaf126..be1c024 100644
--- a/test/test_bin.rb
+++ b/test/test_bin.rb
@@ -149,7 +149,7 @@ class TestBin < Testcase
   def test_usr2_nopreload_noworker; usr2(false, false); end
 
   def usr2(preload, worker)
-    Dir.mktmpdir { |tmpdir| usr2_dir(tmpdir, preload, worker) }
+    yahns_mktmpdir { |tmpdir| usr2_dir(tmpdir, preload, worker) }
   end
 
   def usr2_dir(tmpdir, preload, worker)
diff --git a/test/test_buffer_tmpdir.rb b/test/test_buffer_tmpdir.rb
index 6b15f9a..bac8017 100644
--- a/test/test_buffer_tmpdir.rb
+++ b/test/test_buffer_tmpdir.rb
@@ -16,7 +16,7 @@ class TestBufferTmpdir < Testcase
     rescue
       skip "test needs inotify"
     end
-    @tmpdir = Dir.mktmpdir
+    @tmpdir = yahns_mktmpdir
     server_helper_setup
   end
 
diff --git a/test/test_config.rb b/test/test_config.rb
index 022f128..73d9456 100644
--- a/test/test_config.rb
+++ b/test/test_config.rb
@@ -14,7 +14,7 @@ class TestConfig < Testcase
 
   def test_multi_conf_example
     pid = fork do
-      tmpdir = Dir.mktmpdir
+      tmpdir = yahns_mktmpdir
 
       # modify the example config file for testing
       path = "examples/yahns_multi.conf.rb"
@@ -38,7 +38,7 @@ class TestConfig < Testcase
 
   def test_rack_basic_conf_example
     pid = fork do
-      tmpdir = Dir.mktmpdir
+      tmpdir = yahns_mktmpdir
 
       # modify the example config file for testing
       path = "examples/yahns_rack_basic.conf.rb"
diff --git a/test/test_extras_autoindex.rb b/test/test_extras_autoindex.rb
index 30d454c..fe753d5 100644
--- a/test/test_extras_autoindex.rb
+++ b/test/test_extras_autoindex.rb
@@ -10,7 +10,7 @@ class TestExtrasAutoindex < Testcase
   include ServerHelper
 
   def setup
-    @tmpdir = Dir.mktmpdir
+    @tmpdir = yahns_mktmpdir
     server_helper_setup
     skip 'Ruby 2.x required' unless ''.respond_to?(:b)
   end
diff --git a/test/test_extras_try_gzip_static.rb b/test/test_extras_try_gzip_static.rb
index 4a73764..c6c8cef 100644
--- a/test/test_extras_try_gzip_static.rb
+++ b/test/test_extras_try_gzip_static.rb
@@ -11,7 +11,7 @@ class TestExtrasTryGzipStatic < Testcase
   GPL_TEXT = IO.binread("COPYING").freeze
 
   def setup
-    @tmpdir = Dir.mktmpdir
+    @tmpdir = yahns_mktmpdir
     server_helper_setup
     skip 'Ruby 2.x required' unless ''.respond_to?(:b)
   end
diff --git a/test/test_proxy_pass.rb b/test/test_proxy_pass.rb
index f6e0efd..448e480 100644
--- a/test/test_proxy_pass.rb
+++ b/test/test_proxy_pass.rb
@@ -177,7 +177,7 @@ class TestProxyPass < Testcase
   end
 
   def test_unix_socket_no_path
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     unix_path = "#{tmpdir}/proxy_pass.sock"
     unix_srv = UNIXServer.new(unix_path)
     err, cfg, host, port = @err, Yahns::Config.new, @srv.addr[3], @srv.addr[1]
diff --git a/test/test_serve_static.rb b/test/test_serve_static.rb
index 12932d2..68e84f7 100644
--- a/test/test_serve_static.rb
+++ b/test/test_serve_static.rb
@@ -10,7 +10,7 @@ class TestServeStatic < Testcase
   alias teardown server_helper_teardown
 
   def test_serve_static
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     sock = "#{tmpdir}/sock"
     err = @err
     cfg = Yahns::Config.new
@@ -120,7 +120,7 @@ class TestServeStatic < Testcase
   end
 
   def test_aborted_sendfile_closes_opened_path
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     mksparse(tmpdir)
     fifo = "#{tmpdir}/to_path--close"
     assert system("mkfifo", fifo), "mkfifo"
@@ -147,7 +147,7 @@ class TestServeStatic < Testcase
   end
 
   def test_truncated_sendfile
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     size, sparse = mksparse(tmpdir)
     err, cfg, host, port = @err, Yahns::Config.new, @srv.addr[3], @srv.addr[1]
     pid = mkserver(cfg) do
@@ -169,7 +169,7 @@ class TestServeStatic < Testcase
   end
 
   def test_expanded_sendfile
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     size, sparse = mksparse(tmpdir)
     err, cfg, host, port = @err, Yahns::Config.new, @srv.addr[3], @srv.addr[1]
     pid = mkserver(cfg) do
diff --git a/test/test_server.rb b/test/test_server.rb
index 87193e3..9f33b42 100644
--- a/test/test_server.rb
+++ b/test/test_server.rb
@@ -179,7 +179,7 @@ class TestServer < Testcase
   end
 
   def test_check_client_connection
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     sock = "#{tmpdir}/sock"
     unix_srv = UNIXServer.new(sock)
     unix_srv.close_on_exec = true
@@ -511,7 +511,7 @@ class TestServer < Testcase
   end
 
   def test_pidfile_usr2
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     pidf = "#{tmpdir}/pid"
     old = "#{pidf}.oldbin"
     err = @err
@@ -635,7 +635,7 @@ class TestServer < Testcase
     ru = lambda { |_|
       [ 200, {'Content-Length'=>Dir.pwd.size.to_s }, [Dir.pwd] ]
     }
-    Dir.mktmpdir do |tmpdir|
+    yahns_mktmpdir do |tmpdir|
       begin
         pid = mkserver(cfg) do
           $LOAD_PATH << File.expand_path("lib")
@@ -656,7 +656,7 @@ class TestServer < Testcase
   end
 
   def test_errors
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     sock = "#{tmpdir}/sock"
     err, cfg, host, port = @err, Yahns::Config.new, @srv.addr[3], @srv.addr[1]
     re = tmpfile(%w(rack .errors))
diff --git a/test/test_unix_socket.rb b/test/test_unix_socket.rb
index 3911619..7b821e3 100644
--- a/test/test_unix_socket.rb
+++ b/test/test_unix_socket.rb
@@ -23,7 +23,7 @@ class TestUnixSocket < Testcase
   end
 
   def test_socket
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     err, cfg = @err, Yahns::Config.new
     sock = "#{tmpdir}/sock"
     cfg.instance_eval do
@@ -48,7 +48,7 @@ class TestUnixSocket < Testcase
   end
 
   def test_socket_perms
-    tmpdir = Dir.mktmpdir
+    tmpdir = yahns_mktmpdir
     err, cfg = @err, Yahns::Config.new
     sock = "#{tmpdir}/sock"
     cfg.instance_eval do