#define DROGON_TEST_MAIN #include #include DROGON_TEST(BasicTest) { // Add your tests here } int main(int argc, char** argv) { using namespace drogon; std::promise p1; std::future f1 = p1.get_future(); // Start the main loop on another thread std::thread thr([&]() { // Queues the promise to be fulfilled after starting the loop app().getLoop()->queueInLoop([&p1]() { p1.set_value(); }); app().run(); }); // The future is only satisfied after the event loop started f1.get(); int status = test::run(argc, argv); // Ask the event loop to shutdown and wait app().getLoop()->queueInLoop([]() { app().quit(); }); thr.join(); return status; }