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

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

Issue 1279043002: [heap] Rename IncrementalMarking::Abort to Stop. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 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 | « src/heap/mark-compact.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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2566 matching lines...) Expand 10 before | Expand all | Expand 10 after
2577 "function foo () { }" 2577 "function foo () { }"
2578 "function mkbar () { return new (new Function(\"\")) (); }" 2578 "function mkbar () { return new (new Function(\"\")) (); }"
2579 "function f (x) { return (x instanceof foo); }" 2579 "function f (x) { return (x instanceof foo); }"
2580 "function g () { f(mkbar()); }" 2580 "function g () { f(mkbar()); }"
2581 "f(new foo()); f(new foo());" 2581 "f(new foo()); f(new foo());"
2582 "%OptimizeFunctionOnNextCall(f);" 2582 "%OptimizeFunctionOnNextCall(f);"
2583 "f(new foo()); g();"); 2583 "f(new foo()); g();");
2584 } 2584 }
2585 2585
2586 IncrementalMarking* marking = CcTest::heap()->incremental_marking(); 2586 IncrementalMarking* marking = CcTest::heap()->incremental_marking();
2587 marking->Abort(); 2587 marking->Stop();
2588 marking->Start(Heap::kNoGCFlags); 2588 marking->Start(Heap::kNoGCFlags);
2589 2589
2590 Handle<JSFunction> f = 2590 Handle<JSFunction> f =
2591 v8::Utils::OpenHandle( 2591 v8::Utils::OpenHandle(
2592 *v8::Handle<v8::Function>::Cast( 2592 *v8::Handle<v8::Function>::Cast(
2593 CcTest::global()->Get(v8_str("f")))); 2593 CcTest::global()->Get(v8_str("f"))));
2594 2594
2595 CHECK(f->IsOptimized()); 2595 CHECK(f->IsOptimized());
2596 2596
2597 while (!Marking::IsBlack(Marking::MarkBitFrom(f->code())) && 2597 while (!Marking::IsBlack(Marking::MarkBitFrom(f->code())) &&
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2705 "%OptimizeFunctionOnNextCall(f);" 2705 "%OptimizeFunctionOnNextCall(f);"
2706 "f();"); 2706 "f();");
2707 } 2707 }
2708 Handle<JSFunction> f = 2708 Handle<JSFunction> f =
2709 v8::Utils::OpenHandle( 2709 v8::Utils::OpenHandle(
2710 *v8::Handle<v8::Function>::Cast( 2710 *v8::Handle<v8::Function>::Cast(
2711 CcTest::global()->Get(v8_str("f")))); 2711 CcTest::global()->Get(v8_str("f"))));
2712 CHECK(f->IsOptimized()); 2712 CHECK(f->IsOptimized());
2713 2713
2714 IncrementalMarking* marking = CcTest::heap()->incremental_marking(); 2714 IncrementalMarking* marking = CcTest::heap()->incremental_marking();
2715 marking->Abort(); 2715 marking->Stop();
2716 marking->Start(Heap::kNoGCFlags); 2716 marking->Start(Heap::kNoGCFlags);
2717 // The following calls will increment CcTest::heap()->global_ic_age(). 2717 // The following calls will increment CcTest::heap()->global_ic_age().
2718 CcTest::isolate()->ContextDisposedNotification(); 2718 CcTest::isolate()->ContextDisposedNotification();
2719 SimulateIncrementalMarking(CcTest::heap()); 2719 SimulateIncrementalMarking(CcTest::heap());
2720 CcTest::heap()->CollectAllGarbage(); 2720 CcTest::heap()->CollectAllGarbage();
2721 CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age()); 2721 CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age());
2722 CHECK_EQ(0, f->shared()->opt_count()); 2722 CHECK_EQ(0, f->shared()->opt_count());
2723 CHECK_EQ(0, f->shared()->code()->profiler_ticks()); 2723 CHECK_EQ(0, f->shared()->code()->profiler_ticks());
2724 } 2724 }
2725 2725
(...skipping 20 matching lines...) Expand all
2746 "f(); f();" 2746 "f(); f();"
2747 "%OptimizeFunctionOnNextCall(f);" 2747 "%OptimizeFunctionOnNextCall(f);"
2748 "f();"); 2748 "f();");
2749 } 2749 }
2750 Handle<JSFunction> f = 2750 Handle<JSFunction> f =
2751 v8::Utils::OpenHandle( 2751 v8::Utils::OpenHandle(
2752 *v8::Handle<v8::Function>::Cast( 2752 *v8::Handle<v8::Function>::Cast(
2753 CcTest::global()->Get(v8_str("f")))); 2753 CcTest::global()->Get(v8_str("f"))));
2754 CHECK(f->IsOptimized()); 2754 CHECK(f->IsOptimized());
2755 2755
2756 CcTest::heap()->incremental_marking()->Abort(); 2756 CcTest::heap()->incremental_marking()->Stop();
2757 2757
2758 // The following two calls will increment CcTest::heap()->global_ic_age(). 2758 // The following two calls will increment CcTest::heap()->global_ic_age().
2759 CcTest::isolate()->ContextDisposedNotification(); 2759 CcTest::isolate()->ContextDisposedNotification();
2760 CcTest::heap()->CollectAllGarbage(); 2760 CcTest::heap()->CollectAllGarbage();
2761 2761
2762 CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age()); 2762 CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age());
2763 CHECK_EQ(0, f->shared()->opt_count()); 2763 CHECK_EQ(0, f->shared()->opt_count());
2764 CHECK_EQ(0, f->shared()->code()->profiler_ticks()); 2764 CHECK_EQ(0, f->shared()->code()->profiler_ticks());
2765 } 2765 }
2766 2766
2767 2767
2768 TEST(IdleNotificationFinishMarking) { 2768 TEST(IdleNotificationFinishMarking) {
2769 i::FLAG_allow_natives_syntax = true; 2769 i::FLAG_allow_natives_syntax = true;
2770 CcTest::InitializeVM(); 2770 CcTest::InitializeVM();
2771 SimulateFullSpace(CcTest::heap()->old_space()); 2771 SimulateFullSpace(CcTest::heap()->old_space());
2772 IncrementalMarking* marking = CcTest::heap()->incremental_marking(); 2772 IncrementalMarking* marking = CcTest::heap()->incremental_marking();
2773 marking->Abort(); 2773 marking->Stop();
2774 marking->Start(Heap::kNoGCFlags); 2774 marking->Start(Heap::kNoGCFlags);
2775 2775
2776 CHECK_EQ(CcTest::heap()->gc_count(), 0); 2776 CHECK_EQ(CcTest::heap()->gc_count(), 0);
2777 2777
2778 // TODO(hpayer): We cannot write proper unit test right now for heap. 2778 // TODO(hpayer): We cannot write proper unit test right now for heap.
2779 // The ideal test would call kMaxIdleMarkingDelayCounter to test the 2779 // The ideal test would call kMaxIdleMarkingDelayCounter to test the
2780 // marking delay counter. 2780 // marking delay counter.
2781 2781
2782 // Perform a huge incremental marking step but don't complete marking. 2782 // Perform a huge incremental marking step but don't complete marking.
2783 intptr_t bytes_processed = 0; 2783 intptr_t bytes_processed = 0;
(...skipping 2910 matching lines...) Expand 10 before | Expand all | Expand 10 after
5694 5694
5695 // Ensure that the object allocated where we need it. 5695 // Ensure that the object allocated where we need it.
5696 Page* page = Page::FromAddress(o->address()); 5696 Page* page = Page::FromAddress(o->address());
5697 CHECK_EQ(desired_offset, page->Offset(o->address())); 5697 CHECK_EQ(desired_offset, page->Offset(o->address()));
5698 5698
5699 // Now we have an object right at the end of the page. 5699 // Now we have an object right at the end of the page.
5700 5700
5701 // Enable incremental marking to trigger actions in Heap::AdjustLiveBytes() 5701 // Enable incremental marking to trigger actions in Heap::AdjustLiveBytes()
5702 // that would cause crash. 5702 // that would cause crash.
5703 IncrementalMarking* marking = CcTest::heap()->incremental_marking(); 5703 IncrementalMarking* marking = CcTest::heap()->incremental_marking();
5704 marking->Abort(); 5704 marking->Stop();
5705 marking->Start(Heap::kNoGCFlags); 5705 marking->Start(Heap::kNoGCFlags);
5706 CHECK(marking->IsMarking()); 5706 CHECK(marking->IsMarking());
5707 5707
5708 // Now everything is set up for crashing in JSObject::MigrateFastToFast() 5708 // Now everything is set up for crashing in JSObject::MigrateFastToFast()
5709 // when it calls heap->AdjustLiveBytes(...). 5709 // when it calls heap->AdjustLiveBytes(...).
5710 JSObject::MigrateToMap(o, map2); 5710 JSObject::MigrateToMap(o, map2);
5711 } 5711 }
5712 5712
5713 5713
5714 TEST(Regress3631) { 5714 TEST(Regress3631) {
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after
6377 6377
6378 PrintF("Context size : %d bytes\n", measure.Size()); 6378 PrintF("Context size : %d bytes\n", measure.Size());
6379 PrintF("Context object count: %d\n", measure.Count()); 6379 PrintF("Context object count: %d\n", measure.Count());
6380 6380
6381 CHECK_LE(1000, measure.Count()); 6381 CHECK_LE(1000, measure.Count());
6382 CHECK_LE(50000, measure.Size()); 6382 CHECK_LE(50000, measure.Size());
6383 6383
6384 CHECK_LE(measure.Count(), count_upper_limit); 6384 CHECK_LE(measure.Count(), count_upper_limit);
6385 CHECK_LE(measure.Size(), size_upper_limit); 6385 CHECK_LE(measure.Size(), size_upper_limit);
6386 } 6386 }
OLDNEW
« no previous file with comments | « src/heap/mark-compact.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698