diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-07-27 05:52:01 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-07-27 05:52:01 +0000 |
commit | 51f948727d8e76418fc1d1f31a3f5b9d324eb979 (patch) | |
tree | b657b8514b764f66395e113304179fe2873ca585 /test/ruby/test_jit.rb | |
parent | 9fbb66610c357cf2396620620f2fa2253939827e (diff) | |
download | ruby-51f948727d8e76418fc1d1f31a3f5b9d324eb979.tar.gz |
test_jit.rb: test unload_units
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_jit.rb')
-rw-r--r-- | test/ruby/test_jit.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb index 60768812ff..92a7bd56d8 100644 --- a/test/ruby/test_jit.rb +++ b/test/ruby/test_jit.rb @@ -529,6 +529,29 @@ class TestJIT < Test::Unit::TestCase assert_match(/^Successful MJIT finish$/, err) end + def test_unload_units + # MIN_CACHE_SIZE is 10 + out, err = eval_with_jit("#{<<~"begin;"}\n#{<<~'end;'}", verbose: 1, min_calls: 1, max_cache: 10) + begin; + 10.times do |i| + eval(<<-EOS) + def mjit#{i} + print #{i} + end + mjit#{i} + EOS + end + end; + assert_equal('0123456789', out) + errs = err.lines + assert_match(/\A#{JIT_SUCCESS_PREFIX}: block in <main>@-e:/, errs[0]) + 9.times do |i| + assert_match(/\A#{JIT_SUCCESS_PREFIX}: mjit#{i}@\(eval\):/, errs[i + 1]) + end + assert_equal("Too many JIT code -- 1 units unloaded\n", errs[10]) + assert_match(/\A#{JIT_SUCCESS_PREFIX}: mjit9@\(eval\):/, errs[11]) + end + def test_local_stack_on_exception assert_eval_with_jit("#{<<~"begin;"}\n#{<<~"end;"}", stdout: '3', success_count: 2) begin; |