summaryrefslogtreecommitdiff
path: root/test/ruby/test_gc.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_gc.rb')
-rw-r--r--test/ruby/test_gc.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/ruby/test_gc.rb b/test/ruby/test_gc.rb
new file mode 100644
index 0000000000..b513e44dc6
--- /dev/null
+++ b/test/ruby/test_gc.rb
@@ -0,0 +1,41 @@
+require 'test/unit'
+
+$KCODE = 'none'
+
+class TestGc < Test::Unit::TestCase
+ class S
+ def initialize(a)
+ @a = a
+ end
+ end
+
+ def test_gc
+ begin
+ 1.upto(10000) {
+ tmp = [0,1,2,3,4,5,6,7,8,9]
+ }
+ tmp = nil
+ assert true
+ rescue
+ assert false
+ end
+ l=nil
+ 100000.times {
+ l = S.new(l)
+ }
+ GC.start
+ assert true # reach here or dumps core
+ l = []
+ 100000.times {
+ l.push([l])
+ }
+ GC.start
+ assert true # reach here or dumps core
+
+ if $failed > 0
+ printf "test: %d failed %d\n", $ntest, $failed
+ else
+ printf "end of test(test: %d)\n", $ntest
+ end
+ end
+end