summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-object-ext/test/object.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-11-25 09:17:59 +0900
committerGitHub <[email protected]>2016-11-25 09:17:59 +0900
commita28fa35ea9de58e586441cbfdbfb0b7ba86aea99 (patch)
tree15612f2c5b645fffa54e58aba2724fc23901068a /mrbgems/mruby-object-ext/test/object.rb
parent1e892c0ffa33e6e1548bde5fa182872ae7381ac8 (diff)
parent4523aaec015ff0bf900710efc2ec3411e8841fb1 (diff)
downloadmruby-a28fa35ea9de58e586441cbfdbfb0b7ba86aea99.tar.gz
mruby-a28fa35ea9de58e586441cbfdbfb0b7ba86aea99.zip
Merge pull request #3282 from bouk/fix-break-instance-class
Fix segfault when defining class inside instance_exec on primitive
Diffstat (limited to 'mrbgems/mruby-object-ext/test/object.rb')
-rw-r--r--mrbgems/mruby-object-ext/test/object.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/mrbgems/mruby-object-ext/test/object.rb b/mrbgems/mruby-object-ext/test/object.rb
index fe56f1ec5..f0742f8ce 100644
--- a/mrbgems/mruby-object-ext/test/object.rb
+++ b/mrbgems/mruby-object-ext/test/object.rb
@@ -23,3 +23,31 @@ assert('Object#tap') do
], ret
assert_equal(:tap_ok, Class.new {def m; tap{return :tap_ok}; end}.new.m)
end
+
+assert('instance_exec on primitives with class and module definition') do
+ begin
+ class A
+ 1.instance_exec do
+ class B
+ end
+ end
+ end
+
+ assert_kind_of Class, A::B
+ ensure
+ Object.remove_const :A
+ end
+
+ begin
+ class A
+ 1.instance_exec do
+ module B
+ end
+ end
+ end
+
+ assert_kind_of Module, A::B
+ ensure
+ Object.remove_const :A
+ end
+end