| Class | CacheTest |
| In: |
lib/cache.rb
|
| Parent: | Test::Unit::TestCase |
# File lib/cache.rb, line 307 def test_nested_write TempPath.new('cache') do |repo| cache = nil assert_nothing_raised { cache = Cache.new(repo) } assert_equal(0, cache.nb_files, 'bad nb_files') assert_equal(0, cache.size) data = [ "toto\n", "tata\n" ] d1 = data.dup p1 = cache.open(nil, 'w') do d2 = data.dup p2 = cache.open(nil, 'w') do d2.shift end d1.shift end assert(p1) assert(p1.exist?, 'file exist?') assert_equal(p1.md5sum.to_s, p1.basename.to_s, 'bad md5 open') assert_equal(1, cache.nb_files, 'bad nb_files') assert_equal(p1, cache[0]) assert_equal(10, cache.size) assert_equal(p1, cache.present?(p1.basename)) end end
Tests
# File lib/cache.rb, line 179 def test_simple # FIXME factor me using #setup, #teardown, and @cache instead of cache. TempPath.new('cache') do |repo| cache = nil assert_nothing_raised { cache = Cache.new(repo) } assert_equal(0, cache.nb_files, 'bad nb_files') assert_nothing_raised { cache.create } assert_equal(0, cache.nb_files, 'bad nb_files') assert_nothing_raised { cache.clear } assert_equal(0, cache.nb_files, 'bad nb_files') assert_nothing_raised { cache.create } assert_equal(0, cache.nb_files, 'bad nb_files') assert_raises(Errno::ENOENT) { cache.open('toto', 'r') { |f| f.gets } } assert_equal(0, cache.nb_files, 'bad nb_files') assert_equal(0, cache.size) data = [ "toto\n", "tata\n" ] p1 = cache.open(nil, 'w') do data.shift end assert(p1) assert_equal(p1.md5sum.to_s, p1.basename.to_s, 'bad md5 open') assert_equal(1, cache.nb_files, 'bad nb_files') assert_equal(p1, cache[0]) assert_equal(10, cache.size) assert_equal(p1, cache.present?(p1.basename)) tmp_p = cache.read(p1) do |f| assert_equal("toto\n", f.gets) assert_equal("tata\n", f.gets) assert(f.eof?) end assert_equal(tmp_p, p1) # FIXME check_atime(cache) assert_equal(1, cache.nb_files, 'bad nb_files') assert(cache.present?(p1)) assert_equal(p1, cache[0]) assert(! cache.present?('foo')) # FIXME man printf + Tempfile + File::md5sum # fixtures/foo.txt + TempPath + Path#md5sum tmp_file = Tempfile.new('cache') system("man printf > #{tmp_file.path} 2> /dev/null") md5 = File.md5sum(tmp_file.path) p2 = cache.import(tmp_file.path) assert_equal(md5.to_s, p2.basename.to_s, 'bad name after import') assert(p2.exist?, 'file do not exist after import') assert(FileUtils.cmp(tmp_file.path, p2.to_s), 'bad import') assert_equal(md5.to_s, File.md5sum(p2.to_s).to_s, 'bad md5 import') tmp_file.delete assert_equal(2, cache.nb_files, 'bad nb_files') assert_equal(p2, cache[1]) check_atime(cache) data = [ "foo\n", "bar\n" ] p3 = cache.open(nil, 'w') do data.shift end assert_equal(File.md5sum(p3.to_s).to_s, p3.basename.to_s, 'bad md5 open') assert_equal(3, cache.nb_files, 'bad nb_files') assert_equal(p3, cache[2]) assert_equal(p3, cache.present?(p3.basename)) assert_equal(p1, cache[0], 'p1 first') assert_equal(p2, cache[1], 'p2 second') assert_equal(p3, cache[2], 'p3 third') assert_equal(p1, cache.read(p1) { |f| f.gets }) assert_equal(p2, cache[0], 'p2 first') assert_equal(p3, cache[1], 'p3 second') assert_equal(p1, cache[2], 'p1 third') # FIXME check_atime(cache) assert_equal(3, cache.nb_files, 'bad nb_files') new_cache = nil assert_nothing_raised { new_cache = Cache.new(repo) } assert_equal(3, new_cache.nb_files, 'bad nb_files in new cache') check_atime(new_cache) assert_equal(cache.size, new_cache.size) assert_equal(3, cache.nb_files, 'bad nb_files') assert(cache.size > 1024) cache.max_size = 1024 assert(cache.size < 1024) assert_equal(p1.size + p3.size, cache.size) assert_equal(2, cache.nb_files, 'bad nb_files') assert_equal(p3, cache[0], 'p3 first') assert_equal(p1, cache[1], 'p1 second') cache.clear assert_equal(0, cache.nb_files, 'bad nb_files') assert_equal(0, cache.size) end end
# File lib/cache.rb, line 273 def test_write_twice_the_same TempPath.new('cache') do |repo| cache = nil assert_nothing_raised { cache = Cache.new(repo) } assert_equal(0, cache.nb_files, 'bad nb_files') assert_equal(0, cache.size) data = [ "toto\n", "tata\n" ] d = data.dup p1 = cache.open(nil, 'w') do d.shift end assert_kind_of(Pathname, p1) assert_equal(p1.md5sum.to_s, p1.basename.to_s, 'bad md5 open') assert_equal(1, cache.nb_files, 'bad nb_files') assert_equal(p1, cache[0]) assert_equal(10, cache.size) assert_equal(p1, cache.present?(p1.basename)) data = [ "toto\n", "tata\n" ] d = data.dup p2 = cache.open(nil, 'w') do d.shift end assert_equal(File.md5sum(p1.to_s).to_s, p1.basename.to_s, 'bad md5 open') assert_equal(1, cache.nb_files, 'bad nb_files') assert_equal(p1, cache[0]) assert_equal(10, cache.size) assert_equal(p1, cache.present?(p1.basename)) end end