Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Side by Side Diff: Source/heap/HeapTest.cpp

Issue 138203002: Rename a few Member and Persistent methods to make the transition (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/heap/Heap.h ('k') | Source/heap/Visitor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 static Baz* create(Bar* bar) 331 static Baz* create(Bar* bar)
332 { 332 {
333 return new Baz(bar); 333 return new Baz(bar);
334 } 334 }
335 335
336 void trace(Visitor* visitor) 336 void trace(Visitor* visitor)
337 { 337 {
338 visitor->trace(m_bar); 338 visitor->trace(m_bar);
339 } 339 }
340 340
341 void clear() { m_bar.clear(); } 341 void clear() { m_bar.release(); }
342 342
343 private: 343 private:
344 explicit Baz(Bar* bar) 344 explicit Baz(Bar* bar)
345 : m_bar(bar) 345 : m_bar(bar)
346 { 346 {
347 } 347 }
348 348
349 Member<Bar> m_bar; 349 Member<Bar> m_bar;
350 }; 350 };
351 351
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 TEST(HeapTest, TypedHeapSanity) 646 TEST(HeapTest, TypedHeapSanity)
647 { 647 {
648 // FIXME: init and shutdown should be called via Blink 648 // FIXME: init and shutdown should be called via Blink
649 // initialization in the test runner. 649 // initialization in the test runner.
650 Heap::init(); 650 Heap::init();
651 651
652 { 652 {
653 // We use TraceCounter for allocating an object on the general heap. 653 // We use TraceCounter for allocating an object on the general heap.
654 Persistent<TraceCounter> generalHeapObject = TraceCounter::create(); 654 Persistent<TraceCounter> generalHeapObject = TraceCounter::create();
655 Persistent<TestTypedHeapClass> typedHeapObject = TestTypedHeapClass::cre ate(); 655 Persistent<TestTypedHeapClass> typedHeapObject = TestTypedHeapClass::cre ate();
656 EXPECT_NE(pageHeaderAddress(reinterpret_cast<Address>(generalHeapObject. raw())), 656 EXPECT_NE(pageHeaderAddress(reinterpret_cast<Address>(generalHeapObject. get())),
657 pageHeaderAddress(reinterpret_cast<Address>(typedHeapObject.raw()))) ; 657 pageHeaderAddress(reinterpret_cast<Address>(typedHeapObject.get()))) ;
658 } 658 }
659 659
660 Heap::shutdown(); 660 Heap::shutdown();
661 } 661 }
662 662
663 TEST(HeapTest, NoAllocation) 663 TEST(HeapTest, NoAllocation)
664 { 664 {
665 // FIXME: init and shutdown should be called via Blink 665 // FIXME: init and shutdown should be called via Blink
666 // initialization in the test runner. 666 // initialization in the test runner.
667 Heap::init(); 667 Heap::init();
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 EXPECT_TRUE(h5->strongIsThere()); 987 EXPECT_TRUE(h5->strongIsThere());
988 EXPECT_TRUE(h5->weakIsThere()); 988 EXPECT_TRUE(h5->weakIsThere());
989 } 989 }
990 // h3 is collected, weak pointers from h4 and h5 don't keep it alive. 990 // h3 is collected, weak pointers from h4 and h5 don't keep it alive.
991 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); 991 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack);
992 EXPECT_EQ(4u, Bar::s_live); 992 EXPECT_EQ(4u, Bar::s_live);
993 EXPECT_TRUE(h4->strongIsThere()); 993 EXPECT_TRUE(h4->strongIsThere());
994 EXPECT_FALSE(h4->weakIsThere()); // h3 is gone from weak pointer. 994 EXPECT_FALSE(h4->weakIsThere()); // h3 is gone from weak pointer.
995 EXPECT_TRUE(h5->strongIsThere()); 995 EXPECT_TRUE(h5->strongIsThere());
996 EXPECT_FALSE(h5->weakIsThere()); // h3 is gone from weak pointer. 996 EXPECT_FALSE(h5->weakIsThere()); // h3 is gone from weak pointer.
997 h1.clear(); // Zero out h1. 997 h1.release(); // Zero out h1.
998 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); 998 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack);
999 EXPECT_EQ(3u, Bar::s_live); // Only h4, h5 and h2 are left. 999 EXPECT_EQ(3u, Bar::s_live); // Only h4, h5 and h2 are left.
1000 EXPECT_TRUE(h4->strongIsThere()); // h2 is still pointed to from h4. 1000 EXPECT_TRUE(h4->strongIsThere()); // h2 is still pointed to from h4.
1001 EXPECT_TRUE(h5->strongIsThere()); // h2 is still pointed to from h5. 1001 EXPECT_TRUE(h5->strongIsThere()); // h2 is still pointed to from h5.
1002 } 1002 }
1003 // h4 and h5 have gone out of scope now and they were keeping h2 alive. 1003 // h4 and h5 have gone out of scope now and they were keeping h2 alive.
1004 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); 1004 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack);
1005 EXPECT_EQ(0u, Bar::s_live); // All gone. 1005 EXPECT_EQ(0u, Bar::s_live); // All gone.
1006 1006
1007 Heap::shutdown(); 1007 Heap::shutdown();
1008 } 1008 }
1009 1009
1010 TEST(HeapTest, Comparisons)
1011 {
1012 Heap::init();
1013
1014 {
1015 Persistent<Bar> barPersistent = Bar::create();
1016 Persistent<Foo> fooPersistent = Foo::create(barPersistent);
1017 EXPECT_TRUE(barPersistent != fooPersistent);
1018 barPersistent = fooPersistent;
1019 EXPECT_TRUE(barPersistent == fooPersistent);
1020 }
1021
1022 Heap::shutdown();
1023 }
1024
1010 DEFINE_GC_INFO(Bar); 1025 DEFINE_GC_INFO(Bar);
1011 DEFINE_GC_INFO(Baz); 1026 DEFINE_GC_INFO(Baz);
1012 DEFINE_GC_INFO(ClassWithMember); 1027 DEFINE_GC_INFO(ClassWithMember);
1013 DEFINE_GC_INFO(ConstructorAllocation); 1028 DEFINE_GC_INFO(ConstructorAllocation);
1014 DEFINE_GC_INFO(HeapAllocatedArray); 1029 DEFINE_GC_INFO(HeapAllocatedArray);
1015 DEFINE_GC_INFO(IntWrapper); 1030 DEFINE_GC_INFO(IntWrapper);
1016 DEFINE_GC_INFO(LargeObject); 1031 DEFINE_GC_INFO(LargeObject);
1017 DEFINE_GC_INFO(RefCountedAndGarbageCollected); 1032 DEFINE_GC_INFO(RefCountedAndGarbageCollected);
1018 DEFINE_GC_INFO(SimpleFinalizedObject); 1033 DEFINE_GC_INFO(SimpleFinalizedObject);
1019 DEFINE_GC_INFO(TestTypedHeapClass); 1034 DEFINE_GC_INFO(TestTypedHeapClass);
1020 DEFINE_GC_INFO(TraceCounter); 1035 DEFINE_GC_INFO(TraceCounter);
1021 1036
1022 } // namespace 1037 } // namespace
OLDNEW
« no previous file with comments | « Source/heap/Heap.h ('k') | Source/heap/Visitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698