aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_require.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-28 02:26:39 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-28 02:26:39 +0000
commit7fbb9078fe61104606a40e4e450a2cd1a33f8ca1 (patch)
treebd57731d31e70e0b5837bcff618f0b56b2be3b5e /test/rubygems/test_require.rb
parent6cc4937aec6596bff58fc946b4b00c7b546e494a (diff)
downloadruby-7fbb9078fe61104606a40e4e450a2cd1a33f8ca1.tar.gz
* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.2.
Please see entries of 2.6.2 on https://github.com/rubygems/rubygems/blob/master/History.txt git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_require.rb')
-rw-r--r--test/rubygems/test_require.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/rubygems/test_require.rb b/test/rubygems/test_require.rb
index ec0c48ac68..04cbc094d8 100644
--- a/test/rubygems/test_require.rb
+++ b/test/rubygems/test_require.rb
@@ -319,4 +319,32 @@ class TestGemRequire < Gem::TestCase
def unresolved_names
Gem::Specification.unresolved_deps.values.map(&:to_s).sort
end
+
+ def test_try_activate_error_unlocks_require_monitor
+ silence_warnings do
+ class << ::Gem
+ alias old_try_activate try_activate
+ def try_activate(*); raise 'raised from try_activate'; end
+ end
+ end
+
+ require 'does_not_exist_for_try_activate_test'
+ rescue RuntimeError => e
+ assert_match(/raised from try_activate/, e.message)
+ assert Kernel::RUBYGEMS_ACTIVATION_MONITOR.try_enter, "require monitor was not unlocked when try_activate raised"
+ ensure
+ silence_warnings do
+ class << ::Gem
+ alias try_activate old_try_activate
+ end
+ end
+ Kernel::RUBYGEMS_ACTIVATION_MONITOR.exit
+ end
+
+ def silence_warnings
+ old_verbose, $VERBOSE = $VERBOSE, false
+ yield
+ ensure
+ $VERBOSE = old_verbose
+ end
end