blob: 9e579d0023c4e510e12c6339da4b5432514c2e49 [file] [log] [blame]
#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;
e.name = "test";
e.timestamp = std::chrono::system_clock::now();
e.data["string"] = "asdf";
e.data["double"] = 1234.5678;
e.data["int"] = 1234L;
e.data["bool"] = true;
// 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);
}