Lines Matching +full:cache +full:- +full:from
1 //===-- quarantine_test.cpp -------------------------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
31 static void deallocateCache(CacheT *Cache) { in deallocateCache() argument
32 while (scudo::QuarantineBatch *Batch = Cache->dequeueBatch()) in deallocateCache()
40 scudo::QuarantineBatch From; in TEST() local
41 From.init(FakePtr, 8UL); in TEST()
43 Into.merge(&From); in TEST()
51 EXPECT_EQ(From.Count, 0UL); in TEST()
52 EXPECT_EQ(From.Size, sizeof(scudo::QuarantineBatch)); in TEST()
53 EXPECT_EQ(From.getQuarantinedSize(), 0UL); in TEST()
57 From.push_back(FakePtr, 8UL); in TEST()
58 EXPECT_TRUE(Into.Count + From.Count == scudo::QuarantineBatch::MaxCount); in TEST()
59 EXPECT_TRUE(Into.canMerge(&From)); in TEST()
61 Into.merge(&From); in TEST()
65 From.init(FakePtr, 8UL); in TEST()
67 EXPECT_FALSE(Into.canMerge(&From)); in TEST()
71 CacheT Cache; in TEST() local
73 Cache.init(); in TEST()
75 Cache.mergeBatches(&ToDeallocate); in TEST()
82 CacheT Cache; in TEST() local
83 Cache.init(); in TEST()
84 Cache.enqueue(Cb, FakePtr, BlockSize); in TEST()
85 EXPECT_EQ(BlockSize + sizeof(scudo::QuarantineBatch), Cache.getSize()); in TEST()
89 Cache.mergeBatches(&ToDeallocate); in TEST()
92 EXPECT_EQ(BlockSize + sizeof(scudo::QuarantineBatch), Cache.getSize()); in TEST()
97 deallocateCache(&Cache); in TEST()
101 // Make a Cache with two batches small enough to merge. in TEST()
102 CacheT From; in TEST() local
103 From.init(); in TEST()
104 From.enqueue(Cb, FakePtr, BlockSize); in TEST()
105 CacheT Cache; in TEST() local
106 Cache.init(); in TEST()
107 Cache.enqueue(Cb, FakePtr, BlockSize); in TEST()
109 Cache.transfer(&From); in TEST()
111 Cache.getSize()); in TEST()
115 Cache.mergeBatches(&ToDeallocate); in TEST()
118 EXPECT_EQ(BlockSize * 2 + sizeof(scudo::QuarantineBatch), Cache.getSize()); in TEST()
121 deallocateCache(&Cache); in TEST()
126 const scudo::uptr NumBlocks = scudo::QuarantineBatch::MaxCount - 1; in TEST()
128 // Make a Cache with two batches small enough to merge. in TEST()
129 CacheT From; in TEST() local
130 CacheT Cache; in TEST() local
131 From.init(); in TEST()
132 Cache.init(); in TEST()
134 From.enqueue(Cb, FakePtr, BlockSize); in TEST()
135 Cache.enqueue(Cb, FakePtr, BlockSize); in TEST()
137 Cache.transfer(&From); in TEST()
139 Cache.getSize()); in TEST()
143 Cache.mergeBatches(&ToDeallocate); in TEST()
147 Cache.getSize()); in TEST()
150 deallocateCache(&Cache); in TEST()
159 // Make a Cache with many small batches. in TEST()
160 CacheT Cache; in TEST() local
161 Cache.init(); in TEST()
163 CacheT From; in TEST() local
164 From.init(); in TEST()
165 From.enqueue(Cb, FakePtr, BlockSize); in TEST()
166 Cache.transfer(&From); in TEST()
171 Cache.getSize()); in TEST()
175 Cache.mergeBatches(&ToDeallocate); in TEST()
180 Cache.getSize()); in TEST()
184 (NumBatchesBeforeMerge - NumBatchesAfterMerge)); in TEST()
186 deallocateCache(&Cache); in TEST()
195 CacheT Cache; in TEST() local
196 Cache.init(); in TEST()
202 scudo::uptr CacheSize = Cache.getSize(); in TEST()
203 EXPECT_EQ(Cache.getSize(), 0UL); in TEST()
205 // looking for a decrease of the size of the cache. in TEST()
207 Quarantine.put(&Cache, Cb, FakePtr, LargeBlockSize); in TEST()
208 if (!DrainOccurred && Cache.getSize() < CacheSize) in TEST()
210 CacheSize = Cache.getSize(); in TEST()
214 Quarantine.drainAndRecycle(&Cache, Cb); in TEST()
215 EXPECT_EQ(Cache.getSize(), 0UL); in TEST()
225 CacheT Cache; member
230 P->Cache.init(); in populateQuarantine()
232 P->Quarantine->put(&P->Cache, Cb, FakePtr, LargeBlockSize); in populateQuarantine()
254 Quarantine.drainAndRecycle(&T[I].Cache, Cb); in TEST()