diff options
author | Geir Storli <geirst@verizonmedia.com> | 2021-08-18 13:17:47 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2021-08-20 11:03:58 +0000 |
commit | 2153b7cc3353992550596141314e5edd3a6c0681 (patch) | |
tree | ef73149677cb4b59d576d935255cba5550b0a281 /searchcore/src/tests/proton/attribute | |
parent | 43402b23dc74fe6550d231b26e8c50327e1971f9 (diff) |
Track max address space usage among components in attributes vectors in all sub databases.
Diffstat (limited to 'searchcore/src/tests/proton/attribute')
-rw-r--r-- | searchcore/src/tests/proton/attribute/attribute_usage_stats/CMakeLists.txt | 9 | ||||
-rw-r--r-- | searchcore/src/tests/proton/attribute/attribute_usage_stats/attribute_usage_stats_test.cpp | 47 |
2 files changed, 56 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/attribute/attribute_usage_stats/CMakeLists.txt b/searchcore/src/tests/proton/attribute/attribute_usage_stats/CMakeLists.txt new file mode 100644 index 00000000000..b015ca2a168 --- /dev/null +++ b/searchcore/src/tests/proton/attribute/attribute_usage_stats/CMakeLists.txt @@ -0,0 +1,9 @@ +# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(searchcore_attribute_usage_stats_test_app TEST + SOURCES + attribute_usage_stats_test.cpp + DEPENDS + searchcore_attribute + GTest::GTest +) +vespa_add_test(NAME searchcore_attribute_usage_stats_test_app COMMAND searchcore_attribute_usage_stats_test_app) diff --git a/searchcore/src/tests/proton/attribute/attribute_usage_stats/attribute_usage_stats_test.cpp b/searchcore/src/tests/proton/attribute/attribute_usage_stats/attribute_usage_stats_test.cpp new file mode 100644 index 00000000000..025ae859993 --- /dev/null +++ b/searchcore/src/tests/proton/attribute/attribute_usage_stats/attribute_usage_stats_test.cpp @@ -0,0 +1,47 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/searchcore/proton/attribute/attribute_usage_stats.h> +#include <vespa/vespalib/gtest/gtest.h> + +using proton::AddressSpaceUsageStats; +using proton::AttributeUsageStats; +using search::AddressSpaceUsage; +using vespalib::AddressSpace; + +void +expect_max_usage(size_t used, const vespalib::string& attr_name, + const vespalib::string& comp_name, const vespalib::string& sub_name, + const AttributeUsageStats& stats) +{ + const auto& max = stats.max_usage(); + EXPECT_EQ(used, max.getUsage().used()); + EXPECT_EQ(attr_name, max.getAttributeName()); + EXPECT_EQ(comp_name, max.get_component_name()); + EXPECT_EQ(sub_name, max.getSubDbName()); +} + +TEST(AttributeUsageStatsTest, tracks_max_address_space_usage) +{ + AttributeUsageStats stats; + { + AddressSpaceUsage usage; + usage.set("comp1", AddressSpace(2, 0, 10)); + usage.set("comp2", AddressSpace(3, 0, 10)); + stats.merge(usage, "attr1", "sub1"); + expect_max_usage(3, "attr1", "comp2", "sub1", stats); + } + { + AddressSpaceUsage usage; + usage.set("comp3", AddressSpace(5, 0, 10)); + usage.set("comp4", AddressSpace(4, 0, 10)); + stats.merge(usage, "attr2", "sub2"); + expect_max_usage(5, "attr2", "comp3", "sub2", stats); + } + { + AddressSpaceUsage usage; + usage.set("comp5", AddressSpace(5, 0, 10)); + stats.merge(usage, "attr3", "sub2"); + expect_max_usage(5, "attr2", "comp3", "sub2", stats); + } +} + +GTEST_MAIN_RUN_ALL_TESTS() |