diff options
Diffstat (limited to 'test/util/run_loop.test.cpp')
-rw-r--r-- | test/util/run_loop.test.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/util/run_loop.test.cpp b/test/util/run_loop.test.cpp new file mode 100644 index 0000000000..57bc613f9e --- /dev/null +++ b/test/util/run_loop.test.cpp @@ -0,0 +1,52 @@ +#include <mbgl/util/run_loop.hpp> +#include <mbgl/util/timer.hpp> + +#include <mbgl/test/util.hpp> + +using namespace mbgl::util; + +TEST(RunLoop, Stop) { + RunLoop loop(RunLoop::Type::New); + + Timer timer; + timer.start(mbgl::Duration::zero(), mbgl::Duration::zero(), [&] { + loop.stop(); + }); + + loop.run(); +} + +TEST(RunLoop, MultipleStop) { + RunLoop loop(RunLoop::Type::New); + + Timer timer; + timer.start(mbgl::Duration::zero(), mbgl::Duration::zero(), [&] { + loop.stop(); + loop.stop(); + loop.stop(); + loop.stop(); + }); + + loop.run(); +} + +TEST(RunLoop, MultipleRun) { + RunLoop loop(RunLoop::Type::New); + + Timer timer; + timer.start(mbgl::Duration::zero(), mbgl::Duration::zero(), [&] { + loop.stop(); + }); + + loop.run(); + + bool secondTimeout = false; + timer.start(mbgl::Duration::zero(), mbgl::Duration::zero(), [&] { + secondTimeout = true; + loop.stop(); + }); + + loop.run(); + + EXPECT_TRUE(secondTimeout); +} |