Actions
Bug #14949
closedtest_jit.rb test_unload_units fails on 32-bit
Description
I get multiple definition warnings from this test. It only
happens on my 32-bit systems (both VM and real HW) on Debian 9.
Attached log was made with below patch:
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -541,32 +541,33 @@ def test_unload_units
Dir.mktmpdir("jit_test_unload_units_") 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)
compactions, errs = err.lines.partition do |l|
l.match?(/\AJIT compaction \(\d+\.\dms\): Compacted \d+ methods ->/)
end
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
+ warn "errs: #{errs.join}"
assert_equal("Too many JIT code -- 1 units unloaded\n", errs[10])
assert_match(/\A#{JIT_SUCCESS_PREFIX}: mjit9@\(eval\):/, errs[11])
# On --jit-wait, when the number of JIT-ed code reaches --jit-max-cache,
# it should trigger compaction.
assert_equal(2, compactions.size)
# verify .o files are deleted on unload_units
assert_send([Dir, :empty?, dir])
end
end
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0