From 1b165bebcc94d720f20aa6fb3186384bec47945a Mon Sep 17 00:00:00 2001 From: Maximilian Seidler Date: Sat, 11 Jan 2025 12:28:04 +0100 Subject: [PATCH] animation: test how many times callbacks get called --- tests/animation.cpp | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/tests/animation.cpp b/tests/animation.cpp index f635a13..90f0535 100644 --- a/tests/animation.cpp +++ b/tests/animation.cpp @@ -260,31 +260,27 @@ int main(int argc, char** argv, char** envp) { // // Test callbacks // - bool beginCallbackRan = false; - bool updateCallbackRan = false; - bool endCallbackRan = false; - s.m_iA->setCallbackOnBegin([&beginCallbackRan](WP pav) { beginCallbackRan = true; }); - s.m_iA->setUpdateCallback([&updateCallbackRan](WP pav) { updateCallbackRan = true; }); - s.m_iA->setCallbackOnEnd([&endCallbackRan](WP pav) { endCallbackRan = true; }, false); + int beginCallbackRan = false; + int updateCallbackRan = false; + int endCallbackRan = false; + s.m_iA->setCallbackOnBegin([&beginCallbackRan](WP pav) { beginCallbackRan++; }); + s.m_iA->setUpdateCallback([&updateCallbackRan](WP pav) { updateCallbackRan++; }); + s.m_iA->setCallbackOnEnd([&endCallbackRan](WP pav) { endCallbackRan++; }, false); s.m_iA->setValueAndWarp(42); - EXPECT(beginCallbackRan, false); - EXPECT(updateCallbackRan, true); - EXPECT(endCallbackRan, true); - - beginCallbackRan = false; - updateCallbackRan = false; - endCallbackRan = false; + EXPECT(beginCallbackRan, 0); + EXPECT(updateCallbackRan, 1); + EXPECT(endCallbackRan, 2); // first called when setting the callback, then when warping. *s.m_iA = 1337; while (gAnimationManager.shouldTickForNext()) { gAnimationManager.tick(); } - EXPECT(beginCallbackRan, true); - EXPECT(updateCallbackRan, true); - EXPECT(endCallbackRan, true); + EXPECT(beginCallbackRan, 1); + EXPECT(updateCallbackRan > 2, true); + EXPECT(endCallbackRan, 3); std::vector> vars; for (int i = 0; i < 10; i++) { @@ -316,17 +312,14 @@ int main(int argc, char** argv, char** envp) { EXPECT(std::find_if(vars.begin(), vars.end(), [](const auto& v) { return v->value() != 1337; }) == vars.end(), true); // test one-time callbacks - endCallbackRan = false; s.m_iA->resetAllCallbacks(); - s.m_iA->setCallbackOnEnd([&endCallbackRan](auto) { endCallbackRan = true; }, true); - - EXPECT(endCallbackRan, true); + s.m_iA->setCallbackOnEnd([&endCallbackRan](auto) { endCallbackRan++; }, true); - endCallbackRan = false; + EXPECT(endCallbackRan, 4); s.m_iA->setValueAndWarp(10); - EXPECT(endCallbackRan, false); + EXPECT(endCallbackRan, 4); EXPECT(s.m_iA->value(), 10); return ret;