diff options
Diffstat (limited to 'src/cmd.cpp')
-rw-r--r-- | src/cmd.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/cmd.cpp b/src/cmd.cpp index c9cdbc17..2ab0b323 100644 --- a/src/cmd.cpp +++ b/src/cmd.cpp @@ -37,6 +37,7 @@ #include "core/GpgCoreInit.h" #include "core/function/GlobalSettingStation.h" #include "core/module/ModuleManager.h" +#include "core/thread/TaskRunnerGetter.h" #include "core/utils/BuildInfoUtils.h" // GpgFrontend @@ -199,7 +200,23 @@ auto RunTest(const GFCxtWPtr& p_ctx) -> int { test_init_args.argc = ctx->argc; test_init_args.argv = ctx->argv; - return GpgFrontend::Test::ExecuteAllTestCase(test_init_args); + QEventLoop looper; + + auto* task = new GpgFrontend::Thread::Task( + [=](const DataObjectPtr&) -> int { + return GpgFrontend::Test::ExecuteAllTestCase(test_init_args); + }, + "unit-test", TransferParams()); + + QObject::connect(task, &GpgFrontend::Thread::Task::SignalTaskEnd, &looper, + &QEventLoop::quit); + + GpgFrontend::Thread::TaskRunnerGetter::GetInstance() + .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Default) + ->PostTask(task); + + looper.exec(); + return 0; } } // namespace GpgFrontend
\ No newline at end of file |