diff options
Diffstat (limited to 'test/ruby/test_variable.rb')
| -rw-r--r-- | test/ruby/test_variable.rb | 88 |
1 files changed, 5 insertions, 83 deletions
diff --git a/test/ruby/test_variable.rb b/test/ruby/test_variable.rb index 9795223fda..a9b1fd50ff 100644 --- a/test/ruby/test_variable.rb +++ b/test/ruby/test_variable.rb @@ -29,68 +29,9 @@ class TestVariable < Test::Unit::TestCase @@rule = "Cronus" # modifies @@rule in Gods include Olympians def ruler4 - @@rule - end - end - - def test_setting_class_variable_on_module_through_inheritance - mod = Module.new - mod.class_variable_set(:@@foo, 1) - mod.freeze - c = Class.new { include(mod) } - assert_raise(FrozenError) { c.class_variable_set(:@@foo, 2) } - assert_raise(FrozenError) { c.class_eval("@@foo = 2") } - assert_equal(1, c.class_variable_get(:@@foo)) - end - - def test_singleton_class_included_class_variable - c = Class.new - c.extend(Olympians) - assert_empty(c.singleton_class.class_variables) - assert_raise(NameError){ c.singleton_class.class_variable_get(:@@rule) } - c.class_variable_set(:@@foo, 1) - assert_equal([:@@foo], c.singleton_class.class_variables) - assert_equal(1, c.singleton_class.class_variable_get(:@@foo)) - - c = Class.new - c.extend(Olympians) - sc = Class.new(c) - assert_empty(sc.singleton_class.class_variables) - assert_raise(NameError){ sc.singleton_class.class_variable_get(:@@rule) } - c.class_variable_set(:@@foo, 1) - assert_equal([:@@foo], sc.singleton_class.class_variables) - assert_equal(1, sc.singleton_class.class_variable_get(:@@foo)) - - c = Class.new - o = c.new - o.extend(Olympians) - assert_equal([:@@rule], o.singleton_class.class_variables) - assert_equal("Zeus", o.singleton_class.class_variable_get(:@@rule)) - c.class_variable_set(:@@foo, 1) - assert_equal([:@@foo, :@@rule], o.singleton_class.class_variables.sort) - assert_equal(1, o.singleton_class.class_variable_get(:@@foo)) - end - - class IncludeRefinedModuleClassVariableNoWarning - module Mod - @@_test_include_refined_module_class_variable = true - end - - module Mod2 - refine Mod do - end - end - - include Mod - - def t - @@_test_include_refined_module_class_variable - end - end - - def test_include_refined_module_class_variable - assert_warning('') do - IncludeRefinedModuleClassVariableNoWarning.new.t + EnvUtil.suppress_warning { + @@rule + } end end @@ -115,7 +56,7 @@ class TestVariable < Test::Unit::TestCase atlas = Titans.new assert_equal("Cronus", atlas.ruler0) assert_equal("Zeus", atlas.ruler3) - assert_raise(RuntimeError) { atlas.ruler4 } + assert_equal("Cronus", atlas.ruler4) assert_nothing_raised do class << Gods defined?(@@rule) && @@rule @@ -194,7 +135,7 @@ class TestVariable < Test::Unit::TestCase def test_special_constant_ivars [ true, false, :symbol, "dsym#{rand(9999)}".to_sym, 1, 1.0 ].each do |v| assert_empty v.instance_variables - msg = "can't modify frozen #{v.class}: #{v.inspect}" + msg = "can't modify frozen #{v.class}" assert_raise_with_message(FrozenError, msg) do v.instance_variable_set(:@foo, :bar) @@ -209,25 +150,6 @@ class TestVariable < Test::Unit::TestCase end end - class ExIvar < Hash - def initialize - @a = 1 - @b = 2 - @c = 3 - end - - def ivars - [@a, @b, @c] - end - end - - def test_external_ivars - 3.times{ - # check inline cache for external ivar access - assert_equal [1, 2, 3], ExIvar.new.ivars - } - end - def test_local_variables_with_kwarg bug11674 = '[ruby-core:71437] [Bug #11674]' v = with_kwargs_11(v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8,v9:9,v10:10,v11:11) |
