X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a50fab63068c1e8d67ce1d477c6f2c2429464b5c..82a9595a6a35c648fff62c2497d858f1ab062578:/sdk/ruby/test/test_collection.rb diff --git a/sdk/ruby/test/test_collection.rb b/sdk/ruby/test/test_collection.rb index 29ec6d418c..8b747c3652 100644 --- a/sdk/ruby/test/test_collection.rb +++ b/sdk/ruby/test/test_collection.rb @@ -36,6 +36,29 @@ class CollectionTest < Minitest::Test end end + def test_range_edge_cases + [ + ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:file1\n", + ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:file1 0:0:file2\n", + ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:file1 0:0:file1\n", + ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:file1 0:0:file2 0:0:file1\n", + ". 0cc175b9c0f1b6a831c399e269772661+1 0:0:file1 1:0:file2 1:0:file1\n", + ].each do |txt| + coll = Arv::Collection.new(txt) + coll.normalize + assert_match(/ 0:0:file1/, coll.manifest_text) + end + [ + ". d41d8cd98f00b204e9800998ecf8427e+0 1:0:file1\n", + ". 0cc175b9c0f1b6a831c399e269772661+1 0:0:file1 2:0:file2 1:0:file1\n", + ].each do |txt| + assert_raises(RangeError) do + coll = Arv::Collection.new(txt) + coll.normalize + end + end + end + def test_non_manifest_construction_error ["word", ". abc def", ". #{random_block} 0:", ". / !"].each do |m_text| assert_raises(ArgumentError, @@ -404,7 +427,6 @@ class CollectionTest < Minitest::Test src_coll = Arv::Collection.new(". #{blocks[0]} #{blocks[1]} #{blocks[2]} #{blocks[0]} #{blocks[1]} #{blocks[2]} #{blocks[3]} #{blocks[4]} 27:27:f1\n") dst_coll = Arv::Collection.new() dst_coll.cp_r("f1", "./", src_coll) - toks = dst_coll.manifest_text.split(" ") assert_equal(". #{blocks[0]} #{blocks[1]} #{blocks[2]} 0:27:f1\n", dst_coll.manifest_text, "mangled by cp_r") end @@ -415,7 +437,6 @@ class CollectionTest < Minitest::Test src_coll.normalize assert_equal(". #{blocks[2]} #{blocks[0]} #{blocks[1]} #{blocks[2]} 2:27:f1\n", src_coll.manifest_text, "mangled by normalize()") dst_coll.cp_r("f1", "./", src_coll) - toks = dst_coll.manifest_text.split(" ") assert_equal(". #{blocks[2]} #{blocks[0]} #{blocks[1]} #{blocks[2]} 2:27:f1\n", dst_coll.manifest_text, "mangled by cp_r") end