OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1057 ptr = partitionAllocGeneric(genericAllocator.root(), size); | 1057 ptr = partitionAllocGeneric(genericAllocator.root(), size); |
1058 EXPECT_TRUE(ptr); | 1058 EXPECT_TRUE(ptr); |
1059 partitionFreeGeneric(genericAllocator.root(), ptr); | 1059 partitionFreeGeneric(genericAllocator.root(), ptr); |
1060 | 1060 |
1061 EXPECT_TRUE(bucket->activePagesHead); | 1061 EXPECT_TRUE(bucket->activePagesHead); |
1062 EXPECT_TRUE(bucket->freePagesHead); | 1062 EXPECT_TRUE(bucket->freePagesHead); |
1063 | 1063 |
1064 TestShutdown(); | 1064 TestShutdown(); |
1065 } | 1065 } |
1066 | 1066 |
| 1067 #if !OS(ANDROID) |
| 1068 |
1067 // Make sure that malloc(-1) dies. | 1069 // Make sure that malloc(-1) dies. |
1068 // In the past, we had an integer overflow that would alias malloc(-1) to | 1070 // In the past, we had an integer overflow that would alias malloc(-1) to |
1069 // malloc(0), which is not good. | 1071 // malloc(0), which is not good. |
1070 TEST(WTF_PartitionAllocDeathTest, LargeAllocs) | 1072 TEST(WTF_PartitionAllocDeathTest, LargeAllocs) |
1071 { | 1073 { |
1072 TestSetup(); | 1074 TestSetup(); |
1073 // Largest alloc. | 1075 // Largest alloc. |
1074 EXPECT_DEATH(partitionAllocGeneric(genericAllocator.root(), static_cast<size
_t>(-1)), ""); | 1076 EXPECT_DEATH(partitionAllocGeneric(genericAllocator.root(), static_cast<size
_t>(-1)), ""); |
1075 // And the smallest allocation we expect to die. | 1077 // And the smallest allocation we expect to die. |
1076 EXPECT_DEATH(partitionAllocGeneric(genericAllocator.root(), static_cast<size
_t>(INT_MAX) + 1), ""); | 1078 EXPECT_DEATH(partitionAllocGeneric(genericAllocator.root(), static_cast<size
_t>(INT_MAX) + 1), ""); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1124 char* charPtr = reinterpret_cast<char*>(ptr) - kPointerOffset; | 1126 char* charPtr = reinterpret_cast<char*>(ptr) - kPointerOffset; |
1125 | 1127 |
1126 EXPECT_DEATH(*(charPtr - 1) = 'A', ""); | 1128 EXPECT_DEATH(*(charPtr - 1) = 'A', ""); |
1127 EXPECT_DEATH(*(charPtr + size + kExtraAllocSize) = 'A', ""); | 1129 EXPECT_DEATH(*(charPtr + size + kExtraAllocSize) = 'A', ""); |
1128 | 1130 |
1129 partitionFreeGeneric(genericAllocator.root(), ptr); | 1131 partitionFreeGeneric(genericAllocator.root(), ptr); |
1130 | 1132 |
1131 TestShutdown(); | 1133 TestShutdown(); |
1132 } | 1134 } |
1133 | 1135 |
| 1136 #endif // !OS(ANDROID) |
| 1137 |
1134 // Tests that the countLeadingZeros() functions work to our satisfaction. | 1138 // Tests that the countLeadingZeros() functions work to our satisfaction. |
1135 // It doesn't seem worth the overhead of a whole new file for these tests, so | 1139 // It doesn't seem worth the overhead of a whole new file for these tests, so |
1136 // we'll put them here since partitionAllocGeneric will depend heavily on these | 1140 // we'll put them here since partitionAllocGeneric will depend heavily on these |
1137 // functions working correctly. | 1141 // functions working correctly. |
1138 TEST(WTF_PartitionAlloc, CLZWorks) | 1142 TEST(WTF_PartitionAlloc, CLZWorks) |
1139 { | 1143 { |
1140 EXPECT_EQ(32u, WTF::countLeadingZeros32(0)); | 1144 EXPECT_EQ(32u, WTF::countLeadingZeros32(0)); |
1141 EXPECT_EQ(31u, WTF::countLeadingZeros32(1)); | 1145 EXPECT_EQ(31u, WTF::countLeadingZeros32(1)); |
1142 EXPECT_EQ(1u, WTF::countLeadingZeros32(1 << 30)); | 1146 EXPECT_EQ(1u, WTF::countLeadingZeros32(1 << 30)); |
1143 EXPECT_EQ(0u, WTF::countLeadingZeros32(1 << 31)); | 1147 EXPECT_EQ(0u, WTF::countLeadingZeros32(1 << 31)); |
1144 | 1148 |
1145 #if CPU(64BIT) | 1149 #if CPU(64BIT) |
1146 EXPECT_EQ(64u, WTF::countLeadingZerosSizet(0ull)); | 1150 EXPECT_EQ(64u, WTF::countLeadingZerosSizet(0ull)); |
1147 EXPECT_EQ(63u, WTF::countLeadingZerosSizet(1ull)); | 1151 EXPECT_EQ(63u, WTF::countLeadingZerosSizet(1ull)); |
1148 EXPECT_EQ(32u, WTF::countLeadingZerosSizet(1ull << 31)); | 1152 EXPECT_EQ(32u, WTF::countLeadingZerosSizet(1ull << 31)); |
1149 EXPECT_EQ(1u, WTF::countLeadingZerosSizet(1ull << 62)); | 1153 EXPECT_EQ(1u, WTF::countLeadingZerosSizet(1ull << 62)); |
1150 EXPECT_EQ(0u, WTF::countLeadingZerosSizet(1ull << 63)); | 1154 EXPECT_EQ(0u, WTF::countLeadingZerosSizet(1ull << 63)); |
1151 #else | 1155 #else |
1152 EXPECT_EQ(32u, WTF::countLeadingZerosSizet(0)); | 1156 EXPECT_EQ(32u, WTF::countLeadingZerosSizet(0)); |
1153 EXPECT_EQ(31u, WTF::countLeadingZerosSizet(1)); | 1157 EXPECT_EQ(31u, WTF::countLeadingZerosSizet(1)); |
1154 EXPECT_EQ(1u, WTF::countLeadingZerosSizet(1 << 30)); | 1158 EXPECT_EQ(1u, WTF::countLeadingZerosSizet(1 << 30)); |
1155 EXPECT_EQ(0u, WTF::countLeadingZerosSizet(1 << 31)); | 1159 EXPECT_EQ(0u, WTF::countLeadingZerosSizet(1 << 31)); |
1156 #endif | 1160 #endif |
1157 } | 1161 } |
1158 | 1162 |
1159 } // namespace | 1163 } // namespace |
1160 | 1164 |
1161 #endif // !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) | 1165 #endif // !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) |
OLD | NEW |