2021-12-16 19:10:28 +00:00
|
|
|
#include <gtest/gtest.h>
|
|
|
|
|
|
|
|
|
|
#include <torch/csrc/monitor/events.h>
|
|
|
|
|
|
|
|
|
|
using namespace torch::monitor;
|
|
|
|
|
|
|
|
|
|
struct AggregatingEventHandler : public EventHandler {
|
|
|
|
|
std::vector<Event> events;
|
|
|
|
|
|
|
|
|
|
void handle(const Event& e) override {
|
|
|
|
|
events.emplace_back(e);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TEST(EventsTest, EventHandler) {
|
|
|
|
|
Event e;
|
2022-01-12 21:33:49 +00:00
|
|
|
e.name = "test";
|
2021-12-16 19:10:28 +00:00
|
|
|
e.timestamp = std::chrono::system_clock::now();
|
2022-01-12 21:33:49 +00:00
|
|
|
e.data["string"] = "asdf";
|
|
|
|
|
e.data["double"] = 1234.5678;
|
|
|
|
|
e.data["int"] = 1234L;
|
|
|
|
|
e.data["bool"] = true;
|
2021-12-16 19:10:28 +00:00
|
|
|
|
|
|
|
|
// log to nothing
|
|
|
|
|
logEvent(e);
|
|
|
|
|
|
|
|
|
|
auto handler = std::make_shared<AggregatingEventHandler>();
|
|
|
|
|
registerEventHandler(handler);
|
|
|
|
|
|
|
|
|
|
logEvent(e);
|
|
|
|
|
ASSERT_EQ(handler->events.size(), 1);
|
|
|
|
|
ASSERT_EQ(e, handler->events.at(0));
|
|
|
|
|
|
|
|
|
|
unregisterEventHandler(handler);
|
|
|
|
|
logEvent(e);
|
|
|
|
|
// handler unregister, didn't log
|
|
|
|
|
ASSERT_EQ(handler->events.size(), 1);
|
|
|
|
|
}
|