From 07d662aafc25b145eb20e4123ebc82b5736cdeb7 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Sun, 16 Nov 2025 14:09:50 +0800 Subject: New timer impl on Windows. Add Event test. Fix delete later. --- test/base/EventTest.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/base/EventTest.cpp (limited to 'test/base/EventTest.cpp') diff --git a/test/base/EventTest.cpp b/test/base/EventTest.cpp new file mode 100644 index 00000000..9ebf8b28 --- /dev/null +++ b/test/base/EventTest.cpp @@ -0,0 +1,39 @@ +#include "cru/base/Event.h" + +#include + +TEST_CASE("Event should work.", "[event]") { + using cru::Event; + + Event event; + + int count = 0; + bool triggered = false; + + auto revoker = event.AddHandler([](int& count) { count++; }); + event.AddHandler([](int& count) { count++; }); + event.AddSpyOnlyHandler([&triggered] { triggered = true; }); + + event.Raise(count); + REQUIRE(count == 2); + REQUIRE(triggered); + + revoker(); + + event.Raise(count); + REQUIRE(count == 3); +} + +TEST_CASE("Event destroy during raising.", "[event]") { + using cru::Event; + + Event* event = new Event(); + + event->AddSpyOnlyHandler([event] { delete event; }); + auto revoker = event->AddHandler([](int& count) { count++; }); + + int count = 0; + event->Raise(count); + REQUIRE(count == 1); + revoker(); +} -- cgit v1.2.3