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

Side by Side Diff: third_party/tcmalloc/chromium/src/tests/pagemap_unittest.cc

Issue 576001: Merged third_party/tcmalloc/vendor/src(google-perftools r87) into... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Removed the unnecessary printf and ASSERT(0) Created 10 years, 9 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
OLDNEW
1 // Copyright (c) 2003, Google Inc. 1 // Copyright (c) 2003, Google Inc.
2 // All rights reserved. 2 // 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 map.Ensure(elements[i], 1); 106 map.Ensure(elements[i], 1);
107 map.set(elements[i], (void*)(elements[i]+1)); 107 map.set(elements[i], (void*)(elements[i]+1));
108 CHECK_EQ(map.get(elements[i]), (void*)(elements[i]+1)); 108 CHECK_EQ(map.get(elements[i]), (void*)(elements[i]+1));
109 } 109 }
110 for (intptr_t i = 0; i < static_cast<intptr_t>(limit); i++) { 110 for (intptr_t i = 0; i < static_cast<intptr_t>(limit); i++) {
111 CHECK_EQ(map.get(i), (void*)(i+1)); 111 CHECK_EQ(map.get(i), (void*)(i+1));
112 } 112 }
113 } 113 }
114 } 114 }
115 115
116 // REQUIRES: BITS==10, i.e., valid range is [0,1023].
117 // Representations for different types will end up being:
118 // PageMap1: array[1024]
119 // PageMap2: array[32][32]
120 // PageMap3: array[16][16][4]
121 template <class Type>
122 void TestNext(const char* name) {
123 RAW_LOG(ERROR, "Running NextTest %s\n", name);
124 Type map(malloc);
125 char a, b, c, d, e;
126
127 // When map is empty
128 CHECK(map.Next(0) == NULL);
129 CHECK(map.Next(5) == NULL);
130 CHECK(map.Next(1<<30) == NULL);
131
132 // Add a single value
133 map.Ensure(40, 1);
134 map.set(40, &a);
135 CHECK(map.Next(0) == &a);
136 CHECK(map.Next(39) == &a);
137 CHECK(map.Next(40) == &a);
138 CHECK(map.Next(41) == NULL);
139 CHECK(map.Next(1<<30) == NULL);
140
141 // Add a few values
142 map.Ensure(41, 1);
143 map.Ensure(100, 3);
144 map.set(41, &b);
145 map.set(100, &c);
146 map.set(101, &d);
147 map.set(102, &e);
148 CHECK(map.Next(0) == &a);
149 CHECK(map.Next(39) == &a);
150 CHECK(map.Next(40) == &a);
151 CHECK(map.Next(41) == &b);
152 CHECK(map.Next(42) == &c);
153 CHECK(map.Next(63) == &c);
154 CHECK(map.Next(64) == &c);
155 CHECK(map.Next(65) == &c);
156 CHECK(map.Next(99) == &c);
157 CHECK(map.Next(100) == &c);
158 CHECK(map.Next(101) == &d);
159 CHECK(map.Next(102) == &e);
160 CHECK(map.Next(103) == NULL);
161 }
162
116 int main(int argc, char** argv) { 163 int main(int argc, char** argv) {
117 TestMap< TCMalloc_PageMap1<10> > (100, true); 164 TestMap< TCMalloc_PageMap1<10> > (100, true);
118 TestMap< TCMalloc_PageMap1<10> > (1 << 10, false); 165 TestMap< TCMalloc_PageMap1<10> > (1 << 10, false);
119 TestMap< TCMalloc_PageMap2<20> > (100, true); 166 TestMap< TCMalloc_PageMap2<20> > (100, true);
120 TestMap< TCMalloc_PageMap2<20> > (1 << 20, false); 167 TestMap< TCMalloc_PageMap2<20> > (1 << 20, false);
121 TestMap< TCMalloc_PageMap3<20> > (100, true); 168 TestMap< TCMalloc_PageMap3<20> > (100, true);
122 TestMap< TCMalloc_PageMap3<20> > (1 << 20, false); 169 TestMap< TCMalloc_PageMap3<20> > (1 << 20, false);
123 170
171 TestNext< TCMalloc_PageMap1<10> >("PageMap1");
172 TestNext< TCMalloc_PageMap2<10> >("PageMap2");
173 TestNext< TCMalloc_PageMap3<10> >("PageMap3");
174
124 printf("PASS\n"); 175 printf("PASS\n");
125 return 0; 176 return 0;
126 } 177 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698