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

Side by Side Diff: test/cctest/test-unboxed-doubles.cc

Issue 1082973003: Force full GC whenever CollectAllGarbage is meant to trigger a full GC. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 8 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-threads.cc ('k') | test/cctest/test-weakmaps.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 <stdlib.h> 5 #include <stdlib.h>
6 #include <utility> 6 #include <utility>
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/compilation-cache.h" 10 #include "src/compilation-cache.h"
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 CHECK(object->HasFastProperties()); 902 CHECK(object->HasFastProperties());
903 CHECK(!object->map()->HasFastPointerLayout()); 903 CHECK(!object->map()->HasFastPointerLayout());
904 904
905 Handle<Map> normalized_map = 905 Handle<Map> normalized_map =
906 Map::Normalize(map, KEEP_INOBJECT_PROPERTIES, "testing"); 906 Map::Normalize(map, KEEP_INOBJECT_PROPERTIES, "testing");
907 JSObject::MigrateToMap(object, normalized_map); 907 JSObject::MigrateToMap(object, normalized_map);
908 CHECK(!object->HasFastProperties()); 908 CHECK(!object->HasFastProperties());
909 CHECK(object->map()->HasFastPointerLayout()); 909 CHECK(object->map()->HasFastPointerLayout());
910 910
911 // Trigger GCs and heap verification. 911 // Trigger GCs and heap verification.
912 CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags); 912 CcTest::heap()->CollectAllGarbage();
913 } 913 }
914 914
915 915
916 TEST(DescriptorArrayTrimming) { 916 TEST(DescriptorArrayTrimming) {
917 CcTest::InitializeVM(); 917 CcTest::InitializeVM();
918 v8::HandleScope scope(CcTest::isolate()); 918 v8::HandleScope scope(CcTest::isolate());
919 Isolate* isolate = CcTest::i_isolate(); 919 Isolate* isolate = CcTest::i_isolate();
920 920
921 const int kFieldCount = 128; 921 const int kFieldCount = 128;
922 const int kSplitFieldIndex = 32; 922 const int kSplitFieldIndex = 32;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 // The unused tail of the layout descriptor is now "durty" because of sharing. 959 // The unused tail of the layout descriptor is now "durty" because of sharing.
960 CHECK(map->layout_descriptor()->IsConsistentWithMap(*map)); 960 CHECK(map->layout_descriptor()->IsConsistentWithMap(*map));
961 for (int i = kSplitFieldIndex + 1; i < kTrimmedLayoutDescriptorLength; i++) { 961 for (int i = kSplitFieldIndex + 1; i < kTrimmedLayoutDescriptorLength; i++) {
962 CHECK(!map->layout_descriptor()->IsTagged(i)); 962 CHECK(!map->layout_descriptor()->IsTagged(i));
963 } 963 }
964 CHECK_LT(map->NumberOfOwnDescriptors(), 964 CHECK_LT(map->NumberOfOwnDescriptors(),
965 map->instance_descriptors()->number_of_descriptors()); 965 map->instance_descriptors()->number_of_descriptors());
966 966
967 // Call GC that should trim both |map|'s descriptor array and layout 967 // Call GC that should trim both |map|'s descriptor array and layout
968 // descriptor. 968 // descriptor.
969 CcTest::heap()->CollectAllGarbage(Heap::kNoGCFlags); 969 CcTest::heap()->CollectAllGarbage();
970 970
971 // The unused tail of the layout descriptor is now "clean" again. 971 // The unused tail of the layout descriptor is now "clean" again.
972 CHECK(map->layout_descriptor()->IsConsistentWithMap(*map, true)); 972 CHECK(map->layout_descriptor()->IsConsistentWithMap(*map, true));
973 CHECK(map->owns_descriptors()); 973 CHECK(map->owns_descriptors());
974 CHECK_EQ(map->NumberOfOwnDescriptors(), 974 CHECK_EQ(map->NumberOfOwnDescriptors(),
975 map->instance_descriptors()->number_of_descriptors()); 975 map->instance_descriptors()->number_of_descriptors());
976 CHECK(map->layout_descriptor()->IsSlowLayout()); 976 CHECK(map->layout_descriptor()->IsSlowLayout());
977 CHECK_EQ(2, map->layout_descriptor()->length()); 977 CHECK_EQ(2, map->layout_descriptor()->length());
978 978
979 { 979 {
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 1383
1384 FieldIndex field_index = FieldIndex::ForDescriptor(obj->map(), 0); 1384 FieldIndex field_index = FieldIndex::ForDescriptor(obj->map(), 0);
1385 Handle<HeapNumber> boom_number = factory->NewHeapNumber(boom_value, MUTABLE); 1385 Handle<HeapNumber> boom_number = factory->NewHeapNumber(boom_value, MUTABLE);
1386 obj->FastPropertyAtPut(field_index, *boom_number); 1386 obj->FastPropertyAtPut(field_index, *boom_number);
1387 1387
1388 // Enforce scan on scavenge for the obj's page. 1388 // Enforce scan on scavenge for the obj's page.
1389 MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address()); 1389 MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address());
1390 chunk->set_scan_on_scavenge(true); 1390 chunk->set_scan_on_scavenge(true);
1391 1391
1392 // Trigger GCs and force evacuation. Should not crash there. 1392 // Trigger GCs and force evacuation. Should not crash there.
1393 CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags); 1393 CcTest::heap()->CollectAllGarbage();
1394 1394
1395 CHECK_EQ(boom_value, GetDoubleFieldValue(*obj, field_index)); 1395 CHECK_EQ(boom_value, GetDoubleFieldValue(*obj, field_index));
1396 } 1396 }
1397 1397
1398 1398
1399 static int LenFromSize(int size) { 1399 static int LenFromSize(int size) {
1400 return (size - FixedArray::kHeaderSize) / kPointerSize; 1400 return (size - FixedArray::kHeaderSize) / kPointerSize;
1401 } 1401 }
1402 1402
1403 1403
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
1681 1681
1682 // TODO(ishell): add respective tests for property kind reconfiguring from 1682 // TODO(ishell): add respective tests for property kind reconfiguring from
1683 // accessor field to double, once accessor fields are supported by 1683 // accessor field to double, once accessor fields are supported by
1684 // Map::ReconfigureProperty(). 1684 // Map::ReconfigureProperty().
1685 1685
1686 1686
1687 // TODO(ishell): add respective tests for fast property removal case once 1687 // TODO(ishell): add respective tests for fast property removal case once
1688 // Map::ReconfigureProperty() supports that. 1688 // Map::ReconfigureProperty() supports that.
1689 1689
1690 #endif 1690 #endif
OLDNEW
« no previous file with comments | « test/cctest/test-threads.cc ('k') | test/cctest/test-weakmaps.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698