1 #include <gtest/gtest.h> 2 3 #include <torch/csrc/monitor/events.h> 4 5 using namespace torch::monitor; 6 7 struct AggregatingEventHandler : public EventHandler { 8 std::vector<Event> events; 9 handleAggregatingEventHandler10 void handle(const Event& e) override { 11 events.emplace_back(e); 12 } 13 }; 14 TEST(EventsTest,EventHandler)15TEST(EventsTest, EventHandler) { 16 Event e; 17 e.name = "test"; 18 e.timestamp = std::chrono::system_clock::now(); 19 e.data["string"] = "asdf"; 20 e.data["double"] = 1234.5678; 21 e.data["int"] = 1234L; 22 e.data["bool"] = true; 23 24 // log to nothing 25 logEvent(e); 26 27 auto handler = std::make_shared<AggregatingEventHandler>(); 28 registerEventHandler(handler); 29 30 logEvent(e); 31 ASSERT_EQ(handler->events.size(), 1); 32 ASSERT_EQ(e, handler->events.at(0)); 33 34 unregisterEventHandler(handler); 35 logEvent(e); 36 // handler unregister, didn't log 37 ASSERT_EQ(handler->events.size(), 1); 38 } 39