summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2020-06-10 18:53:25 -0700
committerJeremy Evans <code@jeremyevans.net>2020-06-18 08:21:29 -0700
commit95dc9c07f3a895f45cfb5dab235cd78f157a9e51 (patch)
treec5ed4ca00c1700b1c4aa1cea958bb4767acd1ecf /test/ruby
parentaae8223c7076483f1f1641181088790b2f3a66dd (diff)
Raise RuntimeError for class variable overtaken in nonverbose mode
900e83b50115afda3f79712310e4cb95e4508972 changed from a warning to an error in this case, but the warning was only issued in verbose mode, and therefore the error was only raised in verbose mode. That was not intentional, verbose mode should only change whether warnings are emitted, not other behavior. This issues the RuntimeError in all cases. This change broke a couple tests, as the tests actually issued the warning and therefore now raise an error. This wasn't caught earlier as test_variable suppressed the warning in this case, effectively setting $VERBOSE = false around the code that warned. basictest isn't run in verbose mode and therefore didn't expose the issue previously. Fix these tests. Fixes [Bug #14541]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3210
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_variable.rb6
1 files changed, 2 insertions, 4 deletions
diff --git a/test/ruby/test_variable.rb b/test/ruby/test_variable.rb
index 685a06226f..9795223fda 100644
--- a/test/ruby/test_variable.rb
+++ b/test/ruby/test_variable.rb
@@ -29,9 +29,7 @@ class TestVariable < Test::Unit::TestCase
@@rule = "Cronus" # modifies @@rule in Gods
include Olympians
def ruler4
- EnvUtil.suppress_warning {
- @@rule
- }
+ @@rule
end
end
@@ -117,7 +115,7 @@ class TestVariable < Test::Unit::TestCase
atlas = Titans.new
assert_equal("Cronus", atlas.ruler0)
assert_equal("Zeus", atlas.ruler3)
- assert_equal("Cronus", atlas.ruler4)
+ assert_raise(RuntimeError) { atlas.ruler4 }
assert_nothing_raised do
class << Gods
defined?(@@rule) && @@rule