[前][次][番号順一覧][スレッド一覧]

ruby-changes:66360

From: David <ko1@a...>
Date: Fri, 28 May 2021 12:17:47 +0900 (JST)
Subject: [ruby-changes:66360] 59c6820971 (master): [rubygems/rubygems] Copy files specific to testing rubygems to `test`

https://git.ruby-lang.org/ruby.git/commit/?id=59c6820971

From 59c682097197fee4052b47e4b4ab86562f3eaa9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@r...>
Date: Wed, 12 May 2021 11:35:19 +0200
Subject: [rubygems/rubygems] Copy files specific to testing rubygems to `test`

https://github.com/rubygems/rubygems/commit/aa390a3500
---
 lib/rubygems/installer_test_case.rb    |  247 -----
 lib/rubygems/package/tar_test_case.rb  |  139 ---
 lib/rubygems/test_case.rb              | 1606 --------------------------------
 lib/rubygems/test_utilities.rb         |  373 --------
 test/rubygems/installer_test_case.rb   |  247 +++++
 test/rubygems/package/tar_test_case.rb |  139 +++
 test/rubygems/test_case.rb             | 1606 ++++++++++++++++++++++++++++++++
 test/rubygems/test_utilities.rb        |  373 ++++++++
 8 files changed, 2365 insertions(+), 2365 deletions(-)
 delete mode 100644 lib/rubygems/installer_test_case.rb
 delete mode 100644 lib/rubygems/package/tar_test_case.rb
 delete mode 100644 lib/rubygems/test_case.rb
 delete mode 100644 lib/rubygems/test_utilities.rb
 create mode 100644 test/rubygems/installer_test_case.rb
 create mode 100644 test/rubygems/package/tar_test_case.rb
 create mode 100644 test/rubygems/test_case.rb
 create mode 100644 test/rubygems/test_utilities.rb

