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

Side by Side Diff: test/cctest/test-identity-map.cc

Issue 2310143002: [heap] Introduce enum of garbage collection reasons. (Closed)
Patch Set: rebase Created 4 years, 3 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 | « test/cctest/test-heap-profiler.cc ('k') | test/cctest/test-log.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/factory.h" 5 #include "src/factory.h"
6 #include "src/identity-map.h" 6 #include "src/identity-map.h"
7 #include "src/isolate.h" 7 #include "src/isolate.h"
8 #include "src/objects.h" 8 #include "src/objects.h"
9 // FIXME(mstarzinger, marja): This is weird, but required because of the missing 9 // FIXME(mstarzinger, marja): This is weird, but required because of the missing
10 // (disallowed) include: src/factory.h -> src/objects-inl.h 10 // (disallowed) include: src/factory.h -> src/objects-inl.h
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 Handle<Object> num_keys[] = {t.num(2.1), t.num(2.4), t.num(3.3), t.num(4.3), 328 Handle<Object> num_keys[] = {t.num(2.1), t.num(2.4), t.num(3.3), t.num(4.3),
329 t.num(7.5), t.num(6.4), t.num(7.3), t.num(8.3), 329 t.num(7.5), t.num(6.4), t.num(7.3), t.num(8.3),
330 t.num(8.9), t.num(10.4)}; 330 t.num(8.9), t.num(10.4)};
331 331
332 // Insert some objects that should be in new space. 332 // Insert some objects that should be in new space.
333 for (size_t i = 0; i < arraysize(num_keys); i++) { 333 for (size_t i = 0; i < arraysize(num_keys); i++) {
334 t.map.Set(num_keys[i], &num_keys[i]); 334 t.map.Set(num_keys[i], &num_keys[i]);
335 } 335 }
336 336
337 // Do an explicit, real GC. 337 // Do an explicit, real GC.
338 t.heap()->CollectGarbage(i::NEW_SPACE); 338 t.heap()->CollectGarbage(i::NEW_SPACE, i::GarbageCollectionReason::kTesting);
339 339
340 // Check that searching for the numbers finds the same values. 340 // Check that searching for the numbers finds the same values.
341 for (size_t i = 0; i < arraysize(num_keys); i++) { 341 for (size_t i = 0; i < arraysize(num_keys); i++) {
342 t.CheckFind(num_keys[i], &num_keys[i]); 342 t.CheckFind(num_keys[i], &num_keys[i]);
343 t.CheckGet(num_keys[i], &num_keys[i]); 343 t.CheckGet(num_keys[i], &num_keys[i]);
344 } 344 }
345 } 345 }
346 346
347 347
348 TEST(CanonicalHandleScope) { 348 TEST(CanonicalHandleScope) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 380
381 // Test ordinary heap objects. 381 // Test ordinary heap objects.
382 Handle<HeapNumber> number1 = isolate->factory()->NewHeapNumber(3.3); 382 Handle<HeapNumber> number1 = isolate->factory()->NewHeapNumber(3.3);
383 Handle<String> string1 = 383 Handle<String> string1 =
384 isolate->factory()->NewStringFromAsciiChecked("test"); 384 isolate->factory()->NewStringFromAsciiChecked("test");
385 next_handle = isolate->handle_scope_data()->next; 385 next_handle = isolate->handle_scope_data()->next;
386 Handle<HeapNumber> number2(*number1); 386 Handle<HeapNumber> number2(*number1);
387 Handle<String> string2(*string1); 387 Handle<String> string2(*string1);
388 CHECK_EQ(number1.location(), number2.location()); 388 CHECK_EQ(number1.location(), number2.location());
389 CHECK_EQ(string1.location(), string2.location()); 389 CHECK_EQ(string1.location(), string2.location());
390 heap->CollectAllGarbage(); 390 CcTest::CollectAllGarbage(i::Heap::kFinalizeIncrementalMarkingMask);
391 Handle<HeapNumber> number3(*number2); 391 Handle<HeapNumber> number3(*number2);
392 Handle<String> string3(*string2); 392 Handle<String> string3(*string2);
393 CHECK_EQ(number1.location(), number3.location()); 393 CHECK_EQ(number1.location(), number3.location());
394 CHECK_EQ(string1.location(), string3.location()); 394 CHECK_EQ(string1.location(), string3.location());
395 // Check that no new handles have been allocated. 395 // Check that no new handles have been allocated.
396 CHECK_EQ(next_handle, isolate->handle_scope_data()->next); 396 CHECK_EQ(next_handle, isolate->handle_scope_data()->next);
397 397
398 // Inner handle scope do not create canonical handles. 398 // Inner handle scope do not create canonical handles.
399 { 399 {
400 HandleScope inner(isolate); 400 HandleScope inner(isolate);
(...skipping 18 matching lines...) Expand all
419 CHECK_NE(string4.location(), string6.location()); 419 CHECK_NE(string4.location(), string6.location());
420 CHECK_NE(number1.location(), number6.location()); 420 CHECK_NE(number1.location(), number6.location());
421 CHECK_NE(string1.location(), string6.location()); 421 CHECK_NE(string1.location(), string6.location());
422 CHECK_EQ(number5.location(), number6.location()); 422 CHECK_EQ(number5.location(), number6.location());
423 CHECK_EQ(string5.location(), string6.location()); 423 CHECK_EQ(string5.location(), string6.location());
424 } 424 }
425 } 425 }
426 426
427 } // namespace internal 427 } // namespace internal
428 } // namespace v8 428 } // namespace v8
OLDNEW
« no previous file with comments | « test/cctest/test-heap-profiler.cc ('k') | test/cctest/test-log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698