aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_jit.rb
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-07-27 09:27:58 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-07-27 09:27:58 +0000
commitceab460fcae4136404d3d85e4ac62620394a25a8 (patch)
tree976a302db2aac931050b1aaa71fa67778581240a /test/ruby/test_jit.rb
parente09bf11f6ec28785bd1ab55d32db1162a00522dc (diff)
downloadruby-ceab460fcae4136404d3d85e4ac62620394a25a8.tar.gz
mjit.c: keep all .o files
and lazily delete them on termination. This will be needed to create a large so file later. The large number of .o files will be probably compacted before the large so file is created. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_jit.rb')
-rw-r--r--test/ruby/test_jit.rb41
1 files changed, 23 insertions, 18 deletions
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index 92a7bd56d8..039a2ff35f 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -530,26 +530,31 @@ class TestJIT < Test::Unit::TestCase
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
+ Dir.mktmpdir("jit_test_clean_so_") do |dir|
+ # MIN_CACHE_SIZE is 10
+ out, err = eval_with_jit({"TMPDIR"=>dir}, "#{<<~"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
- 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])
+ assert_equal("Too many JIT code -- 1 units unloaded\n", errs[10])
+ assert_match(/\A#{JIT_SUCCESS_PREFIX}: mjit9@\(eval\):/, errs[11])
+
+ # verify .o files are deleted on unload_units
+ assert_send([Dir, :empty?, dir])
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