summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/time_tracer
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2019-02-06 14:05:20 +0000
committerHåvard Pettersen <havardpe@oath.com>2019-02-08 12:15:48 +0000
commitc992aff3322b897df5cbaf34215b7dc8f76e0437 (patch)
tree7a53aedb47ccfcebfae385d62dd8353da0ed55aa /vespalib/src/tests/time_tracer
parentdd76474b683c0a634656c161bb2c1140817abbc1 (diff)
TLS time trace experiments
Note that this is without intrusive samples in the code
Diffstat (limited to 'vespalib/src/tests/time_tracer')
-rw-r--r--vespalib/src/tests/time_tracer/time_tracer_test.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/vespalib/src/tests/time_tracer/time_tracer_test.cpp b/vespalib/src/tests/time_tracer/time_tracer_test.cpp
index 835c3ffecbf..d7e2e0d579a 100644
--- a/vespalib/src/tests/time_tracer/time_tracer_test.cpp
+++ b/vespalib/src/tests/time_tracer/time_tracer_test.cpp
@@ -11,16 +11,15 @@ using vespalib::test::TimeTracer;
TT_Tag tag0("tag0");
TT_Tag tag1("tag1");
TT_Tag tag2("tag2");
-TT_Tag tag1_too("tag1");
TT_Tag my_tag("my tag");
-TEST("require that tags are numbered by first creation time") {
- EXPECT_EQUAL(tag0.id(), 0u);
- EXPECT_EQUAL(tag1.id(), 1u);
- EXPECT_EQUAL(tag2.id(), 2u);
- EXPECT_EQUAL(tag1_too.id(), 1u);
- EXPECT_EQUAL(my_tag.id(), 3u);
+TEST("require that tag ids are equal if and only if tag names are equal") {
+ TT_Tag tag1_too("tag1");
+ EXPECT_NOT_EQUAL(tag0.id(), tag1.id());
+ EXPECT_NOT_EQUAL(tag1.id(), tag2.id());
+ EXPECT_NOT_EQUAL(tag2.id(), tag0.id());
+ EXPECT_EQUAL(tag1_too.id(), tag1.id());
}
TEST_MT("require that threads are numbered by first sample", 3) {
@@ -38,14 +37,14 @@ TEST_MT("require that threads are numbered by first sample", 3) {
{ TT_Sample sample(tag2); }
}
TEST_BARRIER(); // # 3
- auto list = TimeTracer::extract_all();
+ auto list = TimeTracer::extract().get();
ASSERT_EQUAL(list.size(), 3u);
EXPECT_EQUAL(list[0].thread_id, 0u);
- EXPECT_EQUAL(list[0].tag_id, 0u);
+ EXPECT_EQUAL(list[0].tag_id, tag0.id());
EXPECT_EQUAL(list[1].thread_id, 1u);
- EXPECT_EQUAL(list[1].tag_id, 1u);
+ EXPECT_EQUAL(list[1].tag_id, tag1.id());
EXPECT_EQUAL(list[2].thread_id, 2u);
- EXPECT_EQUAL(list[2].tag_id, 2u);
+ EXPECT_EQUAL(list[2].tag_id, tag2.id());
}
TEST("require that records are extracted inversely ordered by end time per thread") {
@@ -53,11 +52,11 @@ TEST("require that records are extracted inversely ordered by end time per threa
{ TT_Sample s(my_tag); }
{ TT_Sample s(my_tag); }
auto t = TimeTracer::now();
- auto list = TimeTracer::extract_all();
+ auto list = TimeTracer::extract().get();
EXPECT_EQUAL(list.size(), 6u);
size_t cnt = 0;
for (const auto &item: list) {
- if (item.tag_id == 3) {
+ if (item.tag_id == my_tag.id()) {
++cnt;
EXPECT_TRUE(item.start <= item.stop);
EXPECT_TRUE(item.stop <= t);
@@ -73,7 +72,7 @@ TEST("benchmark time sampling") {
fprintf(stderr, "min timestamp time: %g us\n", min_stamp_us);
fprintf(stderr, "min sample time: %g us\n", min_sample_us);
fprintf(stderr, "estimated non-clock overhead: %g us\n", (min_sample_us - (min_stamp_us * 2.0)));
- auto list = TimeTracer::extract_all();
+ auto list = TimeTracer::extract().get();
fprintf(stderr, "total samples after benchmarking: %zu\n", list.size());
EXPECT_GREATER(list.size(), 6u);
}