diff options
author | zenspider <zenspider@d2e05cf2-00e0-46e5-a3de-bbee4d6b9404> | 2008-03-21 22:22:00 +0000 |
---|---|---|
committer | zenspider <zenspider@d2e05cf2-00e0-46e5-a3de-bbee4d6b9404> | 2008-03-21 22:22:00 +0000 |
commit | 5432c0e4d6b05bcc49c3a7c48eeff11f657beeca (patch) | |
tree | a766b2c741d6e9d3b2ecf1e619c2619694adeedb /test/setup.rb | |
parent | e20f64cd7ba2deb249b9b51ce9154ba5337ddf08 (diff) | |
download | mogilefs-client-5432c0e4d6b05bcc49c3a7c48eeff11f657beeca.tar.gz |
Removed infinite loop in MogileFS::HTTPFile#store_file. Made MogileFS#get_file_data timeout configurable. Add MogileFS#size. From p4 revision #3627 git-svn-id: http://seattlerb.rubyforge.org/svn/mogilefs-client/dev@433 d2e05cf2-00e0-46e5-a3de-bbee4d6b9404
Diffstat (limited to 'test/setup.rb')
-rw-r--r-- | test/setup.rb | 84 |
1 files changed, 81 insertions, 3 deletions
diff --git a/test/setup.rb b/test/setup.rb index 86f0f28..2acc111 100644 --- a/test/setup.rb +++ b/test/setup.rb @@ -1,5 +1,12 @@ require 'test/unit' +require 'fileutils' +require 'tmpdir' +require 'stringio' + +require 'rubygems' +require 'test/zentest_assertions' + $TESTING = true require 'mogilefs' @@ -32,22 +39,93 @@ class FakeBackend end +class FakeSocket + + attr_reader :read_s + attr_reader :write_s + + def initialize(read = '') + @read_s = StringIO.new read + @write_s = StringIO.new + @closed = false + end + + def closed? + @closed + end + + def close + @closed = true + return nil + end + + def gets + @read_s.gets + end + + def peeraddr + ['AF_INET', 6001, 'localhost', '127.0.0.1'] + end + + def read(bytes) + @read_s.read bytes + end + + def sysread(bytes) + @read_s.sysread bytes + end + + def write(data) + @write_s.write data + end + +end + class MogileFS::Client attr_writer :readonly end +class TCPSocket + + class << self + + attr_accessor :connections + attr_accessor :sockets + + alias old_new new + + def new(host, port) + raise Errno::ECONNREFUSED if @sockets.empty? + @connections << [host, port] + @sockets.pop + end + + alias open new + + end + +end + class TestMogileFS < Test::Unit::TestCase + undef_method :default_test + def setup - return if self.class == TestMogileFS - @root = '/mogilefs/test' + @tempdir = File.join Dir.tmpdir, "test_mogilefs_#{$$}" + @root = File.join @tempdir, 'root' + FileUtils.mkdir_p @root + @client = @klass.new :hosts => ['kaa:6001'], :domain => 'test', :root => @root @backend = FakeBackend.new @client.instance_variable_set '@backend', @backend + + TCPSocket.sockets = [] + TCPSocket.connections = [] end - def test_nothing + def teardown + FileUtils.rm_rf @tempdir end end |