From b7fb9d8150ac84cb3f02e808ed0a0b186a6a57d9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 11 Apr 2024 12:13:26 -0700 Subject: [PATCH] QTest: add removed_api.cpp and move deprecated functions to it QtTest is not under the same Binary Compatibility guarantees as the other modules, but let's try and do it where it's easy. The toString() method can simply be removed from the header because it's not a member function. Its deprecation wasn't marked with a version number, so it starts now with 6.8. Change-Id: Ie28eadac333c4bcd8c08fffd17c54faca7057b9c Reviewed-by: Thiago Macieira Reviewed-by: Ivan Solovev --- src/testlib/CMakeLists.txt | 3 +++ src/testlib/qtestcase.cpp | 5 ----- src/testlib/qtestcase.h | 3 --- src/testlib/removed_api.cpp | 29 +++++++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 src/testlib/removed_api.cpp diff --git a/src/testlib/CMakeLists.txt b/src/testlib/CMakeLists.txt index 2c33883c96f..0758a46f70a 100644 --- a/src/testlib/CMakeLists.txt +++ b/src/testlib/CMakeLists.txt @@ -13,6 +13,7 @@ qt_internal_add_module(Test EXCEPTIONS SOURCES 3rdparty/cycle_p.h + removed_api.cpp # keep first qabstracttestlogger.cpp qabstracttestlogger_p.h qasciikey.cpp qbenchmark.cpp qbenchmark.h qbenchmark_p.h @@ -70,6 +71,8 @@ qt_internal_add_module(Test QT_NO_MESSAGELOGCONTEXT LIBRARIES Qt::CorePrivate + NO_PCH_SOURCES + removed_api.cpp PUBLIC_LIBRARIES Qt::Core PRIVATE_MODULE_INTERFACE diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 42795fade78..fb2b46d824b 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -3060,11 +3060,6 @@ char *QTest::toString(const char *str) /*! \internal */ char *QTest::toString(const volatile void *p) // Use volatile to match compare_ptr_helper() -{ - return QTest::toString(const_cast(p)); -} - -char *QTest::toString(const void *p) { char *msg = new char[128]; qsnprintf(msg, 128, "%p", p); diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 1a473823049..632b06fed33 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -402,7 +402,6 @@ namespace QTest Q_TESTLIB_EXPORT char *toPrettyUnicode(QStringView string); Q_TESTLIB_EXPORT char *toString(const char *); Q_TESTLIB_EXPORT char *toString(const volatile void *); - Q_TESTLIB_EXPORT char *toString(const void *); // ### FIXME: Qt 7: Remove Q_TESTLIB_EXPORT char *toString(const volatile QObject *); Q_TESTLIB_EXPORT void qInit(QObject *testObject, int argc = 0, char **argv = nullptr); @@ -495,8 +494,6 @@ namespace QTest Q_TESTLIB_EXPORT Qt::Key asciiToKey(char ascii); Q_TESTLIB_EXPORT char keyToAscii(Qt::Key key); - // ### TODO: remove QTestResult::compare() overload that takes char * values - // when this overload is removed. #if QT_DEPRECATED_SINCE(6, 4) QT_DEPRECATED_VERSION_X_6_4("use an overload that takes function_ref as parameters, " "or an overload that takes only failure message, if you " diff --git a/src/testlib/removed_api.cpp b/src/testlib/removed_api.cpp new file mode 100644 index 00000000000..00a53735a08 --- /dev/null +++ b/src/testlib/removed_api.cpp @@ -0,0 +1,29 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2024 Intel Corporation. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#define QT_TESTLIB_BUILD_REMOVED_API + +#include "qtest.h" + +#if QT_TESTLIB_REMOVED_SINCE(6, 8) + +QT_BEGIN_NAMESPACE + +namespace QTest { + +Q_TESTLIB_EXPORT char *toString(const void *p) +{ + const volatile void *ptr = p; + return toString(ptr); +} + +} // namespace QTest + +QT_END_NAMESPACE + +// #include "qotherheader.h" +// implement removed functions from qotherheader.h +// order sections alphabetically to reduce chances of merge conflicts + +#endif // QT_TESTLIB_REMOVED_SINCE(6, 8)