1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rubygems/test_gem_package_tar_reader.rb
hsbt a21d403f21 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
It supports to enable frozen string literal and add `--norc` option for
  disable to `.gemrc` configuration.
  See 2.5.2 release notes for other fixes and enhancements.
  a8aa3bac72/History.txt (L3)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-01 12:43:26 +00:00

90 lines
1.9 KiB
Ruby

# frozen_string_literal: true
require 'rubygems/package/tar_test_case'
require 'rubygems/package'
class TestGemPackageTarReader < Gem::Package::TarTestCase
def test_each_entry
tar = tar_dir_header "foo", "bar", 0, Time.now
tar << tar_file_header("bar", "baz", 0, 0, Time.now)
io = TempIO.new tar
entries = 0
Gem::Package::TarReader.new io do |tar_reader|
tar_reader.each_entry do |entry|
assert_kind_of Gem::Package::TarReader::Entry, entry
entries += 1
end
end
assert_equal 2, entries
ensure
io.close!
end
def test_rewind
content = ('a'..'z').to_a.join(" ")
str =
tar_file_header("lib/foo", "", 010644, content.size, Time.now) +
content + "\0" * (512 - content.size)
str << "\0" * 1024
io = TempIO.new(str)
Gem::Package::TarReader.new(io) do |tar_reader|
3.times do
tar_reader.rewind
i = 0
tar_reader.each_entry do |entry|
assert_equal(content, entry.read)
i += 1
end
assert_equal(1, i)
end
end
ensure
io.close!
end
def test_seek
tar = tar_dir_header "foo", "bar", 0, Time.now
tar << tar_file_header("bar", "baz", 0, 0, Time.now)
io = TempIO.new tar
Gem::Package::TarReader.new io do |tar_reader|
tar_reader.seek 'baz/bar' do |entry|
assert_kind_of Gem::Package::TarReader::Entry, entry
assert_equal 'baz/bar', entry.full_name
end
assert_equal 0, io.pos
end
ensure
io.close!
end
def test_seek_missing
tar = tar_dir_header "foo", "bar", 0, Time.now
tar << tar_file_header("bar", "baz", 0, 0, Time.now)
io = TempIO.new tar
Gem::Package::TarReader.new io do |tar_reader|
tar_reader.seek 'nonexistent' do |entry|
flunk 'entry missing but entry-found block was run'
end
assert_equal 0, io.pos
end
ensure
io.close!
end
end