1 # -*- encoding: binary -*-
5 class TestMogileFSLargePipe < Test::Unit::TestCase
10 @client = MogileFS::MogileFS.new(:hosts => @trackers, :domain => @domain)
13 def test_large_pipe_test
14 junk = File.open("/dev/urandom") { |fp| fp.read(1024) }
18 sha1 = Digest::SHA1.new
26 assert_equal(nr * junk.size, @client.store_file("a", nil, r))
29 @client.get_file_data("a") do |rd|
30 assert_equal(nr * junk.size, @client.store_file("b", nil, rd))
32 a = Thread.new { @client.get_file_data("a") { |rd| sha1read(rd) } }
33 b = Thread.new { @client.get_file_data("b") { |rd| sha1read(rd) } }
39 # We should be able to open FIFOs
43 x!("mkfifo", tmp_path)
45 File.open(tmp_path, "wb") do |wr|
46 nr.times { wr.write(junk) }
49 assert_equal(nr * junk.size, @client.store_file("fifo", nil, tmp_path))
50 _, status = Process.waitpid2(pid)
51 assert status.success?, status.inspect
52 fifo_sha1 = @client.get_file_data("fifo") { |rd| sha1read(rd) }
53 assert_equal sha1, fifo_sha1
59 while rd.read(16384, buf)