From 1ac17693de4e80f7b1e11622dd77376e409cd4ea Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 31 May 2023 09:22:52 -0400 Subject: Add debug code to GC compaction test This test is flaky on some CI systems. --- test/ruby/test_gc_compact.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/ruby/test_gc_compact.rb b/test/ruby/test_gc_compact.rb index 221ca677e3..64077e6cdf 100644 --- a/test/ruby/test_gc_compact.rb +++ b/test/ruby/test_gc_compact.rb @@ -422,19 +422,21 @@ class TestGCCompact < Test::Unit::TestCase # AR and ST hashes are in the same size pool on 32 bit omit unless RbConfig::SIZEOF["uint64_t"] <= RbConfig::SIZEOF["void*"] - assert_separately(%w[-robjspace], "#{<<~"begin;"}\n#{<<~"end;"}", timeout: 10, signal: :SEGV) + assert_separately(%w[-robjspace], "#{<<~'begin;'}\n#{<<~'end;'}", timeout: 10, signal: :SEGV) begin; HASH_COUNT = 500 GC.verify_compaction_references(expand_heap: true, toward: :empty) + before_read_barrier_faults = GC.stat(:read_barrier_faults) + base_hash = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8 } ary = HASH_COUNT.times.map { base_hash.dup } ary.each { |h| h[:i] = 9 } stats = GC.verify_compaction_references(expand_heap: true, toward: :empty) - assert_operator(stats[:moved_down][:T_HASH], :>=, HASH_COUNT) + assert_operator(stats[:moved_down][:T_HASH], :>=, 500, "read barrier faults: before #{before_read_barrier_faults}, after #{GC.stat(:read_barrier_faults)}") end; end -- cgit v1.2.3