From 2ea2108a9fb1460342226f54cbf54ddd79ea1cc2 Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Sun, 4 Aug 2019 14:16:42 +0200 Subject: [PATCH] [rubygems/rubygems] Fix error handling of #with_engine_version * If settings constants fail, show that exception instead of getting another one due to variables being unset and hiding the real cause. https://github.com/rubygems/rubygems/commit/f38cd67874 --- ...test_gem_request_set_gem_dependency_api.rb | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/test/rubygems/test_gem_request_set_gem_dependency_api.rb b/test/rubygems/test_gem_request_set_gem_dependency_api.rb index 24cfb67c4d..959c28580f 100644 --- a/test/rubygems/test_gem_request_set_gem_dependency_api.rb +++ b/test/rubygems/test_gem_request_set_gem_dependency_api.rb @@ -34,21 +34,22 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase Gem.instance_variable_set :@ruby_version, Gem::Version.new(version) - yield + begin + yield + ensure + Object.send :remove_const, :RUBY_ENGINE if name + Object.send :remove_const, new_engine_version_const if version - ensure - Object.send :remove_const, :RUBY_ENGINE if name - Object.send :remove_const, new_engine_version_const if version + Object.send :remove_const, engine_version_const if name == 'ruby' and + Object.const_defined? engine_version_const - Object.send :remove_const, engine_version_const if name == 'ruby' and - Object.const_defined? engine_version_const + Object.const_set :RUBY_ENGINE, engine if engine + Object.const_set engine_version_const, engine_version unless + Object.const_defined? engine_version_const - Object.const_set :RUBY_ENGINE, engine if engine - Object.const_set engine_version_const, engine_version unless - Object.const_defined? engine_version_const - - Gem.send :remove_instance_variable, :@ruby_version if - Gem.instance_variables.include? :@ruby_version + Gem.send :remove_instance_variable, :@ruby_version if + Gem.instance_variables.include? :@ruby_version + end end def test_gempspec_with_multiple_runtime_deps