From 66d080af31f1409e2011661db9024c1d81ceec87 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 14 Jun 2021 15:34:40 +0200 Subject: QtTest: move QTRY_X error message formatting out-of-line Clazy warns about the fromUtf8() call with a constant argument, for every use of the macro, so hide the stuff behind a compiler firewall. Also fix the format injection error by using QLatin1String::arg() instead of QString::arg() chaining. Change-Id: I4bb4d4af56443540efc0c38c75819aa152a441fc Reviewed-by: Thiago Macieira --- src/testlib/qtestcase.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/testlib/qtestcase.cpp') diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index b1e6401b0f..c08ad58d75 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -285,6 +285,14 @@ namespace QTestPrivate namespace QTest { + +QString Internal::formatTryTimeoutDebugMessage(q_no_char8_t::QUtf8StringView expr, int timeout, int actual) +{ + return QLatin1String("QTestLib: This test case check (\"%1\") failed because the requested timeout (%2 ms) was too short, %3 ms would have been sufficient this time.") + // ### Qt 7: remove the toString() (or earlier, when arg() can handle QUtf8StringView), passing the view directly + .arg(expr.toString(), QString::number(timeout), QString::number(actual)); +} + extern Q_TESTLIB_EXPORT int lastMouseTimestamp; class WatchDog; -- cgit v1.2.3