diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2023-01-19 12:47:36 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2023-01-20 10:17:52 +0000 |
commit | 3e7206c9f0ceb404edf378fb3d31a0ca12b6ad21 (patch) | |
tree | 93207ba5170071d0a1834df01a1bfbb706d4af2a /vespalib/src/tests | |
parent | f01c1607b1637eecb40a45c32b851ebeec539fe7 (diff) |
support flat profiling
Diffstat (limited to 'vespalib/src/tests')
-rw-r--r-- | vespalib/src/tests/execution_profiler/execution_profiler_test.cpp | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/vespalib/src/tests/execution_profiler/execution_profiler_test.cpp b/vespalib/src/tests/execution_profiler/execution_profiler_test.cpp index f41aaffd90d..969521a2a9e 100644 --- a/vespalib/src/tests/execution_profiler/execution_profiler_test.cpp +++ b/vespalib/src/tests/execution_profiler/execution_profiler_test.cpp @@ -73,7 +73,7 @@ TEST(ExecutionProfilerTest, resolve_names) { EXPECT_EQ(profiler.resolve("baz"), 2); } -TEST(ExecutionProfilerTest, empty_report) { +TEST(ExecutionProfilerTest, empty_tree_report) { Profiler profiler(64); profiler.resolve("foo"); profiler.resolve("bar"); @@ -81,6 +81,24 @@ TEST(ExecutionProfilerTest, empty_report) { Slime slime; profiler.report(slime.setObject()); fprintf(stderr, "%s\n", slime.toString().c_str()); + EXPECT_EQ(slime["profiler"].asString().make_string(), "tree"); + EXPECT_EQ(slime["depth"].asLong(), 64); + EXPECT_EQ(slime["total_time_ms"].asDouble(), 0.0); + EXPECT_EQ(slime["roots"].entries(), 0); + EXPECT_TRUE(find_path(slime, {})); +} + +TEST(ExecutionProfilerTest, empty_flat_report) { + Profiler profiler(-64); + profiler.resolve("foo"); + profiler.resolve("bar"); + profiler.resolve("baz"); + Slime slime; + profiler.report(slime.setObject()); + fprintf(stderr, "%s\n", slime.toString().c_str()); + EXPECT_EQ(slime["profiler"].asString().make_string(), "flat"); + EXPECT_EQ(slime["topn"].asLong(), 64); + EXPECT_EQ(slime["total_time_ms"].asDouble(), 0.0); EXPECT_EQ(slime["roots"].entries(), 0); EXPECT_TRUE(find_path(slime, {})); } @@ -96,6 +114,8 @@ TEST(ExecutionProfilerTest, perform_dummy_profiling) { Slime slime; profiler.report(slime.setObject()); fprintf(stderr, "%s\n", slime.toString().c_str()); + EXPECT_EQ(slime["profiler"].asString().make_string(), "tree"); + EXPECT_EQ(slime["depth"].asLong(), 64); EXPECT_EQ(slime["roots"].entries(), 4); EXPECT_TRUE(find_path(slime, {{"foo", 3}, {"bar", 3}, {"baz", 6}, {"fox", 18}})); EXPECT_TRUE(find_path(slime, {{"foo", 3}, {"bar", 3}, {"fox", 6}})); @@ -107,6 +127,42 @@ TEST(ExecutionProfilerTest, perform_dummy_profiling) { EXPECT_TRUE(find_path(slime, {{"fox", 3}})); } +TEST(ExecutionProfilerTest, perform_flat_dummy_profiling) { + Profiler profiler(-64); + for (int i = 0; i < 3; ++i) { + foo(profiler); + bar(profiler); + baz(profiler); + fox(profiler); + } + Slime slime; + profiler.report(slime.setObject()); + fprintf(stderr, "%s\n", slime.toString().c_str()); + EXPECT_EQ(slime["profiler"].asString().make_string(), "flat"); + EXPECT_EQ(slime["topn"].asLong(), 64); + EXPECT_EQ(slime["roots"].entries(), 4); + EXPECT_TRUE(find_path(slime, {{"foo", 3}})); + EXPECT_TRUE(find_path(slime, {{"bar", 6}})); + EXPECT_TRUE(find_path(slime, {{"baz", 18}})); + EXPECT_TRUE(find_path(slime, {{"fox", 72}})); +} + +TEST(ExecutionProfilerTest, perform_limited_flat_dummy_profiling) { + Profiler profiler(-2); + for (int i = 0; i < 3; ++i) { + foo(profiler); + bar(profiler); + baz(profiler); + fox(profiler); + } + Slime slime; + profiler.report(slime.setObject()); + fprintf(stderr, "%s\n", slime.toString().c_str()); + EXPECT_EQ(slime["profiler"].asString().make_string(), "flat"); + EXPECT_EQ(slime["topn"].asLong(), 2); + EXPECT_EQ(slime["roots"].entries(), 2); +} + TEST(ExecutionProfilerTest, perform_shallow_dummy_profiling) { Profiler profiler(2); for (int i = 0; i < 3; ++i) { @@ -118,6 +174,8 @@ TEST(ExecutionProfilerTest, perform_shallow_dummy_profiling) { Slime slime; profiler.report(slime.setObject()); fprintf(stderr, "%s\n", slime.toString().c_str()); + EXPECT_EQ(slime["profiler"].asString().make_string(), "tree"); + EXPECT_EQ(slime["depth"].asLong(), 2); EXPECT_EQ(slime["roots"].entries(), 4); EXPECT_TRUE(find_path(slime, {{"foo", 3}, {"bar", 3}})); EXPECT_TRUE(find_path(slime, {{"foo", 3}, {"bar", 3}})); |