Index: runtime/vm/profiler_test.cc |
diff --git a/runtime/vm/profiler_test.cc b/runtime/vm/profiler_test.cc |
index f14deacd30680edf625c019d8b2572a36b1067c9..17f0fdc41ee36058bd50a75dcfd336b06bdc4650 100644 |
--- a/runtime/vm/profiler_test.cc |
+++ b/runtime/vm/profiler_test.cc |
@@ -1027,9 +1027,24 @@ TEST_CASE(Profiler_ArrayAllocation) { |
Profile profile(isolate); |
AllocationFilter filter(isolate->main_port(), array_class.id()); |
profile.Build(thread, &filter, Profile::kNoTags); |
- // We should have no allocation samples, since empty |
- // growable lists use a shared backing. |
- EXPECT_EQ(0, profile.sample_count()); |
+ // We should still only have one allocation sample. |
+ EXPECT_EQ(1, profile.sample_count()); |
+ ProfileTrieWalker walker(&profile); |
+ |
+ walker.Reset(Profile::kExclusiveCode); |
+ EXPECT(walker.Down()); |
+ EXPECT_STREQ("DRT_AllocateArray", walker.CurrentName()); |
+ EXPECT(walker.Down()); |
+ EXPECT_STREQ("[Stub] AllocateArray", walker.CurrentName()); |
+ EXPECT(walker.Down()); |
+ EXPECT_STREQ("new _List", walker.CurrentName()); |
+ EXPECT(walker.Down()); |
+ EXPECT_STREQ("new _GrowableList", walker.CurrentName()); |
+ EXPECT(walker.Down()); |
+ EXPECT_STREQ("new List._internal", walker.CurrentName()); |
+ EXPECT(walker.Down()); |
+ EXPECT_STREQ("bar", walker.CurrentName()); |
+ EXPECT(!walker.Down()); |
} |
} |