summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-mruby
diff options
context:
space:
mode:
authorBouke van der Bijl <[email protected]>2016-12-06 10:30:08 -0500
committerBouke van der Bijl <[email protected]>2016-12-07 15:14:12 -0500
commitf7a891fa8979bdb82410e1adc98765013cc29a79 (patch)
treed534caa7fb953a5db067c99a0b290415889b4c38 /mrbgems/mruby-bin-mruby
parent5930a6ebc7a5ebf0c9b2dfe1d250935e6ddaeceb (diff)
downloadmruby-f7a891fa8979bdb82410e1adc98765013cc29a79.tar.gz
mruby-f7a891fa8979bdb82410e1adc98765013cc29a79.zip
Mark all the built-in classes during GC sweep
Reported by https://hackerone.com/haquaman
Diffstat (limited to 'mrbgems/mruby-bin-mruby')
-rw-r--r--mrbgems/mruby-bin-mruby/bintest/mruby.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/mrbgems/mruby-bin-mruby/bintest/mruby.rb b/mrbgems/mruby-bin-mruby/bintest/mruby.rb
index 01fc94632..ad8ec3a0f 100644
--- a/mrbgems/mruby-bin-mruby/bintest/mruby.rb
+++ b/mrbgems/mruby-bin-mruby/bintest/mruby.rb
@@ -44,3 +44,17 @@ EOS
script.flush
assert_equal "\"test\"\n\"fin\"\n", `#{cmd('mruby')} #{script.path}`
end
+
+assert('garbage collecting built-in classes') do
+ script = Tempfile.new('test.rb')
+
+ script.write <<RUBY
+NilClass = nil
+GC.start
+Array.dup
+print nil.class.name
+RUBY
+ script.flush
+ assert_equal "NilClass", `#{cmd('mruby')} #{script.path}`
+ assert_equal 0, $?.exitstatus
+end