From 15c533764958eb965abf1e7e4b854471b4692374 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 11 Jul 2024 07:02:43 +0200 Subject: [PATCH] CmdBridge: Improve error handling The message result type was checked, but the promise was still finished without an error. Change-Id: Ib5ba5f48202073a82bfbcb871e0d5a5277ea9f2a Reviewed-by: Christian Stenger --- src/libs/gocmdbridge/client/cmdbridgeclient.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libs/gocmdbridge/client/cmdbridgeclient.cpp b/src/libs/gocmdbridge/client/cmdbridgeclient.cpp index 05ad3fc0d7d..59a475e1cf4 100644 --- a/src/libs/gocmdbridge/client/cmdbridgeclient.cpp +++ b/src/libs/gocmdbridge/client/cmdbridgeclient.cpp @@ -21,8 +21,13 @@ Q_LOGGING_CATEGORY(clientLog, "qtc.cmdbridge.client", QtWarningMsg) #define ASSERT_TYPE(expectedtype) \ - QTC_ASSERT(map.value("Type").toString() == expectedtype, promise.finish(); \ - return JobResult::Done) + if (map.value("Type").toString() != expectedtype) { \ + const QString err = QString("Unexpected result type: %1, expected: %2") \ + .arg(map.value("Type").toString(), expectedtype); \ + promise.setException(std::make_exception_ptr(std::runtime_error(err.toStdString()))); \ + promise.finish(); \ + return JobResult::Done; \ + } using namespace Utils;