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

Side by Side Diff: test/cctest/test-heap.cc

Issue 9403014: Cleanup idle notification tests. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 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 | Annotate | Revision Log
« no previous file with comments | « test/cctest/test-api.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 2
3 #include <stdlib.h> 3 #include <stdlib.h>
4 4
5 #include "v8.h" 5 #include "v8.h"
6 6
7 #include "execution.h" 7 #include "execution.h"
8 #include "factory.h" 8 #include "factory.h"
9 #include "macro-assembler.h" 9 #include "macro-assembler.h"
10 #include "global-handles.h" 10 #include "global-handles.h"
(...skipping 1310 matching lines...) Expand 10 before | Expand all | Expand 10 after
1321 old_capacity = new_space->Capacity(); 1321 old_capacity = new_space->Capacity();
1322 new_space->Grow(); 1322 new_space->Grow();
1323 new_capacity = new_space->Capacity(); 1323 new_capacity = new_space->Capacity();
1324 CHECK(2 * old_capacity == new_capacity); 1324 CHECK(2 * old_capacity == new_capacity);
1325 FillUpNewSpace(new_space); 1325 FillUpNewSpace(new_space);
1326 HEAP->CollectAllAvailableGarbage(); 1326 HEAP->CollectAllAvailableGarbage();
1327 new_capacity = new_space->Capacity(); 1327 new_capacity = new_space->Capacity();
1328 CHECK(old_capacity == new_capacity); 1328 CHECK(old_capacity == new_capacity);
1329 } 1329 }
1330 1330
1331 // This just checks the contract of the IdleNotification() function,
1332 // and does not verify that it does reasonable work.
1333 TEST(IdleNotificationAdvancesIncrementalMarking) {
1334 if (!FLAG_incremental_marking || !FLAG_incremental_marking_steps) return;
1335 InitializeVM();
1336 v8::HandleScope scope;
1337 const char* source = "function binom(n, m) {"
1338 " var C = [[1]];"
1339 " for (var i = 1; i <= n; ++i) {"
1340 " C[i] = [1];"
1341 " for (var j = 1; j < i; ++j) {"
1342 " C[i][j] = C[i-1][j-1] + C[i-1][j];"
1343 " }"
1344 " C[i][i] = 1;"
1345 " }"
1346 " return C[n][m];"
1347 "};"
1348 "binom(1000, 500)";
1349 {
1350 AlwaysAllocateScope aa_scope;
1351 CompileRun(source);
1352 }
1353 intptr_t old_size = HEAP->SizeOfObjects();
1354 bool no_idle_work = v8::V8::IdleNotification(900);
1355 while (!v8::V8::IdleNotification(900)) ;
1356 intptr_t new_size = HEAP->SizeOfObjects();
1357 CHECK(no_idle_work || new_size < old_size);
1358 }
1359
1360 1331
1361 static int NumberOfGlobalObjects() { 1332 static int NumberOfGlobalObjects() {
1362 int count = 0; 1333 int count = 0;
1363 HeapIterator iterator; 1334 HeapIterator iterator;
1364 for (HeapObject* obj = iterator.next(); obj != NULL; obj = iterator.next()) { 1335 for (HeapObject* obj = iterator.next(); obj != NULL; obj = iterator.next()) {
1365 if (obj->IsGlobalObject()) count++; 1336 if (obj->IsGlobalObject()) count++;
1366 } 1337 }
1367 return count; 1338 return count;
1368 } 1339 }
1369 1340
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 // clearing correctly records slots in prototype transition array. 1590 // clearing correctly records slots in prototype transition array.
1620 i::FLAG_always_compact = true; 1591 i::FLAG_always_compact = true;
1621 Handle<Map> map(baseObject->map()); 1592 Handle<Map> map(baseObject->map());
1622 CHECK(!space->LastPage()->Contains(map->prototype_transitions()->address())); 1593 CHECK(!space->LastPage()->Contains(map->prototype_transitions()->address()));
1623 CHECK(space->LastPage()->Contains(prototype->address())); 1594 CHECK(space->LastPage()->Contains(prototype->address()));
1624 baseObject->SetPrototype(*prototype, false)->ToObjectChecked(); 1595 baseObject->SetPrototype(*prototype, false)->ToObjectChecked();
1625 CHECK(map->GetPrototypeTransition(*prototype)->IsMap()); 1596 CHECK(map->GetPrototypeTransition(*prototype)->IsMap());
1626 HEAP->CollectAllGarbage(Heap::kNoGCFlags); 1597 HEAP->CollectAllGarbage(Heap::kNoGCFlags);
1627 CHECK(map->GetPrototypeTransition(*prototype)->IsMap()); 1598 CHECK(map->GetPrototypeTransition(*prototype)->IsMap());
1628 } 1599 }
OLDNEW
« no previous file with comments | « test/cctest/test-api.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698