Description: make sure that tests run with just compiled versions of tools
Author: Dmitry Shachnev <mitya57@debian.org>
Forwarded: not-needed
Last-Update: 2023-04-23

--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,5 +1,7 @@
 load(qt_build_config)
 
+QMAKE_CXXFLAGS += -DTESTBINDIR=\\\"$$PWD/bin\\\"
+
 DEFINES += QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST
 
 MODULE_VERSION = 5.15.17
--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp
+++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp
@@ -36,7 +36,7 @@ class tst_lconvert : public QObject
 public:
     tst_lconvert()
       : dataDir(QFINDTESTDATA("data/"))
-      , lconvert(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/lconvert") {}
+      , lconvert(TESTBINDIR "/lconvert") {}
 
 private slots:
     void initTestCase();
--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
+++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
@@ -39,7 +39,7 @@ class tst_lrelease : public QObject
 
 public:
     tst_lrelease()
-         : lrelease(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/lrelease")
+         : lrelease(TESTBINDIR "/lrelease")
          , dataDir(QFINDTESTDATA("testdata/"))
     {}
 
--- a/tests/auto/linguist/lupdate/tst_lupdate.cpp
+++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp
@@ -62,8 +62,7 @@ private:
 
 tst_lupdate::tst_lupdate()
 {
-    QString binPath = QLibraryInfo::location(QLibraryInfo::BinariesPath);
-    m_cmdLupdate = binPath + QLatin1String("/lupdate");
+    m_cmdLupdate = QStringLiteral(TESTBINDIR "/lupdate");
     m_basePath = QFINDTESTDATA("testdata/");
 }
 
--- a/tests/auto/macdeployqt/tst_macdeployqt.cpp
+++ b/tests/auto/macdeployqt/tst_macdeployqt.cpp
@@ -249,7 +249,7 @@ void tst_macdeployqt::initTestCase()
     QVERIFY(g_temporaryDirectory->isValid());
 
     // Locate build and deployment tools
-    g_macdeployqtBinary = QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/macdeployqt";
+    g_macdeployqtBinary = QStringLiteral(TESTBINDIR "/macdeployqt");
     QVERIFY(!g_macdeployqtBinary.isEmpty());
     g_qmakeBinary = QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmake";
     QVERIFY(!g_qmakeBinary.isEmpty());
--- a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
+++ b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
@@ -90,9 +90,8 @@ private:
 void tst_generatedOutput::initTestCase()
 {
     // Build the path to the QDoc binary the same way moc tests do for moc.
-    const auto binpath = QLibraryInfo::location(QLibraryInfo::BinariesPath);
     const auto extension = QSysInfo::productType() == "windows" ? ".exe" : "";
-    m_qdoc = binpath + QLatin1String("/qdoc") + extension;
+    m_qdoc = QStringLiteral(TESTBINDIR "/qdoc") + extension;
     m_expectedDir.setPath(QFINDTESTDATA(".") + QLatin1String("/expected_output"));
 }
 
--- a/tests/auto/qtattributionsscanner/tst_qtattributionsscanner.cpp
+++ b/tests/auto/qtattributionsscanner/tst_qtattributionsscanner.cpp
@@ -56,8 +56,7 @@ private:
 
 tst_qtattributionsscanner::tst_qtattributionsscanner()
 {
-    QString binPath = QLibraryInfo::location(QLibraryInfo::BinariesPath);
-    m_cmd = binPath + QLatin1String("/qtattributionsscanner");
+    m_cmd = QStringLiteral(TESTBINDIR "/qtattributionsscanner");
     m_basePath = QFINDTESTDATA("testdata");
 }
 
--- a/tests/auto/qtdiag/tst_qtdiag.cpp
+++ b/tests/auto/qtdiag/tst_qtdiag.cpp
@@ -46,7 +46,7 @@ private:
 
 void tst_QtDiag::initTestCase()
 {
-    QString binary = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QStringLiteral("/qtdiag");
+    QString binary = QStringLiteral(TESTBINDIR "/qtdiag");
 #  ifdef Q_OS_WIN
     binary += QStringLiteral(".exe");
 #  endif
