mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-05-04 06:33:50 +00:00
55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
#include "test/Test.hpp"
|
|
#include "EventTest.hpp"
|
|
#include "storm/Core.hpp"
|
|
#include "storm/Region.hpp"
|
|
|
|
TEST_CASE("StormDestroy", "[core]") {
|
|
SECTION("always returns 1") {
|
|
CHECK(StormDestroy() == 1);
|
|
}
|
|
|
|
SECTION("SEvt") {
|
|
EventHandlerTest test;
|
|
|
|
SECTION("destroys all event handlers") {
|
|
SEvtRegisterHandler(1, 1, 1, 0, &TestEventHandler1);
|
|
CHECK(SEvtDispatch(1, 1, 1, nullptr) == 1);
|
|
CHECK(test.NumCalls() == 1);
|
|
|
|
CHECK(SEvtDispatch(1, 1, 1, nullptr) == 1);
|
|
CHECK(test.NumCalls() == 2);
|
|
|
|
CHECK(StormDestroy() == 1);
|
|
|
|
// Can't increment calls since the handler was destroyed
|
|
CHECK(SEvtDispatch(1, 1, 1, nullptr) == 0);
|
|
CHECK(test.NumCalls() == 2);
|
|
}
|
|
|
|
SECTION("doesn't destroy break data") {
|
|
// not ideal but it's official behaviour
|
|
SEvtBreakHandlerChain(nullptr);
|
|
|
|
CHECK(StormDestroy() == 1);
|
|
|
|
SEvtRegisterHandler(0, 0, 0, 0, &TestEventHandler1);
|
|
CHECK(SEvtDispatch(0, 0, 0, nullptr) == 0);
|
|
CHECK(SEvtDispatch(0, 0, 0, nullptr) == 1);
|
|
}
|
|
}
|
|
|
|
SECTION("SRgn") {
|
|
SECTION("destroys region handles") {
|
|
HSRGN rgn = nullptr;
|
|
SRgnCreate(&rgn);
|
|
REQUIRE(rgn != nullptr); // valid handle
|
|
|
|
CHECK(StormDestroy() == 1);
|
|
|
|
// fails to duplicate because handle is invalid
|
|
HSRGN newrgn;
|
|
SRgnDuplicate(rgn, &newrgn);
|
|
CHECK(newrgn == nullptr);
|
|
}
|
|
}
|
|
}
|