mirror of
https://github.com/dart-lang/sdk
synced 2024-10-04 16:44:59 +00:00
[vm/test] Scavenger WeakProperty
and WeakReference
unit tests
The new space tests were evacuating new space, letting the scavenger promote everything and then immediately running the marker. This did not test the state right after running only the scavenge. TEST=runtime/vm/object_test.cc Change-Id: I3272f62a38ff5d38e76c83c831c3742e4951aa56 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233280 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
This commit is contained in:
parent
884bed1fff
commit
0fab3fed93
|
@ -3643,7 +3643,7 @@ ISOLATE_UNIT_TEST_CASE(WeakProperty_PreserveOne_NewSpace) {
|
|||
weak.set_key(key);
|
||||
weak.set_value(value);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
GCTestHelper::CollectNewSpace();
|
||||
EXPECT(weak.key() != Object::null());
|
||||
EXPECT(weak.value() != Object::null());
|
||||
}
|
||||
|
@ -3668,7 +3668,7 @@ ISOLATE_UNIT_TEST_CASE(WeakProperty_PreserveTwo_NewSpace) {
|
|||
weak2.set_key(key2);
|
||||
weak2.set_value(value2);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
GCTestHelper::CollectNewSpace();
|
||||
EXPECT(weak1.key() != Object::null());
|
||||
EXPECT(weak1.value() != Object::null());
|
||||
EXPECT(weak2.key() != Object::null());
|
||||
|
@ -3693,7 +3693,7 @@ ISOLATE_UNIT_TEST_CASE(WeakProperty_PreserveTwoShared_NewSpace) {
|
|||
weak2.set_key(key);
|
||||
weak2.set_value(value2);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
GCTestHelper::CollectNewSpace();
|
||||
EXPECT(weak1.key() != Object::null());
|
||||
EXPECT(weak1.value() != Object::null());
|
||||
EXPECT(weak2.key() != Object::null());
|
||||
|
@ -3783,7 +3783,7 @@ ISOLATE_UNIT_TEST_CASE(WeakProperty_ClearOne_NewSpace) {
|
|||
key ^= OneByteString::null();
|
||||
value ^= OneByteString::null();
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
GCTestHelper::CollectNewSpace();
|
||||
EXPECT(weak.key() == Object::null());
|
||||
EXPECT(weak.value() == Object::null());
|
||||
}
|
||||
|
@ -3806,7 +3806,7 @@ ISOLATE_UNIT_TEST_CASE(WeakProperty_ClearTwoShared_NewSpace) {
|
|||
weak2.set_key(key);
|
||||
weak2.set_value(value2);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
GCTestHelper::CollectNewSpace();
|
||||
EXPECT(weak1.key() == Object::null());
|
||||
EXPECT(weak1.value() == Object::null());
|
||||
EXPECT(weak2.key() == Object::null());
|
||||
|
@ -3869,7 +3869,13 @@ static void WeakReference_PreserveOne(Thread* thread, Heap::Space space) {
|
|||
weak.set_target(target);
|
||||
weak.SetTypeArguments(type_arguments);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
|
||||
if (space == Heap::kNew) {
|
||||
GCTestHelper::CollectNewSpace();
|
||||
} else {
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
}
|
||||
|
||||
EXPECT(weak.target() != Object::null());
|
||||
EXPECT(weak.GetTypeArguments() != Object::null());
|
||||
}
|
||||
|
@ -3894,7 +3900,13 @@ static void WeakReference_ClearOne(Thread* thread, Heap::Space space) {
|
|||
weak.set_target(target);
|
||||
weak.SetTypeArguments(type_arguments);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
|
||||
if (space == Heap::kNew) {
|
||||
GCTestHelper::CollectNewSpace();
|
||||
} else {
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
}
|
||||
|
||||
EXPECT(weak.target() == Object::null());
|
||||
EXPECT(weak.GetTypeArguments() != Object::null());
|
||||
}
|
||||
|
@ -3927,7 +3939,13 @@ static void WeakReference_Clear_ReachableThroughWeakProperty(
|
|||
weak_property.set_key(key);
|
||||
weak_property.set_value(weak_reference);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
|
||||
if (space == Heap::kNew) {
|
||||
GCTestHelper::CollectNewSpace();
|
||||
} else {
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
}
|
||||
|
||||
const auto& weak_reference =
|
||||
WeakReference::CheckedHandle(Z, weak_property.value());
|
||||
EXPECT(weak_reference.target() == Object::null());
|
||||
|
@ -3964,7 +3982,13 @@ static void WeakReference_Preserve_ReachableThroughWeakProperty(
|
|||
weak_property.set_key(key);
|
||||
weak_property.set_value(weak_reference);
|
||||
}
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
|
||||
if (space == Heap::kNew) {
|
||||
GCTestHelper::CollectNewSpace();
|
||||
} else {
|
||||
GCTestHelper::CollectAllGarbage();
|
||||
}
|
||||
|
||||
const auto& weak_reference =
|
||||
WeakReference::CheckedHandle(Z, weak_property.value());
|
||||
EXPECT(weak_reference.target() != Object::null());
|
||||
|
|
Loading…
Reference in a new issue