added support for Collection Functions
new supported operations: min,max,sum,avg
new supported time scopes: interval,startup
added unit test to verify that each collection function returns correct
timestamp and value
Tested:
- POST/GET on telemetry features in bmcweb, no regression detected
- Using dbus API metric with collection function works as expected
Change-Id: Ib364c433915e07fd7a102f00109525362c40ab8a
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
diff --git a/tests/src/dbus_environment.hpp b/tests/src/dbus_environment.hpp
index 8146bcb..0ddf241 100644
--- a/tests/src/dbus_environment.hpp
+++ b/tests/src/dbus_environment.hpp
@@ -1,5 +1,7 @@
#pragma once
+#include "types/duration_type.hpp"
+
#include <sdbusplus/asio/object_server.hpp>
#include <sdbusplus/asio/property.hpp>
@@ -22,8 +24,8 @@
static std::shared_ptr<sdbusplus::asio::object_server> getObjServer();
static const char* serviceName();
static std::function<void()> setPromise(std::string_view name);
- static void sleepFor(std::chrono::milliseconds);
- static std::chrono::milliseconds measureTime(std::function<void()>);
+ static void sleepFor(Milliseconds);
+ static Milliseconds measureTime(std::function<void()>);
static void synchronizeIoc()
{
@@ -39,12 +41,12 @@
}
template <class T, class F>
- static T waitForFutures(
- std::vector<std::future<T>> futures, T init, F&& accumulator,
- std::chrono::milliseconds timeout = std::chrono::seconds(10))
+ static T waitForFutures(std::vector<std::future<T>> futures, T init,
+ F&& accumulator,
+ Milliseconds timeout = std::chrono::seconds(10))
{
- constexpr auto precission = std::chrono::milliseconds(10);
- auto elapsed = std::chrono::milliseconds(0);
+ constexpr auto precission = Milliseconds(10);
+ auto elapsed = Milliseconds(0);
auto sum = init;
for (auto& future : futures)
@@ -73,9 +75,8 @@
}
template <class T>
- static T waitForFuture(
- std::future<T> future,
- std::chrono::milliseconds timeout = std::chrono::seconds(10))
+ static T waitForFuture(std::future<T> future,
+ Milliseconds timeout = std::chrono::seconds(10))
{
std::vector<std::future<T>> futures;
futures.emplace_back(std::move(future));
@@ -85,13 +86,11 @@
[](auto, const auto& value) { return value; }, timeout);
}
- static bool waitForFuture(
- std::string_view name,
- std::chrono::milliseconds timeout = std::chrono::seconds(10));
+ static bool waitForFuture(std::string_view name,
+ Milliseconds timeout = std::chrono::seconds(10));
- static bool waitForFutures(
- std::string_view name,
- std::chrono::milliseconds timeout = std::chrono::seconds(10));
+ static bool waitForFutures(std::string_view name,
+ Milliseconds timeout = std::chrono::seconds(10));
private:
static std::future<bool> getFuture(std::string_view name);