| Index: runtime/vm/profiler_test.cc
|
| diff --git a/runtime/vm/profiler_test.cc b/runtime/vm/profiler_test.cc
|
| index a974b8519045bb6385b81244435d817dc9317ed8..610fa419be40059a39538bc83b0eb5df68feb305 100644
|
| --- a/runtime/vm/profiler_test.cc
|
| +++ b/runtime/vm/profiler_test.cc
|
| @@ -14,23 +14,29 @@ namespace dart {
|
|
|
| class ProfileSampleBufferTestHelper {
|
| public:
|
| - static intptr_t IterateCount(const SampleBuffer& sample_buffer) {
|
| + static intptr_t IterateCount(const Isolate* isolate,
|
| + const SampleBuffer& sample_buffer) {
|
| intptr_t c = 0;
|
| - for (Sample* i = sample_buffer.FirstSample();
|
| - i != sample_buffer.LastSample();
|
| - i = sample_buffer.NextSample(i)) {
|
| + for (intptr_t i = 0; i < sample_buffer.capacity(); i++) {
|
| + Sample* sample = sample_buffer.GetSample(i);
|
| + if (sample->isolate != isolate) {
|
| + continue;
|
| + }
|
| c++;
|
| }
|
| return c;
|
| }
|
|
|
|
|
| - static intptr_t IterateSumPC(const SampleBuffer& sample_buffer) {
|
| + static intptr_t IterateSumPC(const Isolate* isolate,
|
| + const SampleBuffer& sample_buffer) {
|
| intptr_t c = 0;
|
| - for (Sample* i = sample_buffer.FirstSample();
|
| - i != sample_buffer.LastSample();
|
| - i = sample_buffer.NextSample(i)) {
|
| - c += i->pcs[0];
|
| + for (intptr_t i = 0; i < sample_buffer.capacity(); i++) {
|
| + Sample* sample = sample_buffer.GetSample(i);
|
| + if (sample->isolate != isolate) {
|
| + continue;
|
| + }
|
| + c += sample->pcs[0];
|
| }
|
| return c;
|
| }
|
| @@ -39,35 +45,46 @@ class ProfileSampleBufferTestHelper {
|
|
|
| TEST_CASE(ProfilerSampleBufferWrapTest) {
|
| SampleBuffer* sample_buffer = new SampleBuffer(3);
|
| - EXPECT_EQ(0, ProfileSampleBufferTestHelper::IterateSumPC(*sample_buffer));
|
| + Isolate* i = reinterpret_cast<Isolate*>(0x1);
|
| + EXPECT_EQ(0, ProfileSampleBufferTestHelper::IterateSumPC(i, *sample_buffer));
|
| Sample* s;
|
| s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| s->pcs[0] = 2;
|
| - EXPECT_EQ(2, ProfileSampleBufferTestHelper::IterateSumPC(*sample_buffer));
|
| + EXPECT_EQ(2, ProfileSampleBufferTestHelper::IterateSumPC(i, *sample_buffer));
|
| s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| s->pcs[0] = 4;
|
| - EXPECT_EQ(6, ProfileSampleBufferTestHelper::IterateSumPC(*sample_buffer));
|
| + EXPECT_EQ(6, ProfileSampleBufferTestHelper::IterateSumPC(i, *sample_buffer));
|
| s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| s->pcs[0] = 6;
|
| - EXPECT_EQ(10, ProfileSampleBufferTestHelper::IterateSumPC(*sample_buffer));
|
| + EXPECT_EQ(12, ProfileSampleBufferTestHelper::IterateSumPC(i, *sample_buffer));
|
| s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| s->pcs[0] = 8;
|
| - EXPECT_EQ(14, ProfileSampleBufferTestHelper::IterateSumPC(*sample_buffer));
|
| + EXPECT_EQ(18, ProfileSampleBufferTestHelper::IterateSumPC(i, *sample_buffer));
|
| delete sample_buffer;
|
| }
|
|
|
|
|
| TEST_CASE(ProfilerSampleBufferIterateTest) {
|
| SampleBuffer* sample_buffer = new SampleBuffer(3);
|
| - EXPECT_EQ(0, ProfileSampleBufferTestHelper::IterateCount(*sample_buffer));
|
| - sample_buffer->ReserveSample();
|
| - EXPECT_EQ(1, ProfileSampleBufferTestHelper::IterateCount(*sample_buffer));
|
| - sample_buffer->ReserveSample();
|
| - EXPECT_EQ(2, ProfileSampleBufferTestHelper::IterateCount(*sample_buffer));
|
| - sample_buffer->ReserveSample();
|
| - EXPECT_EQ(2, ProfileSampleBufferTestHelper::IterateCount(*sample_buffer));
|
| - sample_buffer->ReserveSample();
|
| - EXPECT_EQ(2, ProfileSampleBufferTestHelper::IterateCount(*sample_buffer));
|
| + Isolate* i = reinterpret_cast<Isolate*>(0x1);
|
| + EXPECT_EQ(0, ProfileSampleBufferTestHelper::IterateCount(i, *sample_buffer));
|
| + Sample* s;
|
| + s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| + EXPECT_EQ(1, ProfileSampleBufferTestHelper::IterateCount(i, *sample_buffer));
|
| + s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| + EXPECT_EQ(2, ProfileSampleBufferTestHelper::IterateCount(i, *sample_buffer));
|
| + s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| + EXPECT_EQ(3, ProfileSampleBufferTestHelper::IterateCount(i, *sample_buffer));
|
| + s = sample_buffer->ReserveSample();
|
| + s->isolate = i;
|
| + EXPECT_EQ(3, ProfileSampleBufferTestHelper::IterateCount(i, *sample_buffer));
|
| delete sample_buffer;
|
| }
|
|
|
|
|