about summary refs log tree commit homepage
path: root/test/test_mogilefs.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2012-10-31 19:38:09 +0000
committerEric Wong <normalperson@yhbt.net>2012-10-31 19:47:37 +0000
commita8bc9cd0fce3169eccc67b191fdb40abfae59547 (patch)
tree53ba22b5d2dddc5bfe328e297badadfa49e985e5 /test/test_mogilefs.rb
parent3e0b092efc2c5a5383a5d2063b830fe5d5e652f9 (diff)
downloadmogilefs-client-a8bc9cd0fce3169eccc67b191fdb40abfae59547.tar.gz
We now have separate Net::HTTP::Persistent instances
between clients that may have different timeouts and
also between GET and PUT requests.  This hurts our
ability to reuse sockets, but correctness is probably
more important.
Diffstat (limited to 'test/test_mogilefs.rb')
-rw-r--r--test/test_mogilefs.rb38
1 files changed, 25 insertions, 13 deletions
diff --git a/test/test_mogilefs.rb b/test/test_mogilefs.rb
index dbaddf3..a6bcf35 100644
--- a/test/test_mogilefs.rb
+++ b/test/test_mogilefs.rb
@@ -10,6 +10,14 @@ class TestMogileFS__MogileFS < TestMogileFS
     super
   end
 
+  def read_headers(client)
+    headers = ""
+    while line = client.gets
+      headers << line
+      return headers if line == "\r\n"
+    end
+  end
+
   def test_initialize
     assert_equal 'test', @client.domain
 
@@ -24,9 +32,10 @@ class TestMogileFS__MogileFS < TestMogileFS
     svr = Proc.new do |serv, port|
       client, _ = serv.accept
       client.sync = true
-      readed = client.recv(4096, 0)
-      assert(readed =~ \
-            %r{\AGET /dev[12]/0/000/000/0000000062\.fid HTTP/1.[01]\r\n\r\n\Z})
+      readed = read_headers(client)
+      assert_match(
+        %r{\AGET /dev[12]/0/000/000/0000000062\.fid HTTP/1.[01]\r\n},
+        readed)
       accept.syswrite('.')
       client.send("HTTP/1.0 200 OK\r\nContent-Length: 5\r\n\r\ndata!", 0)
       client.close
@@ -50,9 +59,10 @@ class TestMogileFS__MogileFS < TestMogileFS
     svr1 = Proc.new do |serv, port|
       client, _ = serv.accept
       client.sync = true
-      readed = client.recv(4096, 0)
-      assert(readed =~ \
-            %r{\AGET /dev1/0/000/000/0000000062\.fid HTTP/1.[01]\r\n\r\n\Z})
+      readed = read_headers(client)
+      assert_match(
+        %r{\AGET /dev1/0/000/000/0000000062\.fid HTTP/1.[01]\r\n},
+        readed)
       accept.syswrite('.')
       client.send("HTTP/1.0 404 Not Found\r\n\r\ndata!", 0)
       client.close
@@ -61,9 +71,10 @@ class TestMogileFS__MogileFS < TestMogileFS
     svr2 = Proc.new do |serv, port|
       client, _ = serv.accept
       client.sync = true
-      readed = client.recv(4096, 0)
-      assert(readed =~ \
-            %r{\AGET /dev2/0/000/000/0000000062\.fid HTTP/1.[01]\r\n\r\n\Z})
+      readed = read_headers(client)
+      assert_match(
+        %r{\AGET /dev2/0/000/000/0000000062\.fid HTTP/1.[01].*\r\n},
+        readed)
       accept.syswrite('.')
       client.send("HTTP/1.0 200 OK\r\nContent-Length: 5\r\n\r\ndata!", 0)
       client.close
@@ -98,9 +109,10 @@ class TestMogileFS__MogileFS < TestMogileFS
       client, _ = serv.accept
       client.sync = true
       accept.syswrite('.')
-      readed = client.recv(4096, 0)
-      assert(readed =~ \
-            %r{\AGET /dev[12]/0/000/000/0000000062\.fid HTTP/1.[01]\r\n\r\n\Z})
+      readed = read_headers(client)
+      assert_match(
+        %r{\AGET /dev[12]/0/000/000/0000000062\.fid HTTP/1.[01]\r\n},
+        readed)
       MogileFS.io.copy_stream(tmpfp, client)
       client.close
       exit 0
@@ -406,7 +418,7 @@ class TestMogileFS__MogileFS < TestMogileFS
     t = TempServer.new(Proc.new do |serv, accept|
       client, _ = serv.accept
       client.sync = true
-      client.recv(4096, 0)
+      read_headers(client)
       client.send("HTTP/1.0 500 Internal Server Error\r\n\r\n", 0)
       client.close
     end)