OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "platform/assert.h" | 5 #include "platform/assert.h" |
6 #include "vm/scavenger.h" | 6 #include "vm/scavenger.h" |
7 #include "vm/unit_test.h" | 7 #include "vm/unit_test.h" |
8 #include "vm/visitor.h" | 8 #include "vm/visitor.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 EXPECT_EQ(static_cast<uword>(0), scavenger->TryAllocate(kObjectAlignment)); | 45 EXPECT_EQ(static_cast<uword>(0), scavenger->TryAllocate(kObjectAlignment)); |
46 FailingObjectVisitor obj_visitor; | 46 FailingObjectVisitor obj_visitor; |
47 scavenger->VisitObjects(&obj_visitor); | 47 scavenger->VisitObjects(&obj_visitor); |
48 FailingObjectPointerVisitor ptr_visitor; | 48 FailingObjectPointerVisitor ptr_visitor; |
49 scavenger->VisitObjectPointers(&ptr_visitor); | 49 scavenger->VisitObjectPointers(&ptr_visitor); |
50 FailingFindObjectVisitor find_visitor; | 50 FailingFindObjectVisitor find_visitor; |
51 scavenger->FindObject(&find_visitor); | 51 scavenger->FindObject(&find_visitor); |
52 delete scavenger; | 52 delete scavenger; |
53 } | 53 } |
54 | 54 |
55 TEST_CASE(ZeroSizeScavengerGC) { | |
56 // Ensure 'Scavenge' doesn't crash. We must supply an actual heap. | |
57 Scavenger* scavenger = | |
58 new Scavenger(Isolate::Current()->heap(), 0, kNewObjectAlignmentOffset); | |
59 scavenger->Scavenge(); | |
60 delete scavenger; | |
61 } | |
62 | |
63 } // namespace dart | 55 } // namespace dart |
OLD | NEW |