diff options
author | Yabin Cui <yabinc@google.com> | 2016-01-11 17:15:55 -0800 |
---|---|---|
committer | Yabin Cui <yabinc@google.com> | 2016-01-11 19:44:01 -0800 |
commit | 4913c12f341bc4319d243af24fa2ee1a6618eb34 (patch) | |
tree | f0a48363fa689d692df3e2f8f2d7dd1c4c935bdb /simpleperf/record_test.cpp | |
parent | 1ab9ea0f6f6eeb64c9a1440aad806dbc92b3f958 (diff) | |
download | extras-4913c12f341bc4319d243af24fa2ee1a6618eb34.tar.gz |
Simpleperf: adjust sort strategy in RecordCache.
In order to report correctly, We should keep the order of self created
records when reading perf.data. So adjust sort strategy in RecordCache
to avoid reordering it.
Bug: 26214604
Change-Id: I40812ee5f4f6051103d40459edf4b4a2d7a80313
Diffstat (limited to 'simpleperf/record_test.cpp')
-rw-r--r-- | simpleperf/record_test.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/simpleperf/record_test.cpp b/simpleperf/record_test.cpp index 6e4ed745..76eebe98 100644 --- a/simpleperf/record_test.cpp +++ b/simpleperf/record_test.cpp @@ -100,3 +100,21 @@ TEST_F(RecordTest, RecordCache_smoke) { ASSERT_EQ(1u, last_records.size()); CheckRecordEqual(r4, *last_records[0]); } + +TEST_F(RecordTest, RecordCache_FIFO) { + event_attr.sample_id_all = 1; + event_attr.sample_type |= PERF_SAMPLE_TIME; + RecordCache cache(event_attr, 2, 2); + std::vector<MmapRecord> records; + for (size_t i = 0; i < 10; ++i) { + MmapRecord r = CreateMmapRecord(event_attr, true, 1, i, 0x100, 0x200, 0x300, "mmap_record1"); + records.push_back(r); + std::vector<char> buf = r.BinaryFormat(); + cache.Push(buf.data(), buf.size()); + } + std::vector<std::unique_ptr<Record>> out_records = cache.PopAll(); + ASSERT_EQ(records.size(), out_records.size()); + for (size_t i = 0; i < records.size(); ++i) { + CheckRecordEqual(records[i], *out_records[i]); + } +} |