summaryrefslogtreecommitdiff
path: root/simpleperf/record_test.cpp
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2016-01-11 17:15:55 -0800
committerYabin Cui <yabinc@google.com>2016-01-11 19:44:01 -0800
commit4913c12f341bc4319d243af24fa2ee1a6618eb34 (patch)
treef0a48363fa689d692df3e2f8f2d7dd1c4c935bdb /simpleperf/record_test.cpp
parent1ab9ea0f6f6eeb64c9a1440aad806dbc92b3f958 (diff)
downloadextras-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.cpp18
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]);
+ }
+}