diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-13 16:05:37 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-13 16:05:37 +0000 |
commit | fb2008a73a46066481b77f53c62de8630a153efe (patch) | |
tree | 1fa27793771e99416d853d8f647d329827cc514c /test/ruby | |
parent | 2e8f953d68275b3af4058a8335423b3d5c6d87a6 (diff) | |
download | ruby-fb2008a73a46066481b77f53c62de8630a153efe.tar.gz |
* test/lib/envutil.rb: Moved from test/ruby/.
* test/lib/find_executable.rb: Ditto.
* test/lib/memory_status.rb: Ditto.
* test/lib/test/unit.rb: require envutil.
* test/: Don't require envutil in test files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
64 files changed, 2 insertions, 794 deletions
diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb deleted file mode 100644 index 6b6d91833f..0000000000 --- a/test/ruby/envutil.rb +++ /dev/null @@ -1,597 +0,0 @@ -# -*- coding: us-ascii -*- -require "open3" -require "timeout" -require "test/unit" -require_relative "find_executable" - -module EnvUtil - def rubybin - if ruby = ENV["RUBY"] - return ruby - end - ruby = "ruby" - exeext = RbConfig::CONFIG["EXEEXT"] - rubyexe = (ruby + exeext if exeext and !exeext.empty?) - 3.times do - if File.exist? ruby and File.executable? ruby and !File.directory? ruby - return File.expand_path(ruby) - end - if rubyexe and File.exist? rubyexe and File.executable? rubyexe - return File.expand_path(rubyexe) - end - ruby = File.join("..", ruby) - end - if defined?(RbConfig.ruby) - RbConfig.ruby - else - "ruby" - end - end - module_function :rubybin - - LANG_ENVS = %w"LANG LC_ALL LC_CTYPE" - - def invoke_ruby(args, stdin_data = "", capture_stdout = false, capture_stderr = false, - encoding: nil, timeout: 10, reprieve: 1, - stdout_filter: nil, stderr_filter: nil, - rubybin: EnvUtil.rubybin, - **opt) - in_c, in_p = IO.pipe - out_p, out_c = IO.pipe if capture_stdout - err_p, err_c = IO.pipe if capture_stderr && capture_stderr != :merge_to_stdout - opt[:in] = in_c - opt[:out] = out_c if capture_stdout - opt[:err] = capture_stderr == :merge_to_stdout ? out_c : err_c if capture_stderr - if encoding - out_p.set_encoding(encoding) if out_p - err_p.set_encoding(encoding) if err_p - end - c = "C" - child_env = {} - LANG_ENVS.each {|lc| child_env[lc] = c} - if Array === args and Hash === args.first - child_env.update(args.shift) - end - args = [args] if args.kind_of?(String) - pid = spawn(child_env, rubybin, *args, **opt) - in_c.close - out_c.close if capture_stdout - err_c.close if capture_stderr && capture_stderr != :merge_to_stdout - if block_given? - return yield in_p, out_p, err_p, pid - else - th_stdout = Thread.new { out_p.read } if capture_stdout - th_stderr = Thread.new { err_p.read } if capture_stderr && capture_stderr != :merge_to_stdout - in_p.write stdin_data.to_str unless stdin_data.empty? - in_p.close - if (!th_stdout || th_stdout.join(timeout)) && (!th_stderr || th_stderr.join(timeout)) - stdout = th_stdout.value if capture_stdout - stderr = th_stderr.value if capture_stderr && capture_stderr != :merge_to_stdout - else - signal = /mswin|mingw/ =~ RUBY_PLATFORM ? :KILL : :TERM - begin - Process.kill signal, pid - Timeout.timeout((reprieve unless signal == :KILL)) do - Process.wait(pid) - end - rescue Errno::ESRCH - break - rescue Timeout::Error - raise if signal == :KILL - signal = :KILL - else - break - end while true - bt = caller_locations - raise Timeout::Error, "execution of #{bt.shift.label} expired", bt.map(&:to_s) - end - out_p.close if capture_stdout - err_p.close if capture_stderr && capture_stderr != :merge_to_stdout - Process.wait pid - status = $? - stdout = stdout_filter.call(stdout) if stdout_filter - stderr = stderr_filter.call(stderr) if stderr_filter - return stdout, stderr, status - end - ensure - [th_stdout, th_stderr].each do |th| - th.kill if th - end - [in_c, in_p, out_c, out_p, err_c, err_p].each do |io| - io.close if io && !io.closed? - end - [th_stdout, th_stderr].each do |th| - th.join if th - end - end - module_function :invoke_ruby - - alias rubyexec invoke_ruby - class << self - alias rubyexec invoke_ruby - end - - def verbose_warning - class << (stderr = "") - alias write << - end - stderr, $stderr, verbose, $VERBOSE = $stderr, stderr, $VERBOSE, true - yield stderr - return $stderr - ensure - stderr, $stderr, $VERBOSE = $stderr, stderr, verbose - end - module_function :verbose_warning - - def default_warning - verbose, $VERBOSE = $VERBOSE, false - yield - ensure - $VERBOSE = verbose - end - module_function :default_warning - - def suppress_warning - verbose, $VERBOSE = $VERBOSE, nil - yield - ensure - $VERBOSE = verbose - end - module_function :suppress_warning - - def under_gc_stress(stress = true) - stress, GC.stress = GC.stress, stress - yield - ensure - GC.stress = stress - end - module_function :under_gc_stress - - def with_default_external(enc) - verbose, $VERBOSE = $VERBOSE, nil - origenc, Encoding.default_external = Encoding.default_external, enc - $VERBOSE = verbose - yield - ensure - verbose, $VERBOSE = $VERBOSE, nil - Encoding.default_external = origenc - $VERBOSE = verbose - end - module_function :with_default_external - - def with_default_internal(enc) - verbose, $VERBOSE = $VERBOSE, nil - origenc, Encoding.default_internal = Encoding.default_internal, enc - $VERBOSE = verbose - yield - ensure - verbose, $VERBOSE = $VERBOSE, nil - Encoding.default_internal = origenc - $VERBOSE = verbose - end - module_function :with_default_internal - - def labeled_module(name, &block) - Module.new do - singleton_class.class_eval {define_method(:to_s) {name}; alias inspect to_s} - class_eval(&block) if block - end - end - module_function :labeled_module - - def labeled_class(name, superclass = Object, &block) - Class.new(superclass) do - singleton_class.class_eval {define_method(:to_s) {name}; alias inspect to_s} - class_eval(&block) if block - end - end - module_function :labeled_class - - if /darwin/ =~ RUBY_PLATFORM - DIAGNOSTIC_REPORTS_PATH = File.expand_path("~/Library/Logs/DiagnosticReports") - DIAGNOSTIC_REPORTS_TIMEFORMAT = '%Y-%m-%d-%H%M%S' - def self.diagnostic_reports(signame, cmd, pid, now) - return unless %w[ABRT QUIT SEGV ILL].include?(signame) - cmd = File.basename(cmd) - path = DIAGNOSTIC_REPORTS_PATH - timeformat = DIAGNOSTIC_REPORTS_TIMEFORMAT - pat = "#{path}/#{cmd}_#{now.strftime(timeformat)}[-_]*.crash" - first = true - 30.times do - first ? (first = false) : sleep(0.1) - Dir.glob(pat) do |name| - log = File.read(name) rescue next - if /\AProcess:\s+#{cmd} \[#{pid}\]$/ =~ log - File.unlink(name) - File.unlink("#{path}/.#{File.basename(name)}.plist") rescue nil - return log - end - end - end - nil - end - else - def self.diagnostic_reports(signame, cmd, pid, now) - end - end -end - -module Test - module Unit - module Assertions - public - def assert_valid_syntax(code, fname = caller_locations(1, 1)[0], mesg = fname.to_s, verbose: nil) - code = code.dup.force_encoding("ascii-8bit") - code.sub!(/\A(?:\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) { - "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n" - } - code.force_encoding(Encoding::UTF_8) - verbose, $VERBOSE = $VERBOSE, verbose - yield if defined?(yield) - case - when Array === fname - fname, line = *fname - when defined?(fname.path) && defined?(fname.lineno) - fname, line = fname.path, fname.lineno - else - line = 0 - end - assert_nothing_raised(SyntaxError, mesg) do - assert_equal(:ok, catch {|tag| eval(code, binding, fname, line)}, mesg) - end - ensure - $VERBOSE = verbose - end - - def assert_syntax_error(code, error, fname = caller_locations(1, 1)[0], mesg = fname.to_s) - code = code.dup.force_encoding("ascii-8bit") - code.sub!(/\A(?:\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) { - "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ng}\n" - } - code.force_encoding("us-ascii") - verbose, $VERBOSE = $VERBOSE, nil - yield if defined?(yield) - case - when Array === fname - fname, line = *fname - when defined?(fname.path) && defined?(fname.lineno) - fname, line = fname.path, fname.lineno - else - line = 0 - end - e = assert_raise(SyntaxError, mesg) do - catch {|tag| eval(code, binding, fname, line)} - end - assert_match(error, e.message, mesg) - ensure - $VERBOSE = verbose - end - - def assert_normal_exit(testsrc, message = '', child_env: nil, **opt) - assert_valid_syntax(testsrc, caller_locations(1, 1)[0]) - if child_env - child_env = [child_env] - else - child_env = [] - end - out, _, status = EnvUtil.invoke_ruby(child_env + %W'-W0', testsrc, true, :merge_to_stdout, **opt) - assert !status.signaled?, FailDesc[status, message, out] - end - - FailDesc = proc do |status, message = "", out = ""| - pid = status.pid - now = Time.now - faildesc = proc do - if signo = status.termsig - signame = Signal.signame(signo) - sigdesc = "signal #{signo}" - end - log = EnvUtil.diagnostic_reports(signame, EnvUtil.rubybin, pid, now) - if signame - sigdesc = "SIG#{signame} (#{sigdesc})" - end - if status.coredump? - sigdesc << " (core dumped)" - end - full_message = '' - if message and !message.empty? - full_message << message << "\n" - end - full_message << "pid #{pid} killed by #{sigdesc}" - if out and !out.empty? - full_message << "\n#{out.gsub(/^/, '| ')}" - full_message << "\n" if /\n\z/ !~ full_message - end - if log - full_message << "\n#{log.gsub(/^/, '| ')}" - end - full_message - end - faildesc - end - - def assert_in_out_err(args, test_stdin = "", test_stdout = [], test_stderr = [], message = nil, **opt) - stdout, stderr, status = EnvUtil.invoke_ruby(args, test_stdin, true, true, **opt) - if signo = status.termsig - sleep 0.1 - EnvUtil.diagnostic_reports(Signal.signame(signo), EnvUtil.rubybin, status.pid, Time.now) - end - if block_given? - raise "test_stdout ignored, use block only or without block" if test_stdout != [] - raise "test_stderr ignored, use block only or without block" if test_stderr != [] - yield(stdout.lines.map {|l| l.chomp }, stderr.lines.map {|l| l.chomp }, status) - else - errs = [] - [[test_stdout, stdout], [test_stderr, stderr]].each do |exp, act| - begin - if exp.is_a?(Regexp) - assert_match(exp, act, message) - else - assert_equal(exp, act.lines.map {|l| l.chomp }, message) - end - rescue MiniTest::Assertion => e - errs << e.message - message = nil - end - end - raise MiniTest::Assertion, errs.join("\n---\n") unless errs.empty? - status - end - end - - def assert_ruby_status(args, test_stdin="", message=nil, **opt) - out, _, status = EnvUtil.invoke_ruby(args, test_stdin, true, :merge_to_stdout, **opt) - assert(!status.signaled?, FailDesc[status, message, out]) - message ||= "ruby exit status is not success:" - assert(status.success?, "#{message} (#{status.inspect})") - end - - ABORT_SIGNALS = Signal.list.values_at(*%w"ILL ABRT BUS SEGV") - - def assert_separately(args, file = nil, line = nil, src, ignore_stderr: nil, **opt) - unless file and line - loc, = caller_locations(1,1) - file ||= loc.path - line ||= loc.lineno - end - line -= 5 # lines until src - src = <<eom -# -*- coding: #{src.encoding}; -*- - require #{__dir__.dump}'/envutil';include Test::Unit::Assertions - END { - puts [Marshal.dump($!)].pack('m'), "assertions=\#{self._assertions}" - } -#{src} - class Test::Unit::Runner - @@stop_auto_run = true - end -eom - args = args.dup - args.insert((Hash === args.first ? 1 : 0), "--disable=gems", *$:.map {|l| "-I#{l}"}) - stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, **opt) - abort = status.coredump? || (status.signaled? && ABORT_SIGNALS.include?(status.termsig)) - assert(!abort, FailDesc[status, nil, stderr]) - self._assertions += stdout[/^assertions=(\d+)/, 1].to_i - begin - res = Marshal.load(stdout.unpack("m")[0]) - rescue => marshal_error - ignore_stderr = nil - end - if res - if bt = res.backtrace - bt.each do |l| - l.sub!(/\A-:(\d+)/){"#{file}:#{line + $1.to_i}"} - end - bt.concat(caller) - else - res.set_backtrace(caller) - end - raise res - end - - # really is it succeed? - unless ignore_stderr - # the body of assert_separately must not output anything to detect error - assert_equal("", stderr, "assert_separately failed with error message") - end - assert_equal(0, status, "assert_separately failed: '#{stderr}'") - raise marshal_error if marshal_error - end - - def assert_warning(pat, msg = nil) - stderr = EnvUtil.verbose_warning { yield } - msg = message(msg) {diff pat, stderr} - assert(pat === stderr, msg) - end - - def assert_warn(*args) - assert_warning(*args) {$VERBOSE = false; yield} - end - - case RUBY_PLATFORM - when /solaris2\.(?:9|[1-9][0-9])/i # Solaris 9, 10, 11,... - bits = [nil].pack('p').size == 8 ? 64 : 32 - if ENV['LD_PRELOAD'].to_s.empty? && - ENV["LD_PRELOAD_#{bits}"].to_s.empty? && - (ENV['UMEM_OPTIONS'].to_s.empty? || - ENV['UMEM_OPTIONS'] == 'backend=mmap') then - envs = { - 'LD_PRELOAD' => 'libumem.so', - 'UMEM_OPTIONS' => 'backend=mmap' - } - args = [ - envs, - "--disable=gems", - "-v", "-", - ] - _, err, status = EnvUtil.invoke_ruby(args, "exit(0)", true, true) - if status.exitstatus == 0 && err.to_s.empty? then - NO_MEMORY_LEAK_ENVS = envs - end - end - end #case RUBY_PLATFORM - - def assert_no_memory_leak(args, prepare, code, message=nil, limit: 1.5, rss: false, **opt) - require_relative 'memory_status' - token = "\e[7;1m#{$$.to_s}:#{Time.now.strftime('%s.%L')}:#{rand(0x10000).to_s(16)}:\e[m" - token_dump = token.dump - token_re = Regexp.quote(token) - envs = args.shift if Array === args and Hash === args.first - args = [ - "--disable=gems", - "-r", File.expand_path("../memory_status", __FILE__), - *args, - "-v", "-", - ] - if defined? NO_MEMORY_LEAK_ENVS then - envs ||= {} - newenvs = envs.merge(NO_MEMORY_LEAK_ENVS) { |_, _, _| break } - envs = newenvs if newenvs - end - args.unshift(envs) if envs - cmd = [ - 'END {STDERR.puts '"#{token_dump}"'"FINAL=#{Memory::Status.new}"}', - prepare, - 'STDERR.puts('"#{token_dump}"'"START=#{$initial_status = Memory::Status.new}")', - '$initial_size = $initial_status.size', - code, - 'GC.start', - ].join("\n") - _, err, status = EnvUtil.invoke_ruby(args, cmd, true, true, **opt) - before = err.sub!(/^#{token_re}START=(\{.*\})\n/, '') && Memory::Status.parse($1) - after = err.sub!(/^#{token_re}FINAL=(\{.*\})\n/, '') && Memory::Status.parse($1) - assert_equal([true, ""], [status.success?, err], message) - ([:size, (rss && :rss)] & after.members).each do |n| - b = before[n] - a = after[n] - next unless a > 0 and b > 0 - assert_operator(a.fdiv(b), :<, limit, message(message) {"#{n}: #{b} => #{a}"}) - end - end - - def assert_is_minus_zero(f) - assert(1.0/f == -Float::INFINITY, "#{f} is not -0.0") - end - - def assert_file - AssertFile - end - - # pattern_list is an array which contains regexp and :*. - # :* means any sequence. - # - # pattern_list is anchored. - # Use [:*, regexp, :*] for non-anchored match. - def assert_pattern_list(pattern_list, actual, message=nil) - rest = actual - anchored = true - pattern_list.each_with_index {|pattern, i| - if pattern == :* - anchored = false - else - if anchored - match = /\A#{pattern}/.match(rest) - else - match = pattern.match(rest) - end - unless match - msg = message(msg) { - expect_msg = "Expected #{mu_pp pattern}\n" - if /\n[^\n]/ =~ rest - actual_mesg = "to match\n" - rest.scan(/.*\n+/) { - actual_mesg << ' ' << $&.inspect << "+\n" - } - actual_mesg.sub!(/\+\n\z/, '') - else - actual_mesg = "to match #{mu_pp rest}" - end - actual_mesg << "\nafter #{i} patterns with #{actual.length - rest.length} characters" - expect_msg + actual_mesg - } - assert false, msg - end - rest = match.post_match - anchored = true - end - } - if anchored - assert_equal("", rest) - end - end - - # threads should respond to shift method. - # Array can be used. - def assert_join_threads(threads, message = nil) - errs = [] - values = [] - while th = threads.shift - begin - values << th.value - rescue Exception - errs << [th, $!] - end - end - if !errs.empty? - msg = "exceptions on #{errs.length} threads:\n" + - errs.map {|t, err| - "#{t.inspect}:\n" + - err.backtrace.map.with_index {|line, i| - if i == 0 - "#{line}: #{err.message} (#{err.class})" - else - "\tfrom #{line}" - end - }.join("\n") - }.join("\n---\n") - if message - msg = "#{message}\n#{msg}" - end - raise MiniTest::Assertion, msg - end - values - end - - class << (AssertFile = Struct.new(:failure_message).new) - include Assertions - def assert_file_predicate(predicate, *args) - if /\Anot_/ =~ predicate - predicate = $' - neg = " not" - end - result = File.__send__(predicate, *args) - result = !result if neg - mesg = "Expected file " << args.shift.inspect - mesg << "#{neg} to be #{predicate}" - mesg << mu_pp(args).sub(/\A\[(.*)\]\z/m, '(\1)') unless args.empty? - mesg << " #{failure_message}" if failure_message - assert(result, mesg) - end - alias method_missing assert_file_predicate - - def for(message) - clone.tap {|a| a.failure_message = message} - end - end - end - end -end - -begin - require 'rbconfig' -rescue LoadError -else - module RbConfig - @ruby = EnvUtil.rubybin - class << self - undef ruby if method_defined?(:ruby) - attr_reader :ruby - end - dir = File.dirname(ruby) - name = File.basename(ruby, CONFIG['EXEEXT']) - CONFIG['bindir'] = dir - CONFIG['ruby_install_name'] = name - CONFIG['RUBY_INSTALL_NAME'] = name - Gem::ConfigMap[:bindir] = dir if defined?(Gem::ConfigMap) - end -end diff --git a/test/ruby/find_executable.rb b/test/ruby/find_executable.rb deleted file mode 100644 index 4ba9a0533e..0000000000 --- a/test/ruby/find_executable.rb +++ /dev/null @@ -1,21 +0,0 @@ -require "rbconfig" - -module EnvUtil - def find_executable(cmd, *args) - exts = RbConfig::CONFIG["EXECUTABLE_EXTS"].split | [RbConfig::CONFIG["EXEEXT"]] - ENV["PATH"].split(File::PATH_SEPARATOR).each do |path| - next if path.empty? - path = File.join(path, cmd) - exts.each do |ext| - cmdline = [path + ext, *args] - begin - return cmdline if yield(IO.popen(cmdline, "r", err: [:child, :out], &:read)) - rescue - next - end - end - end - nil - end - module_function :find_executable -end diff --git a/test/ruby/memory_status.rb b/test/ruby/memory_status.rb deleted file mode 100644 index 6c6b3f8934..0000000000 --- a/test/ruby/memory_status.rb +++ /dev/null @@ -1,111 +0,0 @@ -module Memory - keys = [] - vals = [] - - case - when File.exist?(procfile = "/proc/self/status") && (pat = /^Vm(\w+):\s+(\d+)/) =~ File.binread(procfile) - PROC_FILE = procfile - VM_PAT = pat - def self.read_status - IO.foreach(PROC_FILE, encoding: Encoding::ASCII_8BIT) do |l| - yield($1.downcase.intern, $2.to_i * 1024) if VM_PAT =~ l - end - end - - read_status {|k, v| keys << k; vals << v} - - when /mswin|mingw/ =~ RUBY_PLATFORM - require 'fiddle/import' - require 'fiddle/types' - - module Win32 - extend Fiddle::Importer - dlload "kernel32.dll", "psapi.dll" - include Fiddle::Win32Types - typealias "SIZE_T", "size_t" - - PROCESS_MEMORY_COUNTERS = struct [ - "DWORD cb", - "DWORD PageFaultCount", - "SIZE_T PeakWorkingSetSize", - "SIZE_T WorkingSetSize", - "SIZE_T QuotaPeakPagedPoolUsage", - "SIZE_T QuotaPagedPoolUsage", - "SIZE_T QuotaPeakNonPagedPoolUsage", - "SIZE_T QuotaNonPagedPoolUsage", - "SIZE_T PagefileUsage", - "SIZE_T PeakPagefileUsage", - ] - - typealias "PPROCESS_MEMORY_COUNTERS", "PROCESS_MEMORY_COUNTERS*" - - extern "HANDLE GetCurrentProcess()", :stdcall - extern "BOOL GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD)", :stdcall - - module_function - def memory_info - size = PROCESS_MEMORY_COUNTERS.size - data = PROCESS_MEMORY_COUNTERS.malloc - data.cb = size - data if GetProcessMemoryInfo(GetCurrentProcess(), data, size) - end - end - - keys << :peak << :size - def self.read_status - if info = Win32.memory_info - yield :peak, info.PeakPagefileUsage - yield :size, info.PagefileUsage - end - end - else - PAT = /^\s*(\d+)\s+(\d+)$/ - require_relative 'find_executable' - if PSCMD = EnvUtil.find_executable("ps", "-ovsz=", "-orss=", "-p", $$.to_s) {|out| PAT =~ out} - PSCMD.pop - end - raise MiniTest::Skip, "ps command not found" unless PSCMD - - keys << :size << :rss - def self.read_status - if PAT =~ IO.popen(PSCMD + [$$.to_s], "r", err: [:child, :out], &:read) - yield :size, $1.to_i*1024 - yield :rss, $2.to_i*1024 - end - end - end - - Status = Struct.new(*keys) - - class Status - def _update - Memory.read_status do |key, val| - self[key] = val - end - end - end - - class Status - Header = members.map {|k| k.to_s.upcase.rjust(6)}.join('') - Format = "%6d" - - def initialize - _update - end - - def to_s - status = each_pair.map {|n,v| - "#{n}:#{v}" - } - "{#{status.join(",")}}" - end - - def self.parse(str) - status = allocate - str.scan(/(?:\A\{|\G,)(#{members.join('|')}):(\d+)(?=,|\}\z)/) do - status[$1] = $2.to_i - end - status - end - end -end diff --git a/test/ruby/test_alias.rb b/test/ruby/test_alias.rb index dec61f6d63..8901fc243c 100644 --- a/test/ruby/test_alias.rb +++ b/test/ruby/test_alias.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestAlias < Test::Unit::TestCase class Alias0 diff --git a/test/ruby/test_argf.rb b/test/ruby/test_argf.rb index 95d694116f..6975b83a28 100644 --- a/test/ruby/test_argf.rb +++ b/test/ruby/test_argf.rb @@ -3,7 +3,6 @@ require 'timeout' require 'tmpdir' require 'tempfile' require 'fileutils' -require_relative 'envutil' class TestArgf < Test::Unit::TestCase def setup diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index d728bb78f0..4116736fcf 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -1,6 +1,5 @@ # coding: US-ASCII require 'test/unit' -require_relative 'envutil' class TestArray < Test::Unit::TestCase def setup diff --git a/test/ruby/test_autoload.rb b/test/ruby/test_autoload.rb index 0dbf613fea..b2b969a749 100644 --- a/test/ruby/test_autoload.rb +++ b/test/ruby/test_autoload.rb @@ -1,7 +1,6 @@ require 'test/unit' require 'tempfile' require 'thread' -require_relative 'envutil' class TestAutoload < Test::Unit::TestCase def test_autoload_so diff --git a/test/ruby/test_beginendblock.rb b/test/ruby/test_beginendblock.rb index d15f21060d..9c9d6b5e61 100644 --- a/test/ruby/test_beginendblock.rb +++ b/test/ruby/test_beginendblock.rb @@ -1,7 +1,6 @@ require 'test/unit' require 'tempfile' require 'timeout' -require_relative 'envutil' class TestBeginEndBlock < Test::Unit::TestCase DIR = File.dirname(File.expand_path(__FILE__)) diff --git a/test/ruby/test_case.rb b/test/ruby/test_case.rb index f17f9aad9b..f20d1dfd7e 100644 --- a/test/ruby/test_case.rb +++ b/test/ruby/test_case.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil.rb' class TestCase < Test::Unit::TestCase def test_case diff --git a/test/ruby/test_class.rb b/test/ruby/test_class.rb index 293524b079..e17f56f913 100644 --- a/test/ruby/test_class.rb +++ b/test/ruby/test_class.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestClass < Test::Unit::TestCase # ------------------ diff --git a/test/ruby/test_comparable.rb b/test/ruby/test_comparable.rb index 1912472423..efa630f8d9 100644 --- a/test/ruby/test_comparable.rb +++ b/test/ruby/test_comparable.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestComparable < Test::Unit::TestCase def setup diff --git a/test/ruby/test_const.rb b/test/ruby/test_const.rb index c4a4d93249..8b3acfb683 100644 --- a/test/ruby/test_const.rb +++ b/test/ruby/test_const.rb @@ -1,6 +1,5 @@ # -*- coding: us-ascii -*- require 'test/unit' -require_relative 'envutil' class TestConst < Test::Unit::TestCase TEST1 = 1 diff --git a/test/ruby/test_continuation.rb b/test/ruby/test_continuation.rb index 52d8de482c..81125183ff 100644 --- a/test/ruby/test_continuation.rb +++ b/test/ruby/test_continuation.rb @@ -1,7 +1,6 @@ require 'test/unit' require 'continuation' require 'fiber' -require_relative 'envutil' class TestContinuation < Test::Unit::TestCase def test_create diff --git a/test/ruby/test_defined.rb b/test/ruby/test_defined.rb index 657f7934f8..d5e84185cc 100644 --- a/test/ruby/test_defined.rb +++ b/test/ruby/test_defined.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestDefined < Test::Unit::TestCase class Foo diff --git a/test/ruby/test_dir_m17n.rb b/test/ruby/test_dir_m17n.rb index 091c12c797..0547f2e62e 100644 --- a/test/ruby/test_dir_m17n.rb +++ b/test/ruby/test_dir_m17n.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'tmpdir' -require_relative 'envutil' class TestDir_M17N < Test::Unit::TestCase def with_tmpdir diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb index 6bfd6ba136..f423ebfc9e 100644 --- a/test/ruby/test_econv.rb +++ b/test/ruby/test_econv.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestEncodingConverter < Test::Unit::TestCase def check_ec(edst, esrc, eres, dst, src, ec, off, len, opts=nil) diff --git a/test/ruby/test_encoding.rb b/test/ruby/test_encoding.rb index e3b15eb277..63c56e2cd3 100644 --- a/test/ruby/test_encoding.rb +++ b/test/ruby/test_encoding.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestEncoding < Test::Unit::TestCase diff --git a/test/ruby/test_enumerator.rb b/test/ruby/test_enumerator.rb index f2a7afa3c1..b5ced3b12c 100644 --- a/test/ruby/test_enumerator.rb +++ b/test/ruby/test_enumerator.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestEnumerator < Test::Unit::TestCase def setup diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb index 52cc487858..88a7631863 100644 --- a/test/ruby/test_env.rb +++ b/test/ruby/test_env.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestEnv < Test::Unit::TestCase IGNORE_CASE = /bccwin|mswin|mingw/ =~ RUBY_PLATFORM diff --git a/test/ruby/test_eval.rb b/test/ruby/test_eval.rb index 315cc72599..1ad186f869 100644 --- a/test/ruby/test_eval.rb +++ b/test/ruby/test_eval.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestEval < Test::Unit::TestCase diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index bb291c08d4..4659def1ea 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'tempfile' -require_relative 'envutil' class TestException < Test::Unit::TestCase def test_exception_rescued diff --git a/test/ruby/test_fiber.rb b/test/ruby/test_fiber.rb index ed071acb39..4acfb139e0 100644 --- a/test/ruby/test_fiber.rb +++ b/test/ruby/test_fiber.rb @@ -2,7 +2,6 @@ require 'test/unit' require 'fiber' require 'continuation' require 'tmpdir' -require_relative './envutil' class TestFiber < Test::Unit::TestCase def test_normal diff --git a/test/ruby/test_file.rb b/test/ruby/test_file.rb index 974752c853..0825c5dd7b 100644 --- a/test/ruby/test_file.rb +++ b/test/ruby/test_file.rb @@ -1,7 +1,6 @@ require 'test/unit' require 'tempfile' require "thread" -require_relative 'envutil' require_relative 'ut_eof' class TestFile < Test::Unit::TestCase diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb index bd69addef6..59ed117db8 100644 --- a/test/ruby/test_file_exhaustive.rb +++ b/test/ruby/test_file_exhaustive.rb @@ -1,7 +1,6 @@ require "test/unit" require "fileutils" require "tmpdir" -require_relative "envutil" class TestFileExhaustive < Test::Unit::TestCase DRIVE = Dir.pwd[%r'\A(?:[a-z]:|//[^/]+/[^/]+)'i] diff --git a/test/ruby/test_flip.rb b/test/ruby/test_flip.rb index fc62d93ae6..84f7bf0562 100644 --- a/test/ruby/test_flip.rb +++ b/test/ruby/test_flip.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestFlip < Test::Unit::TestCase def test_hidden_key diff --git a/test/ruby/test_float.rb b/test/ruby/test_float.rb index 30725e8395..ac2d84352b 100644 --- a/test/ruby/test_float.rb +++ b/test/ruby/test_float.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestFloat < Test::Unit::TestCase include EnvUtil diff --git a/test/ruby/test_fnmatch.rb b/test/ruby/test_fnmatch.rb index 15e5d79e35..a0eab545e4 100644 --- a/test/ruby/test_fnmatch.rb +++ b/test/ruby/test_fnmatch.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestFnmatch < Test::Unit::TestCase diff --git a/test/ruby/test_gc.rb b/test/ruby/test_gc.rb index 6d1f93c2c6..9baf429279 100644 --- a/test/ruby/test_gc.rb +++ b/test/ruby/test_gc.rb @@ -1,7 +1,5 @@ require 'test/unit' -require_relative "envutil" - class TestGc < Test::Unit::TestCase class S def initialize(a) diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index 4431552dd9..da07df94b6 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -1,7 +1,6 @@ # -*- coding: us-ascii -*- require 'test/unit' require 'continuation' -require_relative 'envutil' class TestHash < Test::Unit::TestCase diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index af77da2777..2d8072a830 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -8,7 +8,6 @@ require 'stringio' require 'timeout' require 'tempfile' require 'weakref' -require_relative 'envutil' class TestIO < Test::Unit::TestCase module Feature diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb index de64a78f83..97512f0d61 100644 --- a/test/ruby/test_io_m17n.rb +++ b/test/ruby/test_io_m17n.rb @@ -2,7 +2,6 @@ require 'test/unit' require 'tmpdir' require 'timeout' -require_relative 'envutil' class TestIO_M17N < Test::Unit::TestCase ENCS = [ diff --git a/test/ruby/test_iseq.rb b/test/ruby/test_iseq.rb index 94a814ce1b..79c41bb900 100644 --- a/test/ruby/test_iseq.rb +++ b/test/ruby/test_iseq.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestISeq < Test::Unit::TestCase ISeq = RubyVM::InstructionSequence diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb index 95cbcc209c..d71108fd6f 100644 --- a/test/ruby/test_keyword.rb +++ b/test/ruby/test_keyword.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestKeywordArguments < Test::Unit::TestCase def f1(str: "foo", num: 424242) diff --git a/test/ruby/test_lazy_enumerator.rb b/test/ruby/test_lazy_enumerator.rb index 7bf9903ddc..75f24580ca 100644 --- a/test/ruby/test_lazy_enumerator.rb +++ b/test/ruby/test_lazy_enumerator.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestLazyEnumerator < Test::Unit::TestCase class Step diff --git a/test/ruby/test_literal.rb b/test/ruby/test_literal.rb index e4c35e03d9..036be5f470 100644 --- a/test/ruby/test_literal.rb +++ b/test/ruby/test_literal.rb @@ -1,6 +1,5 @@ # -*- coding: us-ascii -*- require 'test/unit' -require_relative 'envutil' class TestRubyLiteral < Test::Unit::TestCase diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb index 6537b070c5..bbaf31f52a 100644 --- a/test/ruby/test_m17n.rb +++ b/test/ruby/test_m17n.rb @@ -1,6 +1,5 @@ # coding: US-ASCII require 'test/unit' -require_relative 'envutil' class TestM17N < Test::Unit::TestCase def assert_encoding(encname, actual, message=nil) diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb index 97cc43071a..9fc2ab10eb 100644 --- a/test/ruby/test_method.rb +++ b/test/ruby/test_method.rb @@ -1,6 +1,5 @@ # -*- coding: us-ascii -*- require 'test/unit' -require_relative 'envutil' class TestMethod < Test::Unit::TestCase def setup diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index 324d45fb7a..5b1f787be0 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'pp' -require_relative 'envutil' $m0 = Module.nesting diff --git a/test/ruby/test_numeric.rb b/test/ruby/test_numeric.rb index b42509dd1a..e818d52e3f 100644 --- a/test/ruby/test_numeric.rb +++ b/test/ruby/test_numeric.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestNumeric < Test::Unit::TestCase class DummyNumeric < Numeric diff --git a/test/ruby/test_object.rb b/test/ruby/test_object.rb index a0f245a453..0fe9471fa6 100644 --- a/test/ruby/test_object.rb +++ b/test/ruby/test_object.rb @@ -1,6 +1,5 @@ # -*- coding: us-ascii -*- require 'test/unit' -require_relative 'envutil' class TestObject < Test::Unit::TestCase def setup diff --git a/test/ruby/test_objectspace.rb b/test/ruby/test_objectspace.rb index de7c6be916..4b8ae74a3c 100644 --- a/test/ruby/test_objectspace.rb +++ b/test/ruby/test_objectspace.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestObjectSpace < Test::Unit::TestCase def self.deftest_id2ref(obj) diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb index 17778dfede..f760cce3ee 100644 --- a/test/ruby/test_proc.rb +++ b/test/ruby/test_proc.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestProc < Test::Unit::TestCase def setup diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 5d252e116b..15a83a33ba 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -2,7 +2,6 @@ require 'test/unit' require 'tempfile' require 'timeout' require 'io/wait' -require_relative 'envutil' require 'rbconfig' class TestProcess < Test::Unit::TestCase diff --git a/test/ruby/test_rand.rb b/test/ruby/test_rand.rb index 62efecb833..d2a1244b0b 100644 --- a/test/ruby/test_rand.rb +++ b/test/ruby/test_rand.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestRand < Test::Unit::TestCase def assert_random_int(ws, m, init = 0) diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index e3880bff93..f81047df06 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -2,7 +2,6 @@ require 'test/unit' require 'delegate' require 'timeout' require 'bigdecimal' -require_relative 'envutil' class TestRange < Test::Unit::TestCase def test_range_string diff --git a/test/ruby/test_refinement.rb b/test/ruby/test_refinement.rb index 5a60a6afe9..11077b6e4d 100644 --- a/test/ruby/test_refinement.rb +++ b/test/ruby/test_refinement.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' # to supress warnings for future calls of Module#refine EnvUtil.suppress_warning do diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index 1ef5bb2d1b..e16075ad38 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -1,6 +1,5 @@ # coding: US-ASCII require 'test/unit' -require_relative 'envutil' class TestRegexp < Test::Unit::TestCase def setup diff --git a/test/ruby/test_require.rb b/test/ruby/test_require.rb index 971140afff..3b7f6a7977 100644 --- a/test/ruby/test_require.rb +++ b/test/ruby/test_require.rb @@ -1,7 +1,6 @@ require 'test/unit' require 'tempfile' -require_relative 'envutil' require 'tmpdir' class TestRequire < Test::Unit::TestCase diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index ac7cc7b210..31fe9aecb0 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -4,8 +4,6 @@ require 'test/unit' require 'tmpdir' require 'tempfile' -require_relative 'envutil' - class TestRubyOptions < Test::Unit::TestCase def write_file(filename, content) File.open(filename, "w") {|f| diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb index b13eea09bd..44a9edee11 100644 --- a/test/ruby/test_settracefunc.rb +++ b/test/ruby/test_settracefunc.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestSetTraceFunc < Test::Unit::TestCase def setup diff --git a/test/ruby/test_signal.rb b/test/ruby/test_signal.rb index e74a2c4e1e..4a59aa66c8 100644 --- a/test/ruby/test_signal.rb +++ b/test/ruby/test_signal.rb @@ -1,7 +1,6 @@ require 'test/unit' require 'timeout' require 'tempfile' -require_relative 'envutil' class TestSignal < Test::Unit::TestCase def test_signal diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index 543c1389bd..c0fd83e107 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' # use of $= is deprecated after 1.7.1 def pre_1_7_1 diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb index 37366c317e..71d93fb09d 100644 --- a/test/ruby/test_struct.rb +++ b/test/ruby/test_struct.rb @@ -1,7 +1,6 @@ # -*- coding: us-ascii -*- require 'test/unit' require 'timeout' -require_relative 'envutil' module TestStruct def test_struct diff --git a/test/ruby/test_super.rb b/test/ruby/test_super.rb index e4d3b8d57a..7d4048b342 100644 --- a/test/ruby/test_super.rb +++ b/test/ruby/test_super.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestSuper < Test::Unit::TestCase class Base diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index e70470555c..00e21606c6 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -1,11 +1,10 @@ require 'test/unit' -require_relative 'envutil' class TestSyntax < Test::Unit::TestCase def assert_syntax_files(test) srcdir = File.expand_path("../../..", __FILE__) srcdir = File.join(srcdir, test) - assert_separately(%W[--disable-gem -r#{__dir__}/envutil - #{srcdir}], + assert_separately(%W[--disable-gem - #{srcdir}], __FILE__, __LINE__, <<-'eom', timeout: Float::INFINITY) dir = ARGV.shift for script in Dir["#{dir}/**/*.rb"].sort diff --git a/test/ruby/test_system.rb b/test/ruby/test_system.rb index 9e4369540a..b328cbcc1d 100644 --- a/test/ruby/test_system.rb +++ b/test/ruby/test_system.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'tmpdir' -require_relative 'envutil' class TestSystem < Test::Unit::TestCase def test_system diff --git a/test/ruby/test_thread.rb b/test/ruby/test_thread.rb index 65636d9855..fba4737009 100644 --- a/test/ruby/test_thread.rb +++ b/test/ruby/test_thread.rb @@ -1,7 +1,6 @@ # -*- coding: us-ascii -*- require 'test/unit' require 'thread' -require_relative 'envutil' class TestThread < Test::Unit::TestCase class Thread < ::Thread @@ -124,7 +123,6 @@ class TestThread < Test::Unit::TestCase dir = File.dirname(__FILE__) lbtest = File.join(dir, "lbtest.rb") $:.unshift File.join(File.dirname(dir), 'ruby') - require 'envutil' $:.shift 3.times { `#{EnvUtil.rubybin} #{lbtest}` diff --git a/test/ruby/test_threadgroup.rb b/test/ruby/test_threadgroup.rb index f4c03de67e..e158f5ada4 100644 --- a/test/ruby/test_threadgroup.rb +++ b/test/ruby/test_threadgroup.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'thread' -require_relative 'envutil' class TestThreadGroup < Test::Unit::TestCase def test_thread_init diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index a57cd5d72c..cfbf42d6f6 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -2,7 +2,6 @@ require 'test/unit' require 'delegate' require 'timeout' require 'delegate' -require_relative 'envutil' class TestTime < Test::Unit::TestCase def setup diff --git a/test/ruby/test_transcode.rb b/test/ruby/test_transcode.rb index 5f3f51a676..0306dc3e87 100644 --- a/test/ruby/test_transcode.rb +++ b/test/ruby/test_transcode.rb @@ -2,7 +2,7 @@ # some of the comments are in UTF-8 require 'test/unit' -require_relative 'envutil' + class TestTranscode < Test::Unit::TestCase def test_errors assert_raise(Encoding::ConverterNotFoundError) { 'abc'.encode('foo', 'bar') } diff --git a/test/ruby/test_unicode_escape.rb b/test/ruby/test_unicode_escape.rb index 2561b49486..9d0d787e98 100644 --- a/test/ruby/test_unicode_escape.rb +++ b/test/ruby/test_unicode_escape.rb @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- require 'test/unit' -require_relative 'envutil' class TestUnicodeEscape < Test::Unit::TestCase def test_basic diff --git a/test/ruby/test_variable.rb b/test/ruby/test_variable.rb index 308839df14..8dc5c2fe55 100644 --- a/test/ruby/test_variable.rb +++ b/test/ruby/test_variable.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestVariable < Test::Unit::TestCase class Gods diff --git a/test/ruby/test_weakmap.rb b/test/ruby/test_weakmap.rb index 94590a07ff..1279944a37 100644 --- a/test/ruby/test_weakmap.rb +++ b/test/ruby/test_weakmap.rb @@ -1,5 +1,4 @@ require 'test/unit' -require_relative 'envutil' class TestWeakMap < Test::Unit::TestCase def setup diff --git a/test/ruby/test_whileuntil.rb b/test/ruby/test_whileuntil.rb index ca853af944..3d8dbee994 100644 --- a/test/ruby/test_whileuntil.rb +++ b/test/ruby/test_whileuntil.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'tmpdir' -require_relative 'envutil' class TestWhileuntil < Test::Unit::TestCase def test_while |