summaryrefslogtreecommitdiff
path: root/test/ruby/test_struct.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_struct.rb')
-rw-r--r--test/ruby/test_struct.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb
index 49dcdb45b2..d769e47dc5 100644
--- a/test/ruby/test_struct.rb
+++ b/test/ruby/test_struct.rb
@@ -1,5 +1,6 @@
require 'test/unit'
require 'timeout'
+require_relative 'envutil'
class TestStruct < Test::Unit::TestCase
def test_struct
@@ -249,4 +250,17 @@ class TestStruct < Test::Unit::TestCase
assert !x.eql?(z)
}
end
+
+ def test_struct_subclass
+ bug5036 = '[ruby-dev:44122]'
+ st = Class.new(Struct)
+ s = st.new("S", :m).new
+ error = assert_raise(SecurityError) do
+ proc do
+ $SAFE = 4
+ s.m = 1
+ end.call
+ end
+ assert_equal("Insecure: can't modify #{st}::S", error.message, bug5036)
+ end
end