Fix Error in GC Compaction specs

Previously if any of the tests that move objects between size pools
failed to move anything, then the call to stats.dig would return `nil`
which would then cause assert_operator to error.

This should be a test Failure, rather than an Error so this commit uses
a default value of 0 if stats.dig fails to find a key.

Also refactor object movement tests to use stats.dig, rather than :[]
This commit is contained in:
Matt Valentine-House 2022-12-21 15:48:00 +00:00 committed by Peter Zhu
parent fdac148637
commit 0dc989d031
Notes: git 2023-01-03 13:48:18 +00:00

View File

@ -323,7 +323,7 @@ class TestGCCompact < Test::Unit::TestCase
end
stats = GC.verify_compaction_references(expand_heap: true, toward: :empty)
assert_operator(stats.dig(:moved_down, :T_ARRAY), :>=, ARY_COUNT)
assert_operator(stats.dig(:moved_down, :T_ARRAY) || 0, :>=, ARY_COUNT)
assert(arys) # warning: assigned but unused variable - arys
end;
end
@ -345,7 +345,7 @@ class TestGCCompact < Test::Unit::TestCase
end
stats = GC.verify_compaction_references(expand_heap: true, toward: :empty)
assert_operator(stats.dig(:moved_up, :T_ARRAY), :>=, ARY_COUNT)
assert_operator(stats.dig(:moved_up, :T_ARRAY) || 0, :>=, ARY_COUNT)
assert(arys) # warning: assigned but unused variable - arys
end;
end
@ -375,7 +375,7 @@ class TestGCCompact < Test::Unit::TestCase
stats = GC.verify_compaction_references(expand_heap: true, toward: :empty)
assert_operator(stats[:moved_up][:T_OBJECT], :>=, OBJ_COUNT)
assert_operator(stats.dig(:moved_up, :T_OBJECT) || 0, :>=, OBJ_COUNT)
end;
end