| OLD | NEW |
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Tests for heap profiler | 3 // Tests for heap profiler |
| 4 | 4 |
| 5 #ifdef ENABLE_LOGGING_AND_PROFILING | 5 #ifdef ENABLE_LOGGING_AND_PROFILING |
| 6 | 6 |
| 7 #include "v8.h" | 7 #include "v8.h" |
| 8 #include "heap-profiler.h" | 8 #include "heap-profiler.h" |
| 9 #include "string-stream.h" | 9 #include "string-stream.h" |
| 10 #include "cctest.h" | 10 #include "cctest.h" |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 | 315 |
| 316 RetainerHeapProfile ret_profile; | 316 RetainerHeapProfile ret_profile; |
| 317 i::AssertNoAllocation no_alloc; | 317 i::AssertNoAllocation no_alloc; |
| 318 i::HeapIterator iterator; | 318 i::HeapIterator iterator; |
| 319 while (iterator.has_next()) { | 319 while (iterator.has_next()) { |
| 320 i::HeapObject* obj = iterator.next(); | 320 i::HeapObject* obj = iterator.next(); |
| 321 ret_profile.CollectStats(obj); | 321 ret_profile.CollectStats(obj); |
| 322 } | 322 } |
| 323 RetainerProfilePrinter printer; | 323 RetainerProfilePrinter printer; |
| 324 ret_profile.DebugPrintStats(&printer); | 324 ret_profile.DebugPrintStats(&printer); |
| 325 CHECK_EQ("(global property);1,B;2,C;2", printer.GetRetainers("A")); | 325 const char* retainers_of_a = printer.GetRetainers("A"); |
| 326 // The order of retainers is unspecified, so we check string length, and |
| 327 // verify each retainer separately. |
| 328 CHECK_EQ(static_cast<int>(strlen("(global property);1,B;2,C;2")), |
| 329 static_cast<int>(strlen(retainers_of_a))); |
| 330 CHECK(strstr(retainers_of_a, "(global property);1") != NULL); |
| 331 CHECK(strstr(retainers_of_a, "B;2") != NULL); |
| 332 CHECK(strstr(retainers_of_a, "C;2") != NULL); |
| 326 CHECK_EQ("(global property);2", printer.GetRetainers("B")); | 333 CHECK_EQ("(global property);2", printer.GetRetainers("B")); |
| 327 CHECK_EQ("(global property);1", printer.GetRetainers("C")); | 334 CHECK_EQ("(global property);1", printer.GetRetainers("C")); |
| 328 } | 335 } |
| 329 | 336 |
| 330 #endif // ENABLE_LOGGING_AND_PROFILING | 337 #endif // ENABLE_LOGGING_AND_PROFILING |
| OLD | NEW |