diff --git a/lib/rubygems/installer_test_case.rb b/lib/rubygems/installer_test_case.rb
deleted file mode 100644
index 416dac7..0000000
--- a/lib/rubygems/installer_test_case.rb
+++ /dev/null
@@ -1,247 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-# frozen_string_literal: true
-require 'rubygems/test_case'
-require 'rubygems/installer'
-
-class Gem::Installer
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :bin_dir
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :build_args
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :gem_dir
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :force
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :format
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :gem_home
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :env_shebang
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :ignore_dependencies
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :format_executable
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :security_policy
-
-  ##
-  # Available through requiring rubygems/installer_test_case
-
-  attr_writer :wrappers
-end
-
-##
-# A test case for Gem::Installer.
-
-class Gem::InstallerTestCase < Gem::TestCase
-  def setup
-    super
-
-    Gem::Installer.path_warning = false
-  end
-
-  ##
-  # The path where installed executables live
-
-  def util_inst_bindir
-    File.join @gemhome, "bin"
-  end
-
-  ##
-  # Adds an executable named "executable" to +spec+ with the given +shebang+.
-  #
-  # The executable is also written to the bin dir in @tmpdir and the installed
-  # gem directory for +spec+.
-
-  def util_make_exec(spec = @spec, shebang = "#!/usr/bin/ruby", bindir = "bin")
-    spec.executables = %w[executable]
-    spec.bindir = bindir
-
-    exec_path = spec.bin_file "executable"
-    write_file exec_path do |io|
-      io.puts shebang
-    end
-
-    bin_path = File.join @tempdir, "bin", "executable"
-    write_file bin_path do |io|
-      io.puts shebang
-    end
-  end
-
-  ##
-  # Creates the following instance variables:
-  #
-  # @spec::
-  #   a spec named 'a', intended for regular installs
-  #
-  # @gem::
-  #   the path to a built gem from @spec
-  #
-  # And returns a Gem::Installer for the @spec that installs into @gemhome
-
-  def setup_base_installer(force = true)
-    @gem = setup_base_gem
-    util_installer @spec, @gemhome, false, force
-  end
-
-  ##
-  # Creates the following instance variables:
-  #
-  # @spec::
-  #   a spec named 'a', intended for regular installs
-  #
-  # And returns a gem built for the @spec
-
-  def setup_base_gem
-    @spec = setup_base_spec
-    util_build_gem @spec
-    @spec.cache_file
-  end
-
-  ##
-  # Sets up a generic specification for testing the rubygems installer
-  #
-  # And returns it
-
-  def setup_base_spec
-    quick_gem 'a' do |spec|
-      util_make_exec spec
-    end
-  end
-
-  ##
-  # Creates the following instance variables:
-  #
-  # @spec::
-  #   a spec named 'a', intended for regular installs
-  # @user_spec::
-  #   a spec named 'b', intended for user installs
-  #
-  # @gem::
-  #   the path to a built gem from @spec
-  # @user_gem::
-  #   the path to a built gem from @user_spec
-  #
-  # And returns a Gem::Installer for the @user_spec that installs into Gem.user_dir
-
-  def setup_base_user_installer
-    @user_spec = quick_gem 'b' do |spec|
-      util_make_exec spec
-    end
-
-    util_build_gem @user_spec
-
-    @user_gem = @user_spec.cache_file
-
-    util_installer @user_spec, Gem.user_dir, :user
-  end
-
-  ##
-  # Sets up the base @gem, builds it and returns an installer for it.
-  #
-  def util_setup_installer(&block)
-    @gem = setup_base_gem
-
-    util_setup_gem(&block)
-  end
-
-  ##
-  # Builds the @spec gem and returns an installer for it.  The built gem
-  # includes:
-  #
-  #   bin/executable
-  #   lib/code.rb
-  #   ext/a/mkrf_conf.rb
-
-  def util_setup_gem(ui = @ui, force = true)
-    @spec.files << File.join('lib', 'code.rb')
-    @spec.extensions << File.join('ext', 'a', 'mkrf_conf.rb')
-
-    Dir.chdir @tempdir do
-      FileUtils.mkdir_p 'bin'
-      FileUtils.mkdir_p 'lib'
-      FileUtils.mkdir_p File.join('ext', 'a')
-
-      File.open File.join('bin', 'executable'), 'w' do |f|
-        f.puts "raise 'ran executable'"
-      end
-
-      File.open File.join('lib', 'code.rb'), 'w' do |f|
-        f.puts '1'
-      end
-
-      File.open File.join('ext', 'a', 'mkrf_conf.rb'), 'w' do |f|
-        f << <<-EOF
-          File.open 'Rakefile', 'w' do |rf| rf.puts "task :default" end
-        EOF
-      end
-
-      yield @spec if block_given?
-
-      use_ui ui do
-        FileUtils.rm_f @gem
-
-        @gem = Gem::Package.build @spec
-      end
-    end
-
-    Gem::Installer.at @gem, :force => force
-  end
-
-  ##
-  # Creates an installer for +spec+ that will install into +gem_home+.  If
-  # +user+ is true a user-install will be performed.
-
-  def util_installer(spec, gem_home, user=false, force=true)
-    Gem::Installer.at(spec.cache_file,
-                       :install_dir => gem_home,
-                       :user_install => user,
-                       :force => force)
-  end
-
-  @@symlink_supported = nil
-
-  # This is needed for Windows environment without symlink support enabled (the default
-  # for non admin) to be able to skip test for features using symlinks.
-  def symlink_supported?
-    if @@symlink_supported.nil?
-      begin
-        File.symlink("", "")
-      rescue Errno::ENOENT, Errno::EEXIST
-        @@symlink_supported = true
-      rescue NotImplementedError, SystemCallError
-        @@symlink_supported = false
-      end
-    end
-    @@symlink_supported
-  end
-end
diff --git a/lib/rubygems/package/tar_test_case.rb b/lib/rubygems/package/tar_test_case.rb
deleted file mode 100644
index 1161d0a..0000000
--- a/lib/rubygems/package/tar_test_case.rb
+++ /dev/null
@@ -1,139 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-# frozen_string_literal: true
-require 'rubygems/test_case'
-require 'rubygems/package'
-
-##
-# A test case for Gem::Package::Tar* classes
-
-class Gem::Package::TarTestCase < Gem::TestCase
-  def ASCIIZ(str, length)
-    str + "\0" * (length - str.length)
-  end
-
-  def SP(s)
-    s + " "
-  end
-
-  def SP_Z(s)
-    s + " \0"
-  end
-
-  def Z(s)
-    s + "\0"
-  end
-
-  def assert_headers_equal(expected, actual)
-    expected = expected.to_s unless String === expected
-    actual = actual.to_s unless String === actual
-
-    fields = %w[
-      name 100
-      mode 8
-      uid 8
-      gid 8
-      size 12
-      mtime 12
-      checksum 8
-      typeflag 1
-      linkname 100
-      magic 6
-      version 2
-      uname 32
-      gname 32
-      devmajor 8
-      devminor 8
-      prefix 155
-    ]
-
-    offset = 0
-
-    until fields.empty? do
-      name = fields.shift
-      length = fields.shift.to_i
-
-      if name == "checksum"
-        chksum_off = offset
-        offset += length
-        next
-      end
-
-      assert_equal expected[offset, length], actual[offset, length],
-                   "Field #{name} of the tar header differs."
-
-      offset += length
-    end
-
-    assert_equal expected[chksum_off, 8], actual[chksum_off, 8]
-  end
-
-  def calc_checksum(header)
-    sum = header.unpack("C*").inject{|s,a| s + a }
-    SP(Z(to_oct(sum, 6)))
-  end
-
-  def header(type, fname, dname, length, mode, mtime, checksum = nil, linkname = "")
-    checksum ||= " " * 8
-
-    arr = [                  # struct tarfile_entry_posix
-      ASCIIZ(fname, 100),    # char name[100];     ASCII + (Z unless filled)
-      Z(to_oct(mode, 7)),    # char mode[8];       0 padded, octal null
-      Z(to_oct(0, 7)),       # char uid[8];        ditto
-      Z(to_oct(0, 7)),       # char gid[8];        ditto
-      Z(to_oct(length, 11)), # char size[12];      0 padded, octal, null
-      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"
-      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
-      ASCIIZ("wheel", 32), (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]