v8/test/unittests/heap/cppgc
Omer Katz e072615cc2 cppgc: Establish marking invariants
This is a revival of https://chromium-review.googlesource.com/c/v8/v8/+/2228332

The CL establishes the following:
*) Objects are marked before being pushed to the worklists.
*) Live bytes are always accounted after tracing an object (i.e. move
   from Gray to Black below).
*) Previously not fully constructed objects are traced immediately
   instead of pushed to the marking worklist.

This establishes the following invariants for all marking worklists:
1) White = !object.is_marked() && !worklist.contains(object)
2) Gray = object.is_marked() && worklist.contains(object)
3) Black = object.is_marked() && !worklist.contains(object)

Bug: chromium:1056170
Change-Id: I821573b3fbc057e6ffb836154271ff986ecb4d2b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336797
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69268}
2020-08-06 11:51:48 +00:00
..
concurrent-sweeper-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
custom-spaces-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
finalizer-trait-unittest.cc cppgc: Rename unittest files 2020-05-08 08:50:48 +00:00
free-list-unittest.cc cppgc: Rename unittest files 2020-05-08 08:50:48 +00:00
garbage-collected-unittest.cc cppgc: Use object start bitmap to trace mixins 2020-07-10 12:00:45 +00:00
gc-info-unittest.cc cppgc: Add TraceCallback to GCInfo 2020-05-13 23:53:43 +00:00
gc-invoker-unittest.cc [unittests] Convert to the new MOCK_METHOD macro. 2020-06-10 15:50:38 +00:00
heap-growing-unittest.cc [unittests] Convert to the new MOCK_METHOD macro. 2020-06-10 15:50:38 +00:00
heap-object-header-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
heap-page-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
heap-unittest.cc cppgc: Clean up some tests 2020-06-16 10:00:59 +00:00
logging-unittest.cc cppgc: Rename unittest files 2020-05-08 08:50:48 +00:00
marker-unittest.cc cppgc: Establish marking invariants 2020-08-06 11:51:48 +00:00
marking-verifier-unittest.cc cppgc: Port MarkingVerifier 2020-07-16 13:05:15 +00:00
marking-visitor-unittest.cc cppgc: Establish marking invariants 2020-08-06 11:51:48 +00:00
member-unittest.cc cppgc: Introduce AllocationHandle 2020-06-10 23:11:20 +00:00
minor-gc-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
object-start-bitmap-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
page-memory-unittest.cc cppgc: Remove -inl.h files 2020-07-01 08:46:26 +00:00
persistent-unittest.cc cppgc: Move LivenessBrokerFactory to corresponding file 2020-06-29 16:48:36 +00:00
prefinalizer-unittest.cc cppgc: Use object start bitmap to trace mixins 2020-07-10 12:00:45 +00:00
run-all-unittests.cc cppgc: Hello world 2020-03-23 21:42:56 +00:00
source-location-unittest.cc cppgc: Rename unittest files 2020-05-08 08:50:48 +00:00
stack-unittest.cc Move stack walking to shared directory 2020-06-22 10:40:56 +00:00
stats-collector-unittest.cc [unittests] Convert to the new MOCK_METHOD macro. 2020-06-10 15:50:38 +00:00
sweeper-unittest.cc cppgc: Fix gcc warning in sweeper-unittest.cc 2020-07-29 09:43:53 +00:00
test-platform.cc cppgc: Rely on per-heap platform objects 2020-05-28 20:29:55 +00:00
test-platform.h cppgc: Rely on per-heap platform objects 2020-05-28 20:29:55 +00:00
tests.cc cppgc: Introduce HeapBase 2020-06-15 11:03:08 +00:00
tests.h cppgc: Refactor visitation 3/3 2020-07-03 15:17:58 +00:00
visitor-unittest.cc cppgc: Use object start bitmap to trace mixins 2020-07-10 12:00:45 +00:00
worklist-unittest.cc cppgc: Rename unittest files 2020-05-08 08:50:48 +00:00
write-barrier-unittest.cc cppgc: Use object start bitmap to trace mixins 2020-07-10 12:00:45 +00:00