aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/rubygems/test_gem_gem_runner.rb33
1 files changed, 26 insertions, 7 deletions
diff --git a/test/rubygems/test_gem_gem_runner.rb b/test/rubygems/test_gem_gem_runner.rb
index b5d8581bea..0a1faa404a 100644
--- a/test/rubygems/test_gem_gem_runner.rb
+++ b/test/rubygems/test_gem_gem_runner.rb
@@ -1,17 +1,36 @@
# frozen_string_literal: true
require 'rubygems/test_case'
begin
- require 'rubygems/gem_runner'
-ensure
- if $!
+ gem_home_files = lambda{
if Dir.exist?(ENV["GEM_HOME"])
require "find"
ary = Find.find(ENV["GEM_HOME"]).to_a
- raise <<eom
-GEM_HOME: #{ENV["GEM_HOME"]}
-contant: #{ary.inspect}
-eom
+ else
+ []
end
+ }
+ prev_gem_home = ENV["GEM_HOME"]
+ prev_gem_home_files = gem_home_files.call
+ prev_threads = Thread.list.map{|e| e.inspect}
+
+ require 'rubygems/gem_runner'
+ensure
+ if $!
+ msg = <<eom
+***************
+PREV
+ GEM_HOME: #{prev_gem_home}
+ Files in GEM_HOME: #{prev_gem_home_files.inspect}
+ Threads: #{prev_threads.inspect}
+Current:
+ GEM_HOME: #{ENV["GEM_HOME"]}
+ Files in GEM_HOME: #{gem_home_files.call}
+ Threads: #{Thread.list.map{|e| e.inspect}.inspect}
+Exception: #{$!.message}
+eom
+ p $!.class
+ p $!.message.frozen?
+ raise $!.class, msg, $!.backtrace
end
end