diff options
Diffstat (limited to 'storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp')
-rw-r--r-- | storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp b/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp index cf9d380fb13..c4489b42978 100644 --- a/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp +++ b/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp @@ -11,6 +11,7 @@ namespace storage { +using spi::AttributeResourceUsage; using spi::ResourceUsage; namespace { @@ -21,6 +22,17 @@ get_usage_element(const vespalib::Slime& root, const vespalib::string& label) return root.get()["content-node"]["resource-usage"][label]["usage"].asDouble(); } +AttributeResourceUsage +get_attribute_usage_element(const vespalib::Slime& root, const vespalib::string& label) +{ + double usage = get_usage_element(root, label); + auto name = root.get()["content-node"]["resource-usage"][label]["name"].asString(); + return AttributeResourceUsage(usage, name.make_string()); +} + +const vespalib::string attr_es_name("doctype.subdb.esattr"); +const vespalib::string attr_mv_name("doctype.subdb.mvattr"); + } struct ServiceLayerHostInfoReporterTest : ::testing::Test { @@ -31,9 +43,12 @@ struct ServiceLayerHostInfoReporterTest : ::testing::Test { ServiceLayerHostInfoReporterTest(); ~ServiceLayerHostInfoReporterTest(); - void notify(double disk_usage, double memory_usage) { + void notify(double disk_usage, double memory_usage, const AttributeResourceUsage &attribute_enum_store_usage, const AttributeResourceUsage &attribute_multivalue_usage) { auto& listener = static_cast<spi::IResourceUsageListener&>(_reporter); - listener.update_resource_usage(ResourceUsage(disk_usage, memory_usage)); + listener.update_resource_usage(ResourceUsage(disk_usage, memory_usage, attribute_enum_store_usage, attribute_multivalue_usage)); + } + void notify(double disk_usage, double memory_usage) { + notify(disk_usage, memory_usage, {0.0, ""}, {0.0, ""}); } size_t requested_almost_immediate_replies() { return _state_manager.requested_almost_immediate_node_state_replies(); } @@ -42,7 +57,7 @@ struct ServiceLayerHostInfoReporterTest : ::testing::Test { ResourceUsage get_slime_usage() { vespalib::Slime root; util::reporterToSlime(_reporter, root); - return ResourceUsage(get_usage_element(root, "disk"), get_usage_element(root, "memory")); + return ResourceUsage(get_usage_element(root, "disk"), get_usage_element(root, "memory"), get_attribute_usage_element(root, "attribute-enum-store"), get_attribute_usage_element(root, "attribute-multi-value")); } }; @@ -79,6 +94,12 @@ TEST_F(ServiceLayerHostInfoReporterTest, request_almost_immediate_node_state_as_ EXPECT_EQ(3, requested_almost_immediate_replies()); EXPECT_EQ(ResourceUsage(0.8, 0.7), get_old_usage()); EXPECT_EQ(ResourceUsage(0.799, 0.699), get_usage()); + notify(0.8, 0.7, {0.1, attr_es_name}, {}); + EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {}), get_old_usage()); + EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {}), get_usage()); + notify(0.8, 0.7, {0.1, attr_es_name}, {0.2, attr_mv_name}); + EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {0.2, attr_mv_name}), get_old_usage()); + EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {0.2, attr_mv_name}), get_usage()); } TEST_F(ServiceLayerHostInfoReporterTest, json_report_generated) @@ -86,6 +107,8 @@ TEST_F(ServiceLayerHostInfoReporterTest, json_report_generated) EXPECT_EQ(ResourceUsage(0.0, 0.0), get_slime_usage()); notify(0.5, 0.4); EXPECT_EQ(ResourceUsage(0.5, 0.4), get_slime_usage()); + notify(0.5, 0.4, {0.3, attr_es_name}, {0.2, attr_mv_name}); + EXPECT_EQ(ResourceUsage(0.5, 0.4, {0.3, attr_es_name}, {0.2, attr_mv_name}), get_slime_usage()); } } |