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

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

Issue 430503007: Rename ASSERT* to DCHECK*. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE and fixes Created 6 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 | Annotate | Revision Log
« no previous file with comments | « test/cctest/test-hashing.cc ('k') | test/cctest/test-heap-profiler.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 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 2881 matching lines...) Expand 10 before | Expand all | Expand 10 after
2892 CompileRun("var root = new F;"); 2892 CompileRun("var root = new F;");
2893 Handle<JSObject> root = GetByName("root"); 2893 Handle<JSObject> root = GetByName("root");
2894 2894
2895 // Count number of live transitions before marking. 2895 // Count number of live transitions before marking.
2896 int transitions_before = CountMapTransitions(root->map()); 2896 int transitions_before = CountMapTransitions(root->map());
2897 CHECK_EQ(transitions_count, transitions_before); 2897 CHECK_EQ(transitions_count, transitions_before);
2898 2898
2899 CompileRun("o = new F;" 2899 CompileRun("o = new F;"
2900 "root = new F"); 2900 "root = new F");
2901 root = GetByName("root"); 2901 root = GetByName("root");
2902 ASSERT(root->map()->transitions()->IsSimpleTransition()); 2902 DCHECK(root->map()->transitions()->IsSimpleTransition());
2903 AddPropertyTo(2, root, "happy"); 2903 AddPropertyTo(2, root, "happy");
2904 2904
2905 // Count number of live transitions after marking. Note that one transition 2905 // Count number of live transitions after marking. Note that one transition
2906 // is left, because 'o' still holds an instance of one transition target. 2906 // is left, because 'o' still holds an instance of one transition target.
2907 int transitions_after = CountMapTransitions( 2907 int transitions_after = CountMapTransitions(
2908 Map::cast(root->map()->GetBackPointer())); 2908 Map::cast(root->map()->GetBackPointer()));
2909 CHECK_EQ(1, transitions_after); 2909 CHECK_EQ(1, transitions_after);
2910 } 2910 }
2911 #endif // DEBUG 2911 #endif // DEBUG
2912 2912
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after
3786 Isolate* isolate = CcTest::i_isolate(); 3786 Isolate* isolate = CcTest::i_isolate();
3787 Heap* heap = isolate->heap(); 3787 Heap* heap = isolate->heap();
3788 v8::HandleScope scope(reinterpret_cast<v8::Isolate*>(isolate)); 3788 v8::HandleScope scope(reinterpret_cast<v8::Isolate*>(isolate));
3789 HandleScopeData* data = isolate->handle_scope_data(); 3789 HandleScopeData* data = isolate->handle_scope_data();
3790 Handle<Object> init(heap->empty_string(), isolate); 3790 Handle<Object> init(heap->empty_string(), isolate);
3791 while (data->next < data->limit) { 3791 while (data->next < data->limit) {
3792 Handle<Object> obj(heap->empty_string(), isolate); 3792 Handle<Object> obj(heap->empty_string(), isolate);
3793 } 3793 }
3794 // An entire block of handles has been filled. 3794 // An entire block of handles has been filled.
3795 // Next handle would require a new block. 3795 // Next handle would require a new block.
3796 ASSERT(data->next == data->limit); 3796 DCHECK(data->next == data->limit);
3797 3797
3798 DeferredHandleScope deferred(isolate); 3798 DeferredHandleScope deferred(isolate);
3799 DummyVisitor visitor; 3799 DummyVisitor visitor;
3800 isolate->handle_scope_implementer()->Iterate(&visitor); 3800 isolate->handle_scope_implementer()->Iterate(&visitor);
3801 delete deferred.Detach(); 3801 delete deferred.Detach();
3802 } 3802 }
3803 3803
3804 3804
3805 TEST(IncrementalMarkingStepMakesBigProgressWithLargeObjects) { 3805 TEST(IncrementalMarkingStepMakesBigProgressWithLargeObjects) {
3806 CcTest::InitializeVM(); 3806 CcTest::InitializeVM();
3807 v8::HandleScope scope(CcTest::isolate()); 3807 v8::HandleScope scope(CcTest::isolate());
3808 CompileRun("function f(n) {" 3808 CompileRun("function f(n) {"
3809 " var a = new Array(n);" 3809 " var a = new Array(n);"
3810 " for (var i = 0; i < n; i += 100) a[i] = i;" 3810 " for (var i = 0; i < n; i += 100) a[i] = i;"
3811 "};" 3811 "};"
3812 "f(10 * 1024 * 1024);"); 3812 "f(10 * 1024 * 1024);");
3813 IncrementalMarking* marking = CcTest::heap()->incremental_marking(); 3813 IncrementalMarking* marking = CcTest::heap()->incremental_marking();
3814 if (marking->IsStopped()) marking->Start(); 3814 if (marking->IsStopped()) marking->Start();
3815 // This big step should be sufficient to mark the whole array. 3815 // This big step should be sufficient to mark the whole array.
3816 marking->Step(100 * MB, IncrementalMarking::NO_GC_VIA_STACK_GUARD); 3816 marking->Step(100 * MB, IncrementalMarking::NO_GC_VIA_STACK_GUARD);
3817 ASSERT(marking->IsComplete()); 3817 DCHECK(marking->IsComplete());
3818 } 3818 }
3819 3819
3820 3820
3821 TEST(DisableInlineAllocation) { 3821 TEST(DisableInlineAllocation) {
3822 i::FLAG_allow_natives_syntax = true; 3822 i::FLAG_allow_natives_syntax = true;
3823 CcTest::InitializeVM(); 3823 CcTest::InitializeVM();
3824 v8::HandleScope scope(CcTest::isolate()); 3824 v8::HandleScope scope(CcTest::isolate());
3825 CompileRun("function test() {" 3825 CompileRun("function test() {"
3826 " var x = [];" 3826 " var x = [];"
3827 " for (var i = 0; i < 10; i++) {" 3827 " for (var i = 0; i < 10; i++) {"
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
3947 *v8::Handle<v8::Function>::Cast( 3947 *v8::Handle<v8::Function>::Cast(
3948 CcTest::global()->Get(v8_str("bar")))); 3948 CcTest::global()->Get(v8_str("bar"))));
3949 code = scope.CloseAndEscape(Handle<Code>(bar->code())); 3949 code = scope.CloseAndEscape(Handle<Code>(bar->code()));
3950 } 3950 }
3951 3951
3952 // Now make sure that a gc should get rid of the function 3952 // Now make sure that a gc should get rid of the function
3953 for (int i = 0; i < 4; i++) { 3953 for (int i = 0; i < 4; i++) {
3954 heap->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask); 3954 heap->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask);
3955 } 3955 }
3956 3956
3957 ASSERT(code->marked_for_deoptimization()); 3957 DCHECK(code->marked_for_deoptimization());
3958 } 3958 }
3959 3959
3960 3960
3961 TEST(ObjectsInOptimizedCodeAreWeak) { 3961 TEST(ObjectsInOptimizedCodeAreWeak) {
3962 if (i::FLAG_always_opt || !i::FLAG_crankshaft) return; 3962 if (i::FLAG_always_opt || !i::FLAG_crankshaft) return;
3963 i::FLAG_weak_embedded_objects_in_optimized_code = true; 3963 i::FLAG_weak_embedded_objects_in_optimized_code = true;
3964 i::FLAG_allow_natives_syntax = true; 3964 i::FLAG_allow_natives_syntax = true;
3965 CcTest::InitializeVM(); 3965 CcTest::InitializeVM();
3966 Isolate* isolate = CcTest::i_isolate(); 3966 Isolate* isolate = CcTest::i_isolate();
3967 v8::internal::Heap* heap = CcTest::heap(); 3967 v8::internal::Heap* heap = CcTest::heap();
(...skipping 20 matching lines...) Expand all
3988 *v8::Handle<v8::Function>::Cast( 3988 *v8::Handle<v8::Function>::Cast(
3989 CcTest::global()->Get(v8_str("bar")))); 3989 CcTest::global()->Get(v8_str("bar"))));
3990 code = scope.CloseAndEscape(Handle<Code>(bar->code())); 3990 code = scope.CloseAndEscape(Handle<Code>(bar->code()));
3991 } 3991 }
3992 3992
3993 // Now make sure that a gc should get rid of the function 3993 // Now make sure that a gc should get rid of the function
3994 for (int i = 0; i < 4; i++) { 3994 for (int i = 0; i < 4; i++) {
3995 heap->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask); 3995 heap->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask);
3996 } 3996 }
3997 3997
3998 ASSERT(code->marked_for_deoptimization()); 3998 DCHECK(code->marked_for_deoptimization());
3999 } 3999 }
4000 4000
4001 4001
4002 TEST(NoWeakHashTableLeakWithIncrementalMarking) { 4002 TEST(NoWeakHashTableLeakWithIncrementalMarking) {
4003 if (i::FLAG_always_opt || !i::FLAG_crankshaft) return; 4003 if (i::FLAG_always_opt || !i::FLAG_crankshaft) return;
4004 if (!i::FLAG_incremental_marking) return; 4004 if (!i::FLAG_incremental_marking) return;
4005 i::FLAG_weak_embedded_objects_in_optimized_code = true; 4005 i::FLAG_weak_embedded_objects_in_optimized_code = true;
4006 i::FLAG_allow_natives_syntax = true; 4006 i::FLAG_allow_natives_syntax = true;
4007 i::FLAG_compilation_cache = false; 4007 i::FLAG_compilation_cache = false;
4008 CcTest::InitializeVM(); 4008 CcTest::InitializeVM();
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
4320 4320
4321 4321
4322 TEST(Regress357137) { 4322 TEST(Regress357137) {
4323 CcTest::InitializeVM(); 4323 CcTest::InitializeVM();
4324 v8::Isolate* isolate = CcTest::isolate(); 4324 v8::Isolate* isolate = CcTest::isolate();
4325 v8::HandleScope hscope(isolate); 4325 v8::HandleScope hscope(isolate);
4326 v8::Handle<v8::ObjectTemplate> global =v8::ObjectTemplate::New(isolate); 4326 v8::Handle<v8::ObjectTemplate> global =v8::ObjectTemplate::New(isolate);
4327 global->Set(v8::String::NewFromUtf8(isolate, "interrupt"), 4327 global->Set(v8::String::NewFromUtf8(isolate, "interrupt"),
4328 v8::FunctionTemplate::New(isolate, RequestInterrupt)); 4328 v8::FunctionTemplate::New(isolate, RequestInterrupt));
4329 v8::Local<v8::Context> context = v8::Context::New(isolate, NULL, global); 4329 v8::Local<v8::Context> context = v8::Context::New(isolate, NULL, global);
4330 ASSERT(!context.IsEmpty()); 4330 DCHECK(!context.IsEmpty());
4331 v8::Context::Scope cscope(context); 4331 v8::Context::Scope cscope(context);
4332 4332
4333 v8::Local<v8::Value> result = CompileRun( 4333 v8::Local<v8::Value> result = CompileRun(
4334 "var locals = '';" 4334 "var locals = '';"
4335 "for (var i = 0; i < 512; i++) locals += 'var v' + i + '= 42;';" 4335 "for (var i = 0; i < 512; i++) locals += 'var v' + i + '= 42;';"
4336 "eval('function f() {' + locals + 'return function() { return v0; }; }');" 4336 "eval('function f() {' + locals + 'return function() { return v0; }; }');"
4337 "interrupt();" // This triggers a fake stack overflow in f. 4337 "interrupt();" // This triggers a fake stack overflow in f.
4338 "f()()"); 4338 "f()()");
4339 CHECK_EQ(42.0, result->ToNumber()->Value()); 4339 CHECK_EQ(42.0, result->ToNumber()->Value());
4340 } 4340 }
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
4496 #ifdef DEBUG 4496 #ifdef DEBUG
4497 TEST(PathTracer) { 4497 TEST(PathTracer) {
4498 CcTest::InitializeVM(); 4498 CcTest::InitializeVM();
4499 v8::HandleScope scope(CcTest::isolate()); 4499 v8::HandleScope scope(CcTest::isolate());
4500 4500
4501 v8::Local<v8::Value> result = CompileRun("'abc'"); 4501 v8::Local<v8::Value> result = CompileRun("'abc'");
4502 Handle<Object> o = v8::Utils::OpenHandle(*result); 4502 Handle<Object> o = v8::Utils::OpenHandle(*result);
4503 CcTest::i_isolate()->heap()->TracePathToObject(*o); 4503 CcTest::i_isolate()->heap()->TracePathToObject(*o);
4504 } 4504 }
4505 #endif // DEBUG 4505 #endif // DEBUG
OLDNEW
« no previous file with comments | « test/cctest/test-hashing.cc ('k') | test/cctest/test-heap-profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698