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

Unified Diff: tests/TArrayTest.cpp

Issue 1760933002: rewrite TArray test to not delete an SkSTArray via a SkTArray pointer. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/TArrayTest.cpp
diff --git a/tests/TArrayTest.cpp b/tests/TArrayTest.cpp
index 6a9b5f5a8189cd77cbb8b39ed0bd4c44bbb93677..abf1075bc5be94a21741ae2f5e4c9f22071fb0bc 100644
--- a/tests/TArrayTest.cpp
+++ b/tests/TArrayTest.cpp
@@ -58,57 +58,43 @@ static void TestTSet_basic(skiatest::Reporter* reporter) {
// {0, 3, 2 }
}
-namespace {
-SkTArray<int>* make() {
- typedef SkTArray<int> IntArray;
- return new IntArray;
-}
-
-template <int N> SkTArray<int>* make_s() {
- typedef SkSTArray<N, int> IntArray;
- return new IntArray;
-}
-}
-
static void test_swap(skiatest::Reporter* reporter) {
- typedef SkTArray<int>* (*ArrayMaker)();
- ArrayMaker arrayMakers[] = {make, make_s<5>, make_s<10>, make_s<20>};
- static int kSizes[] = {0, 1, 5, 10, 15, 20, 25};
- for (size_t arrayA = 0; arrayA < SK_ARRAY_COUNT(arrayMakers); ++arrayA) {
- for (size_t arrayB = arrayA; arrayB < SK_ARRAY_COUNT(arrayMakers); ++arrayB) {
- for (size_t dataSizeA = 0; dataSizeA < SK_ARRAY_COUNT(kSizes); ++dataSizeA) {
- for (size_t dataSizeB = 0; dataSizeB < SK_ARRAY_COUNT(kSizes); ++dataSizeB) {
- int curr = 0;
- SkTArray<int>* a = arrayMakers[arrayA]();
- SkTArray<int>* b = arrayMakers[arrayB]();
- for (int i = 0; i < kSizes[dataSizeA]; ++i) {
- a->push_back(curr++);
- }
- for (int i = 0; i < kSizes[dataSizeB]; ++i) {
- b->push_back(curr++);
- }
- a->swap(b);
- REPORTER_ASSERT(reporter, kSizes[dataSizeA] == b->count());
- REPORTER_ASSERT(reporter, kSizes[dataSizeB] == a->count());
- curr = 0;
- for (int i = 0; i < kSizes[dataSizeA]; ++i) {
- REPORTER_ASSERT(reporter, curr++ == (*b)[i]);
- }
- for (int i = 0; i < kSizes[dataSizeB]; ++i) {
- REPORTER_ASSERT(reporter, curr++ == (*a)[i]);
- }
- delete b;
-
- a->swap(a);
- curr = kSizes[dataSizeA];
- for (int i = 0; i < kSizes[dataSizeB]; ++i) {
- REPORTER_ASSERT(reporter, curr++ == (*a)[i]);
- }
- delete a;
- }
- }
+ SkTArray<int> arr;
+ SkSTArray< 5, int> arr5;
+ SkSTArray<10, int> arr10;
+ SkSTArray<20, int> arr20;
+
+ SkTArray<int>* arrays[] = { &arr, &arr5, &arr10, &arr20 };
+ int sizes[] = {0, 1, 5, 10, 15, 20, 25};
+
+ for (auto a : arrays) {
+ for (auto b : arrays) {
+ if (a == b) {
+ continue;
}
- }
+
+ for (auto sizeA : sizes) {
+ for (auto sizeB : sizes) {
+ a->reset();
+ b->reset();
+
+ int curr = 0;
+ for (int i = 0; i < sizeA; i++) { a->push_back(curr++); }
+ for (int i = 0; i < sizeB; i++) { b->push_back(curr++); }
+
+ a->swap(b);
+ REPORTER_ASSERT(reporter, b->count() == sizeA);
+ REPORTER_ASSERT(reporter, a->count() == sizeB);
+
+ curr = 0;
+ for (int x : *b) { REPORTER_ASSERT(reporter, x == curr++); }
+ for (int x : *a) { REPORTER_ASSERT(reporter, x == curr++); }
+
+ a->swap(a);
+ curr = sizeA;
+ for (int x : *a) { REPORTER_ASSERT(reporter, x == curr++); }
+ }}
+ }}
}
DEF_TEST(TArray, reporter) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698