Files
MapLibreParticleLab/test/util/run_loop.cpp
2016-02-02 11:31:13 -08:00

76 lines
1.3 KiB
C++

#include <mbgl/util/run_loop.hpp>
#include <mbgl/util/timer.hpp>
#include "../fixtures/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, UnrefShouldStop) {
RunLoop loop(RunLoop::Type::New);
Timer timer;
timer.start(mbgl::Duration::zero(), mbgl::Duration::zero(), [&] {
loop.unref();
});
loop.run();
}
TEST(RunLoop, RefUnref) {
RunLoop loop(RunLoop::Type::New);
Timer timer;
auto zero = mbgl::Duration::zero();
auto cb3 = [&] {
loop.stop();
};
auto cb2 = [&] {
loop.unref();
loop.unref();
loop.ref();
timer.start(zero, zero, cb3);
};
auto cb1 = [&] {
loop.ref();
loop.ref();
loop.unref();
timer.start(zero, zero, cb2);
};
timer.start(zero, zero, cb1);
loop.run();
}