diff options
Diffstat (limited to 'test/rubygems/test_gem_package_tar_header.rb')
-rw-r--r-- | test/rubygems/test_gem_package_tar_header.rb | 137 |
1 files changed, 82 insertions, 55 deletions
diff --git a/test/rubygems/test_gem_package_tar_header.rb b/test/rubygems/test_gem_package_tar_header.rb index 0e72a72d6a..a3f95bb770 100644 --- a/test/rubygems/test_gem_package_tar_header.rb +++ b/test/rubygems/test_gem_package_tar_header.rb @@ -1,25 +1,26 @@ # frozen_string_literal: true -require_relative 'package/tar_test_case' -require 'rubygems/package' + +require_relative "package/tar_test_case" +require "rubygems/package" class TestGemPackageTarHeader < Gem::Package::TarTestCase def setup super header = { - :name => 'x', - :mode => 0644, - :uid => 1000, - :gid => 10000, - :size => 100, - :mtime => 12345, - :typeflag => '0', - :linkname => 'link', - :uname => 'user', - :gname => 'group', - :devmajor => 1, - :devminor => 2, - :prefix => 'y', + name: "x", + mode: 0o644, + uid: 1000, + gid: 10_000, + size: 100, + mtime: 12_345, + typeflag: "0", + linkname: "link", + uname: "user", + gname: "group", + devmajor: 1, + devminor: 2, + prefix: "y", } @tar_header = Gem::Package::TarHeader.new header @@ -36,66 +37,91 @@ class TestGemPackageTarHeader < Gem::Package::TarTestCase end def test_initialize - assert_equal '', @tar_header.checksum, 'checksum' - assert_equal 1, @tar_header.devmajor, 'devmajor' - assert_equal 2, @tar_header.devminor, 'devminor' - assert_equal 10000, @tar_header.gid, 'gid' - assert_equal 'group', @tar_header.gname, 'gname' - assert_equal 'link', @tar_header.linkname, 'linkname' - assert_equal 'ustar', @tar_header.magic, 'magic' - assert_equal 0644, @tar_header.mode, 'mode' - assert_equal 12345, @tar_header.mtime, 'mtime' - assert_equal 'x', @tar_header.name, 'name' - assert_equal 'y', @tar_header.prefix, 'prefix' - assert_equal 100, @tar_header.size, 'size' - assert_equal '0', @tar_header.typeflag, 'typeflag' - assert_equal 1000, @tar_header.uid, 'uid' - assert_equal 'user', @tar_header.uname, 'uname' - assert_equal '00', @tar_header.version, 'version' - - refute_empty @tar_header, 'empty' + assert_equal "", @tar_header.checksum, "checksum" + assert_equal 1, @tar_header.devmajor, "devmajor" + assert_equal 2, @tar_header.devminor, "devminor" + assert_equal 10_000, @tar_header.gid, "gid" + assert_equal "group", @tar_header.gname, "gname" + assert_equal "link", @tar_header.linkname, "linkname" + assert_equal "ustar", @tar_header.magic, "magic" + assert_equal 0o644, @tar_header.mode, "mode" + assert_equal 12_345, @tar_header.mtime, "mtime" + assert_equal "x", @tar_header.name, "name" + assert_equal "y", @tar_header.prefix, "prefix" + assert_equal 100, @tar_header.size, "size" + assert_equal "0", @tar_header.typeflag, "typeflag" + assert_equal 1000, @tar_header.uid, "uid" + assert_equal "user", @tar_header.uname, "uname" + assert_equal "00", @tar_header.version, "version" + + refute_empty @tar_header, "empty" end def test_initialize_bad assert_raise ArgumentError do - Gem::Package::TarHeader.new :name => '', :size => '', :mode => '' + Gem::Package::TarHeader.new name: "", size: "", mode: "" end assert_raise ArgumentError do - Gem::Package::TarHeader.new :name => '', :size => '', :prefix => '' + Gem::Package::TarHeader.new name: "", size: "", prefix: "" end assert_raise ArgumentError do - Gem::Package::TarHeader.new :name => '', :prefix => '', :mode => '' + Gem::Package::TarHeader.new name: "", prefix: "", mode: "" end assert_raise ArgumentError do - Gem::Package::TarHeader.new :prefix => '', :size => '', :mode => '' + Gem::Package::TarHeader.new prefix: "", size: "", mode: "" end end def test_initialize_typeflag header = { - :mode => '', - :name => '', - :prefix => '', - :size => '', - :typeflag => '', + mode: "", + name: "", + prefix: "", + size: "", + typeflag: "", } tar_header = Gem::Package::TarHeader.new header - assert_equal '0', tar_header.typeflag + assert_equal "0", tar_header.typeflag end def test_empty_eh refute_empty @tar_header - @tar_header = Gem::Package::TarHeader.new :name => 'x', :prefix => '', - :mode => 0, :size => 0, - :empty => true + @tar_header = Gem::Package::TarHeader.new name: "x", prefix: "", + mode: 0, size: 0, + empty: true + + assert_empty @tar_header + end + + def test_empty + @tar_header = Gem::Package::TarHeader.from(StringIO.new(Gem::Package::TarHeader::EMPTY_HEADER)) assert_empty @tar_header + assert_equal Gem::Package::TarHeader.new( + checksum: 0, + devmajor: 0, + devminor: 0, + empty: true, + gid: 0, + gname: "", + linkname: "", + magic: "", + mode: 0, + mtime: 0, + name: "", + prefix: "", + size: 0, + typeflag: "0", + uid: 0, + uname: "", + version: 0, + ), @tar_header end def test_equals2 @@ -135,11 +161,11 @@ group\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 end def test_update_checksum - assert_equal '', @tar_header.checksum + assert_equal "", @tar_header.checksum @tar_header.update_checksum - assert_equal '012467', @tar_header.checksum + assert_equal "012467", @tar_header.checksum end def test_from_bad_octal @@ -159,13 +185,14 @@ group\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 assert_raise ArgumentError do Gem::Package::TarHeader.from io end + ensure io.close! end end def test_big_uid_gid stream = StringIO.new( - <<-EOF.dup.force_encoding('binary').split("\n").join + <<-EOF.dup.force_encoding("binary").split("\n").join GeoIP2-City_20190528/ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 @@ -194,19 +221,19 @@ tjmather\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 tar_header = Gem::Package::TarHeader.from stream - assert_equal 1991400094, tar_header.uid - assert_equal 1991400094, tar_header.gid + assert_equal 1_991_400_094, tar_header.uid + assert_equal 1_991_400_094, tar_header.gid - assert_equal 'GeoIP2-City_20190528/', tar_header.name - assert_equal 0755, tar_header.mode + assert_equal "GeoIP2-City_20190528/", tar_header.name + assert_equal 0o755, tar_header.mode assert_equal 0, tar_header.size - assert_equal 1559064640, tar_header.mtime + assert_equal 1_559_064_640, tar_header.mtime assert_equal 6932, tar_header.checksum end def test_spaces_in_headers stream = StringIO.new( - <<-EOF.dup.force_encoding('binary').split("\n").join + <<-EOF.dup.force_encoding("binary").split("\n").join Access_Points_09202018.csv \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 |