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

Side by Side Diff: Source/platform/PurgeableVectorTest.cpp

Issue 177213007: Simplify DefaultAllocator::Quantizer using partitionAllocActualSize() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebased + adjusted PurgeableVector test Created 6 years, 10 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
« no previous file with comments | « no previous file | Source/wtf/DefaultAllocator.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) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 std::generate(testData.begin(), testData.end(), &std::rand); 170 std::generate(testData.begin(), testData.end(), &std::rand);
171 171
172 PurgeableVector purgeableVector(makePurgeableOption()); 172 PurgeableVector purgeableVector(makePurgeableOption());
173 purgeableVector.reserveCapacity(kTestSize); 173 purgeableVector.reserveCapacity(kTestSize);
174 const char* const data = purgeableVector.data(); 174 const char* const data = purgeableVector.data();
175 175
176 purgeableVector.append(testData.data(), testData.size()); 176 purgeableVector.append(testData.data(), testData.size());
177 EXPECT_EQ(data, purgeableVector.data()); 177 EXPECT_EQ(data, purgeableVector.data());
178 EXPECT_EQ(0, memcmp(purgeableVector.data(), testData.data(), testData.size() )); 178 EXPECT_EQ(0, memcmp(purgeableVector.data(), testData.data(), testData.size() ));
179 179
180 // Appending one extra byte should cause a reallocation since the first 180 // This test is not reliable if the PurgeableVector uses a plain WTF::Vector
181 // allocation happened while the purgeable vector was empty. This behavior 181 // for storage, as it does if discardable memory is not supported; the vecto rs
182 // helps us guarantee that there is no memory waste on very small vectors 182 // capacity will always be expanded to fill the PartitionAlloc bucket.
183 // (which SharedBuffer requires). 183 if (isDiscardableMemorySupported()) {
184 purgeableVector.append(testData.data(), 1); 184 // Appending one extra byte should cause a reallocation since the first
185 EXPECT_NE(data, purgeableVector.data()); 185 // allocation happened while the purgeable vector was empty. This behavi or
186 // helps us guarantee that there is no memory waste on very small vector s
187 // (which SharedBuffer requires).
188 purgeableVector.append(testData.data(), 1);
189 EXPECT_NE(data, purgeableVector.data());
190 }
186 } 191 }
187 192
188 TEST_P(PurgeableVectorTestWithPlatformSupport, appendReservesCapacityIfNeeded) 193 TEST_P(PurgeableVectorTestWithPlatformSupport, appendReservesCapacityIfNeeded)
189 { 194 {
190 Vector<char> testData(kTestSize); 195 Vector<char> testData(kTestSize);
191 std::generate(testData.begin(), testData.end(), &std::rand); 196 std::generate(testData.begin(), testData.end(), &std::rand);
192 197
193 PurgeableVector purgeableVector(makePurgeableOption()); 198 PurgeableVector purgeableVector(makePurgeableOption());
194 // No reserveCapacity(). 199 // No reserveCapacity().
195 ASSERT_FALSE(purgeableVector.data()); 200 ASSERT_FALSE(purgeableVector.data());
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 ASSERT_EQ(0, memcmp(purgeableVector.data(), testData.data(), testData.si ze())); 328 ASSERT_EQ(0, memcmp(purgeableVector.data(), testData.data(), testData.si ze()));
324 } 329 }
325 330
326 // Instantiates all the unit tests using the SharedBufferTestWithPlatformSupport fixture both with 331 // Instantiates all the unit tests using the SharedBufferTestWithPlatformSupport fixture both with
327 // and without discardable memory support. 332 // and without discardable memory support.
328 INSTANTIATE_TEST_CASE_P(testsWithPlatformSetUp, PurgeableVectorTestWithPlatformS upport, 333 INSTANTIATE_TEST_CASE_P(testsWithPlatformSetUp, PurgeableVectorTestWithPlatformS upport,
329 ::testing::Values(DontSupportDiscardableMemory, SupportDiscardableMemory)); 334 ::testing::Values(DontSupportDiscardableMemory, SupportDiscardableMemory));
330 335
331 } // namespace 336 } // namespace
332 337
OLDNEW
« no previous file with comments | « no previous file | Source/wtf/DefaultAllocator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698