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

Side by Side Diff: third_party/WebKit/Source/platform/heap/HeapTest.cpp

Issue 1884113002: Remove RawPtr.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix HeapTest.Bind expectation Created 4 years, 8 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
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 4296 matching lines...) Expand 10 before | Expand all | Expand 10 after
4307 Set set; 4307 Set set;
4308 set.add(new int(42)); 4308 set.add(new int(42));
4309 set.add(new int(42)); 4309 set.add(new int(42));
4310 EXPECT_EQ(2u, set.size()); 4310 EXPECT_EQ(2u, set.size());
4311 for (typename Set::iterator it = set.begin(); it != set.end(); ++it) { 4311 for (typename Set::iterator it = set.begin(); it != set.end(); ++it) {
4312 EXPECT_EQ(42, **it); 4312 EXPECT_EQ(42, **it);
4313 delete *it; 4313 delete *it;
4314 } 4314 }
4315 } 4315 }
4316 4316
4317 TEST(HeapTest, RawPtrInHash)
4318 {
4319 rawPtrInHashHelper<HashSet<RawPtr<int>>>();
4320 rawPtrInHashHelper<ListHashSet<RawPtr<int>>>();
4321 rawPtrInHashHelper<LinkedHashSet<RawPtr<int>>>();
4322 }
4323
4324 TEST(HeapTest, HeapTerminatedArray) 4317 TEST(HeapTest, HeapTerminatedArray)
4325 { 4318 {
4326 clearOutOldGarbage(); 4319 clearOutOldGarbage();
4327 IntWrapper::s_destructorCalls = 0; 4320 IntWrapper::s_destructorCalls = 0;
4328 4321
4329 HeapTerminatedArray<TerminatedArrayItem>* arr = 0; 4322 HeapTerminatedArray<TerminatedArrayItem>* arr = 0;
4330 4323
4331 const size_t prefixSize = 4; 4324 const size_t prefixSize = 4;
4332 const size_t suffixSize = 4; 4325 const size_t suffixSize = 4;
4333 4326
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
4975 Persistent<HeapHashMap<int, WeakMember<IntWrapper>>> map = new HeapHashMap<i nt, WeakMember<IntWrapper>>(); 4968 Persistent<HeapHashMap<int, WeakMember<IntWrapper>>> map = new HeapHashMap<i nt, WeakMember<IntWrapper>>();
4976 addElementsToWeakMap(map); 4969 addElementsToWeakMap(map);
4977 HeapHashMap<int, WeakMember<IntWrapper>>::AddResult result = map->add(800, n ullptr); 4970 HeapHashMap<int, WeakMember<IntWrapper>>::AddResult result = map->add(800, n ullptr);
4978 conservativelyCollectGarbage(); 4971 conservativelyCollectGarbage();
4979 result.storedValue->value = IntWrapper::create(42); 4972 result.storedValue->value = IntWrapper::create(42);
4980 } 4973 }
4981 4974
4982 TEST(HeapTest, Bind) 4975 TEST(HeapTest, Bind)
4983 { 4976 {
4984 OwnPtr<SameThreadClosure> closure = bind(static_cast<void (Bar::*)(Visitor*) >(&Bar::trace), Bar::create(), static_cast<Visitor*>(0)); 4977 OwnPtr<SameThreadClosure> closure = bind(static_cast<void (Bar::*)(Visitor*) >(&Bar::trace), Bar::create(), static_cast<Visitor*>(0));
4978 // OffHeapInt* should not make Persistent.
4979 OwnPtr<SameThreadClosure> closure2 = bind(&OffHeapInt::voidFunction, OffHeap Int::create(1));
4985 preciselyCollectGarbage(); 4980 preciselyCollectGarbage();
4986 // The closure should have a persistent handle to the Bar. 4981 // The closure should have a persistent handle to the Bar.
4987 EXPECT_EQ(1u, Bar::s_live); 4982 EXPECT_EQ(1u, Bar::s_live);
4988 4983
4989 OwnPtr<SameThreadClosure> closure2 = bind(static_cast<void (Bar::*)(Visitor* )>(&Bar::trace), RawPtr<Bar>(Bar::create()), static_cast<Visitor*>(0));
4990 preciselyCollectGarbage();
4991 // The closure should have a persistent handle to the Bar.
4992 EXPECT_EQ(2u, Bar::s_live);
4993 // RawPtr<OffHeapInt> should not make Persistent.
4994 OwnPtr<SameThreadClosure> closure3 = bind(&OffHeapInt::voidFunction, RawPtr< OffHeapInt>(OffHeapInt::create(1).get()));
4995
4996 UseMixin::s_traceCount = 0; 4984 UseMixin::s_traceCount = 0;
4997 Mixin* mixin = UseMixin::create(); 4985 Mixin* mixin = UseMixin::create();
4998 OwnPtr<SameThreadClosure> mixinClosure = bind(static_cast<void (Mixin::*)(Vi sitor*)>(&Mixin::trace), mixin, static_cast<Visitor*>(0)); 4986 OwnPtr<SameThreadClosure> mixinClosure = bind(static_cast<void (Mixin::*)(Vi sitor*)>(&Mixin::trace), mixin, static_cast<Visitor*>(0));
4999 preciselyCollectGarbage(); 4987 preciselyCollectGarbage();
5000 // The closure should have a persistent handle to the mixin. 4988 // The closure should have a persistent handle to the mixin.
5001 EXPECT_EQ(1, UseMixin::s_traceCount); 4989 EXPECT_EQ(1, UseMixin::s_traceCount);
5002 } 4990 }
5003 4991
5004 typedef HeapHashSet<WeakMember<IntWrapper>> WeakSet; 4992 typedef HeapHashSet<WeakMember<IntWrapper>> WeakSet;
5005 4993
(...skipping 965 matching lines...) Expand 10 before | Expand all | Expand 10 after
5971 5959
5972 class TraceTypeNonEagerly1 { }; 5960 class TraceTypeNonEagerly1 { };
5973 WILL_NOT_BE_EAGERLY_TRACED_CLASS(TraceTypeNonEagerly1); 5961 WILL_NOT_BE_EAGERLY_TRACED_CLASS(TraceTypeNonEagerly1);
5974 class TraceTypeNonEagerly2 : public TraceTypeNonEagerly1 { }; 5962 class TraceTypeNonEagerly2 : public TraceTypeNonEagerly1 { };
5975 5963
5976 TEST(HeapTest, TraceTypesEagerly) 5964 TEST(HeapTest, TraceTypesEagerly)
5977 { 5965 {
5978 static_assert(TraceEagerlyTrait<TraceTypeEagerly1>::value, "should be true") ; 5966 static_assert(TraceEagerlyTrait<TraceTypeEagerly1>::value, "should be true") ;
5979 static_assert(TraceEagerlyTrait<Member<TraceTypeEagerly1>>::value, "should b e true"); 5967 static_assert(TraceEagerlyTrait<Member<TraceTypeEagerly1>>::value, "should b e true");
5980 static_assert(TraceEagerlyTrait<WeakMember<TraceTypeEagerly1>>::value, "shou ld be true"); 5968 static_assert(TraceEagerlyTrait<WeakMember<TraceTypeEagerly1>>::value, "shou ld be true");
5981 static_assert(TraceEagerlyTrait<RawPtr<TraceTypeEagerly1>>::value, "should b e true");
5982 static_assert(TraceEagerlyTrait<HeapVector<Member<TraceTypeEagerly1>>>::valu e, "should be true"); 5969 static_assert(TraceEagerlyTrait<HeapVector<Member<TraceTypeEagerly1>>>::valu e, "should be true");
5983 static_assert(TraceEagerlyTrait<HeapVector<WeakMember<TraceTypeEagerly1>>>:: value, "should be true"); 5970 static_assert(TraceEagerlyTrait<HeapVector<WeakMember<TraceTypeEagerly1>>>:: value, "should be true");
5984 static_assert(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::val ue, "should be true"); 5971 static_assert(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::val ue, "should be true");
5985 static_assert(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::val ue, "should be true"); 5972 static_assert(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::val ue, "should be true");
5986 using HashMapIntToObj = HeapHashMap<int, Member<TraceTypeEagerly1>>; 5973 using HashMapIntToObj = HeapHashMap<int, Member<TraceTypeEagerly1>>;
5987 static_assert(TraceEagerlyTrait<HashMapIntToObj>::value, "should be true"); 5974 static_assert(TraceEagerlyTrait<HashMapIntToObj>::value, "should be true");
5988 using HashMapObjToInt = HeapHashMap<Member<TraceTypeEagerly1>, int>; 5975 using HashMapObjToInt = HeapHashMap<Member<TraceTypeEagerly1>, int>;
5989 static_assert(TraceEagerlyTrait<HashMapObjToInt>::value, "should be true"); 5976 static_assert(TraceEagerlyTrait<HashMapObjToInt>::value, "should be true");
5990 5977
5991 static_assert(TraceEagerlyTrait<TraceTypeEagerly2>::value, "should be true") ; 5978 static_assert(TraceEagerlyTrait<TraceTypeEagerly2>::value, "should be true") ;
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
6490 persistentHeapVectorIntWrapper.append(&intWrapper); 6477 persistentHeapVectorIntWrapper.append(&intWrapper);
6491 heapVectorIntWrapper.append(&intWrapper); 6478 heapVectorIntWrapper.append(&intWrapper);
6492 EXPECT_EQ(1u, persistentHeapVectorIntWrapper.size()); 6479 EXPECT_EQ(1u, persistentHeapVectorIntWrapper.size());
6493 EXPECT_EQ(1u, heapVectorIntWrapper.size()); 6480 EXPECT_EQ(1u, heapVectorIntWrapper.size());
6494 6481
6495 EXPECT_EQ(persistentHeapVectorIntWrapper[0], heapVectorIntWrapper[0]); 6482 EXPECT_EQ(persistentHeapVectorIntWrapper[0], heapVectorIntWrapper[0]);
6496 EXPECT_EQ(33, heapVectorIntWrapper[0]->value()); 6483 EXPECT_EQ(33, heapVectorIntWrapper[0]->value());
6497 } 6484 }
6498 6485
6499 } // namespace blink 6486 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/heap/HeapTerminatedArray.h ('k') | third_party/WebKit/Source/platform/heap/TraceTraits.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698