diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-01 21:50:14 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-01 21:50:14 +0000 |
commit | effdbf5936cc090a618e13c8f9a1b5412ebab2fa (patch) | |
tree | c8410a18cbbe7ad013470fc06fef0c75ce0fd230 /lib/rubygems/package/tar_test_case.rb | |
parent | 9c4ef4b191a1e6b9abdbb21c7c709d1d0f2397e6 (diff) | |
download | ruby-effdbf5936cc090a618e13c8f9a1b5412ebab2fa.tar.gz |
* lib/rubygems: Update to RubyGems HEAD(c202db2).
this version contains many enhancements see http://git.io/vtNwF
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/package/tar_test_case.rb')
-rw-r--r-- | lib/rubygems/package/tar_test_case.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/rubygems/package/tar_test_case.rb b/lib/rubygems/package/tar_test_case.rb index 5253e32f36..b2d6f4ea77 100644 --- a/lib/rubygems/package/tar_test_case.rb +++ b/lib/rubygems/package/tar_test_case.rb @@ -71,7 +71,7 @@ class Gem::Package::TarTestCase < Gem::TestCase SP(Z(to_oct(sum, 6))) end - def header(type, fname, dname, length, mode, mtime, checksum = nil) + def header(type, fname, dname, length, mode, mtime, checksum = nil, linkname = "") checksum ||= " " * 8 arr = [ # struct tarfile_entry_posix @@ -83,7 +83,7 @@ class Gem::Package::TarTestCase < Gem::TestCase Z(to_oct(mtime, 11)), # char mtime[12]; 0 padded, octal, null checksum, # char checksum[8]; 0 padded, octal, null, space type, # char typeflag[1]; file: "0" dir: "5" - "\0" * 100, # char linkname[100]; ASCII + (Z unless filled) + ASCIIZ(linkname, 100), # char linkname[100]; ASCII + (Z unless filled) "ustar\0", # char magic[6]; "ustar\0" "00", # char version[2]; "00" ASCIIZ("wheel", 32), # char uname[32]; ASCIIZ @@ -117,6 +117,12 @@ class Gem::Package::TarTestCase < Gem::TestCase header("0", fname, dname, length, mode, mtime, checksum) end + def tar_symlink_header(fname, prefix, mode, mtime, linkname) + h = header("2", fname, prefix, 0, mode, mtime, nil, linkname) + checksum = calc_checksum(h) + header("2", fname, prefix, 0, mode, mtime, checksum, linkname) + end + def to_oct(n, pad_size) "%0#{pad_size}o" % n end @@ -133,5 +139,8 @@ class Gem::Package::TarTestCase < Gem::TestCase util_entry tar_dir_header("foo", "bar", 0, Time.now) end -end + def util_symlink_entry + util_entry tar_symlink_header("foo", "bar", 0, Time.now, "link") + end +end |