summaryrefslogtreecommitdiffstats
path: root/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp
diff options
context:
space:
mode:
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.cpp29
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());
}
}