about summary refs log tree commit homepage
path: root/test
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-03-25 16:32:58 -0700
committerEric Wong <normalperson@yhbt.net>2009-03-25 16:32:58 -0700
commit63209531722311896ac448d9170adb0766fa3eff (patch)
treefd8aa66b87ac9e14de855562f9998887032a5420 /test
parent1bf10b3a73509f3fc72fb7f267e767c0e2fa9376 (diff)
parent9c338507225446cb5c477a91c5e5da0bfe305949 (diff)
downloadunicorn-63209531722311896ac448d9170adb0766fa3eff.tar.gz
* commit 'v0.2.3':
  unicorn 0.2.3
  Ensure Tempfiles are unlinked after every request
  Don't bother unlinking UNIX sockets

Conflicts:
	lib/unicorn/socket.rb
Diffstat (limited to 'test')
-rw-r--r--test/unit/test_upload.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/unit/test_upload.rb b/test/unit/test_upload.rb
index 41fc473..8246f65 100644
--- a/test/unit/test_upload.rb
+++ b/test/unit/test_upload.rb
@@ -50,6 +50,32 @@ class UploadTest < Test::Unit::TestCase
     assert_equal @sha1.hexdigest, resp[:sha1]
   end
 
+  def test_tempfile_unlinked
+    spew_path = lambda do |env|
+      if orig = env['HTTP_X_OLD_PATH']
+        assert orig != env['rack.input'].path
+      end
+      assert_equal length, env['rack.input'].size
+      [ 200, @hdr.merge('X-Tempfile-Path' => env['rack.input'].path), [] ]
+    end
+    start_server(spew_path)
+    sock = TCPSocket.new(@addr, @port)
+    sock.syswrite("PUT / HTTP/1.0\r\nContent-Length: #{length}\r\n\r\n")
+    @count.times { sock.syswrite(' ' * @bs) }
+    path = sock.read[/^X-Tempfile-Path: (\S+)/, 1]
+    sock.close
+
+    # send another request to ensure we hit the next request
+    sock = TCPSocket.new(@addr, @port)
+    sock.syswrite("PUT / HTTP/1.0\r\nX-Old-Path: #{path}\r\n" \
+                  "Content-Length: #{length}\r\n\r\n")
+    @count.times { sock.syswrite(' ' * @bs) }
+    path2 = sock.read[/^X-Tempfile-Path: (\S+)/, 1]
+    sock.close
+    assert path != path2
+
+    assert ! File.exist?(path)
+  end
 
   def test_put_keepalive_truncates_small_overwrite
     start_server(@sha1_app)