summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2019-07-15 11:16:05 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-07-15 11:16:29 +0900
commitac6d137157121381fb57e3febd34c84cb7ca47b2 (patch)
tree3859796dbb7192e1975303863c6d519c2fde52ef /tool
parent41c5f9a166637bf9e49af19b3fa94163b51db64d (diff)
Added test-tool target for the test suite of tool/test files.
Diffstat (limited to 'tool')
-rw-r--r--tool/test/runner.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/tool/test/runner.rb b/tool/test/runner.rb
new file mode 100644
index 0000000000..64f6df167e
--- /dev/null
+++ b/tool/test/runner.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: false
+require 'rbconfig'
+
+src_testdir = File.dirname(File.realpath(__FILE__))
+$LOAD_PATH << src_testdir
+tool_dir = File.join src_testdir, ".."
+$LOAD_PATH.unshift "#{tool_dir}/lib"
+
+# Get bundled gems on load path
+Dir.glob("#{src_testdir}/../gems/*/*.gemspec")
+ .reject {|f| f =~ /minitest|test-unit|power_assert/ }
+ .map {|f| $LOAD_PATH.unshift File.join(File.dirname(f), "lib") }
+
+require 'test/unit'
+
+module Gem
+end
+class Gem::TestCase < MiniTest::Unit::TestCase
+ @@project_dir = File.dirname($LOAD_PATH.last)
+end
+
+ENV["GEM_SKIP"] = ENV["GEM_HOME"] = ENV["GEM_PATH"] = "".freeze
+
+require_relative "#{tool_dir}/lib/profile_test_all" if ENV.has_key?('RUBY_TEST_ALL_PROFILE')
+require_relative "#{tool_dir}/lib/tracepointchecker"
+require_relative "#{tool_dir}/lib/zombie_hunter"
+require_relative "#{tool_dir}/lib/iseq_loader_checker"
+
+if ENV['COVERAGE']
+ require_relative "#{tool_dir}/test-coverage.rb"
+end
+
+begin
+ exit Test::Unit::AutoRunner.run(true, src_testdir)
+rescue NoMemoryError
+ system("cat /proc/meminfo") if File.exist?("/proc/meminfo")
+ system("ps x -opid,args,%cpu,%mem,nlwp,rss,vsz,wchan,stat,start,time,etime,blocked,caught,ignored,pending,f") if File.exist?("/bin/ps")
+ raise
+end