about summary refs log tree commit homepage
path: root/test/test_mogilefs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_mogilefs.rb')
-rw-r--r--test/test_mogilefs.rb54
1 files changed, 25 insertions, 29 deletions
diff --git a/test/test_mogilefs.rb b/test/test_mogilefs.rb
index a6bcf35..186e88a 100644
--- a/test/test_mogilefs.rb
+++ b/test/test_mogilefs.rb
@@ -6,10 +6,17 @@ require 'fileutils'
 
 class TestMogileFS__MogileFS < TestMogileFS
   def setup
+    @tmpsrv = []
     @klass = MogileFS::MogileFS
     super
   end
 
+  def tmpsrv(blk)
+    t = TempServer.new(blk)
+    @tmpsrv << t
+    t
+  end
+
   def read_headers(client)
     headers = ""
     while line = client.gets
@@ -40,8 +47,8 @@ class TestMogileFS__MogileFS < TestMogileFS
       client.send("HTTP/1.0 200 OK\r\nContent-Length: 5\r\n\r\ndata!", 0)
       client.close
     end
-    t1 = TempServer.new(svr)
-    t2 = TempServer.new(svr)
+    t1 = tmpsrv(svr)
+    t2 = tmpsrv(svr)
     path1 = "http://127.0.0.1:#{t1.port}/dev1/0/000/000/0000000062.fid"
     path2 = "http://127.0.0.1:#{t2.port}/dev2/0/000/000/0000000062.fid"
 
@@ -49,8 +56,6 @@ class TestMogileFS__MogileFS < TestMogileFS
 
     assert_equal 'data!', @client.get_file_data('key')
     assert_equal 1, accept.stat.size
-    ensure
-      TempServer.destroy_all!
   end
 
   def test_get_file_data_http_not_found_failover
@@ -80,16 +85,14 @@ class TestMogileFS__MogileFS < TestMogileFS
       client.close
     end
 
-    t1 = TempServer.new(svr1)
-    t2 = TempServer.new(svr2)
+    t1 = tmpsrv(svr1)
+    t2 = tmpsrv(svr2)
     path1 = "http://127.0.0.1:#{t1.port}/dev1/0/000/000/0000000062.fid"
     path2 = "http://127.0.0.1:#{t2.port}/dev2/0/000/000/0000000062.fid"
     @backend.get_paths = { 'paths' => 2, 'path1' => path1, 'path2' => path2 }
 
     assert_equal 'data!', @client.get_file_data('key')
     assert_equal 2, accept.stat.size
-    ensure
-      TempServer.destroy_all!
   end
 
   def test_get_file_data_http_block
@@ -117,8 +120,8 @@ class TestMogileFS__MogileFS < TestMogileFS
       client.close
       exit 0
     end
-    t1 = TempServer.new(svr)
-    t2 = TempServer.new(svr)
+    t1 = tmpsrv(svr)
+    t2 = tmpsrv(svr)
     path1 = "http://127.0.0.1:#{t1.port}/dev1/0/000/000/0000000062.fid"
     path2 = "http://127.0.0.1:#{t2.port}/dev2/0/000/000/0000000062.fid"
 
@@ -237,7 +240,7 @@ class TestMogileFS__MogileFS < TestMogileFS
     to_store = Tempfile.new('small')
     to_store.syswrite('data')
 
-    t = TempServer.new(Proc.new do |serv, accept|
+    t = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       while buf = client.readpartial(666)
         received.syswrite(buf)
@@ -260,14 +263,12 @@ class TestMogileFS__MogileFS < TestMogileFS
     assert_equal("data", a[-1])
     assert_equal("", a[-2])
     assert a.grep(%r{\AContent-Length: 4\z})[0]
-    ensure
-      TempServer.destroy_all!
   end
 
   def test_store_content_http
     received = Tempfile.new('received')
 
-    t = TempServer.new(Proc.new do |serv, accept|
+    t = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       client.sync = true
       seen = ""
@@ -295,8 +296,6 @@ class TestMogileFS__MogileFS < TestMogileFS
     assert_equal("data", a[-1])
     assert_equal("", a[-2])
     assert a.grep(%r{\AContent-Length: 4\z})[0]
-    ensure
-      TempServer.destroy_all!
   end
 
 
@@ -306,7 +305,7 @@ class TestMogileFS__MogileFS < TestMogileFS
     10.times do
       expected += "data"
     end
-    t = TempServer.new(Proc.new do |serv, accept|
+    t = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       client.sync = true
       nr = 0
@@ -343,8 +342,6 @@ class TestMogileFS__MogileFS < TestMogileFS
     assert_equal("data" * 10, a[-1])
     assert_equal("", a[-2])
     assert a.grep(%r{\AContent-Length: 40\z})[0]
-    ensure
-      TempServer.destroy_all!
   end
 
   def test_store_content_multi_dest_failover_path
@@ -355,7 +352,7 @@ class TestMogileFS__MogileFS < TestMogileFS
     received1 = Tempfile.new('received')
     received2 = Tempfile.new('received')
 
-    t1 = TempServer.new(Proc.new do |serv, accept|
+    t1 = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       seen = ""
       while seen !~ /\r\n\r\ndata/
@@ -367,7 +364,7 @@ class TestMogileFS__MogileFS < TestMogileFS
       client.close
     end)
 
-    t2 = TempServer.new(Proc.new do |serv, accept|
+    t2 = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       seen = ""
       while seen !~ /\r\n\r\ndata/
@@ -410,12 +407,10 @@ class TestMogileFS__MogileFS < TestMogileFS
     assert_equal("", b[-2])
     assert a.grep(%r{\AContent-Length: 4\z})[0]
     assert b.grep(%r{\AContent-Length: 4\z})[0]
-    ensure
-      TempServer.destroy_all!
   end
 
   def test_store_content_http_fail
-    t = TempServer.new(Proc.new do |serv, accept|
+    t = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       client.sync = true
       read_headers(client)
@@ -435,7 +430,7 @@ class TestMogileFS__MogileFS < TestMogileFS
 
   def test_store_content_http_empty
     received = Tempfile.new('received')
-    t = TempServer.new(Proc.new do |serv, accept|
+    t = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       client.sync = true
       received.syswrite(client.recv(4096, 0))
@@ -487,7 +482,7 @@ class TestMogileFS__MogileFS < TestMogileFS
     assert_equal expect_size, to_put.stat.size
 
     readed = Tempfile.new('readed')
-    t = TempServer.new(Proc.new do |serv, accept|
+    t = tmpsrv(Proc.new do |serv, accept|
       client, _ = serv.accept
       client.sync = true
       nr = 0
@@ -523,9 +518,6 @@ class TestMogileFS__MogileFS < TestMogileFS
       assert( system(cmp_bin, expect.path, received.path) )
       break
     end
-
-    ensure
-      TempServer.destroy_all!
   end
 
   def test_store_content_readonly
@@ -868,6 +860,10 @@ class TestMogileFS__MogileFS < TestMogileFS
     assert_equal({}, @client.sleep(2))
   end
 
+  def teardown
+    @tmpsrv.each { |t| t.destroy! }
+  end
+
   private
 
     # tested with 1000, though it takes a while