From 6232d13f5321b87ddf12a1aa36b4545da45f173d Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 17 Nov 2021 22:34:57 +0100 Subject: Travel3: Simple image and video display site Reads the images and videos from filesystem and builds a site in memroy. --- test/test_signal_handler.cc | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 test/test_signal_handler.cc (limited to 'test/test_signal_handler.cc') diff --git a/test/test_signal_handler.cc b/test/test_signal_handler.cc new file mode 100644 index 0000000..511ab3c --- /dev/null +++ b/test/test_signal_handler.cc @@ -0,0 +1,63 @@ +#include "common.hh" + +#include "logger.hh" +#include "looper.hh" +#include "signal_handler.hh" + +#include + +class SignalHandlerTestFixture : + public testing::TestWithParam> { +}; + +TEST_P(SignalHandlerTestFixture, raise_before_loop) { + bool called = false; + auto logger = Logger::create_null(); + std::shared_ptr looper = Looper::create(); + auto handler = SignalHandler::create(looper, + GetParam().first, + [&called, &looper] { + called = true; + looper->quit(); + }); + raise(GetParam().second); + looper->run(logger.get()); + EXPECT_TRUE(called); +} + +TEST_P(SignalHandlerTestFixture, raise_during_loop) { + bool called = false; + auto logger = Logger::create_null(); + std::shared_ptr looper = Looper::create(); + auto handler = SignalHandler::create(looper, + GetParam().first, + [&called, &looper] { + called = true; + looper->quit(); + }); + looper->schedule(0, [] (uint32_t) { raise(GetParam().second); }); + looper->run(logger.get()); + EXPECT_TRUE(called); +} + +TEST_P(SignalHandlerTestFixture, no_raise) { + bool called = false; + auto logger = Logger::create_null(); + std::shared_ptr looper = Looper::create(); + auto handler = SignalHandler::create(looper, + GetParam().first, + [&called, &looper] { + called = true; + looper->quit(); + }); + looper->schedule(0, [&looper] (uint32_t) { looper->quit(); }); + looper->run(logger.get()); + EXPECT_FALSE(called); +} + +INSTANTIATE_TEST_SUITE_P( + SignalHandlerTests, + SignalHandlerTestFixture, + testing::Values(std::make_pair(SignalHandler::Signal::INT, SIGINT), + std::make_pair(SignalHandler::Signal::TERM, SIGTERM), + std::make_pair(SignalHandler::Signal::HUP, SIGHUP))); -- cgit v1.2.3-70-g09d2