diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/blackbox/testdata-windows/innosetup/inc/qbsinc.iss (renamed from tests/auto/blackbox/testdata/innosetup/inc/qbsinc.iss) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/innosetup/innosetup.qbs (renamed from tests/auto/blackbox/testdata/innosetup/innosetup.qbs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/innosetup/test.iss (renamed from tests/auto/blackbox/testdata/innosetup/test.iss) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/innosetupDependencies/innosetupDependencies.qbs (renamed from tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/innosetupDependencies/main.c (renamed from tests/auto/blackbox/testdata/innosetupDependencies/main.c) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/innosetupDependencies/test.iss (renamed from tests/auto/blackbox/testdata/innosetupDependencies/test.iss) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wix/ExampleScript.bat (renamed from tests/auto/blackbox/testdata/wix/ExampleScript.bat) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wix/QbsBootstrapper.wxs (renamed from tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wix/QbsSetup.wxs (renamed from tests/auto/blackbox/testdata/wix/QbsSetup.wxs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wix/Qt.wxs (renamed from tests/auto/blackbox/testdata/wix/Qt.wxs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wix/WiXInstallers.qbs (renamed from tests/auto/blackbox/testdata/wix/WiXInstallers.qbs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wix/de.wxl (renamed from tests/auto/blackbox/testdata/wix/de.wxl) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wixDependencies/QbsSetup.wxs (renamed from tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wixDependencies/main.c (renamed from tests/auto/blackbox/testdata/wixDependencies/main.c) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-windows/wixDependencies/wixDependencies.qbs (renamed from tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs) | 0 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 129 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.h | 4 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackboxwindows.cpp | 133 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackboxwindows.h | 4 |
19 files changed, 137 insertions, 133 deletions
diff --git a/tests/auto/blackbox/testdata/innosetup/inc/qbsinc.iss b/tests/auto/blackbox/testdata-windows/innosetup/inc/qbsinc.iss index e69de29bb..e69de29bb 100644 --- a/tests/auto/blackbox/testdata/innosetup/inc/qbsinc.iss +++ b/tests/auto/blackbox/testdata-windows/innosetup/inc/qbsinc.iss diff --git a/tests/auto/blackbox/testdata/innosetup/innosetup.qbs b/tests/auto/blackbox/testdata-windows/innosetup/innosetup.qbs index 718dec6f5..718dec6f5 100644 --- a/tests/auto/blackbox/testdata/innosetup/innosetup.qbs +++ b/tests/auto/blackbox/testdata-windows/innosetup/innosetup.qbs diff --git a/tests/auto/blackbox/testdata/innosetup/test.iss b/tests/auto/blackbox/testdata-windows/innosetup/test.iss index f9f9195a6..f9f9195a6 100644 --- a/tests/auto/blackbox/testdata/innosetup/test.iss +++ b/tests/auto/blackbox/testdata-windows/innosetup/test.iss diff --git a/tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs b/tests/auto/blackbox/testdata-windows/innosetupDependencies/innosetupDependencies.qbs index ab68d3011..ab68d3011 100644 --- a/tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs +++ b/tests/auto/blackbox/testdata-windows/innosetupDependencies/innosetupDependencies.qbs diff --git a/tests/auto/blackbox/testdata/innosetupDependencies/main.c b/tests/auto/blackbox/testdata-windows/innosetupDependencies/main.c index 76e819701..76e819701 100644 --- a/tests/auto/blackbox/testdata/innosetupDependencies/main.c +++ b/tests/auto/blackbox/testdata-windows/innosetupDependencies/main.c diff --git a/tests/auto/blackbox/testdata/innosetupDependencies/test.iss b/tests/auto/blackbox/testdata-windows/innosetupDependencies/test.iss index 430f9941b..430f9941b 100644 --- a/tests/auto/blackbox/testdata/innosetupDependencies/test.iss +++ b/tests/auto/blackbox/testdata-windows/innosetupDependencies/test.iss diff --git a/tests/auto/blackbox/testdata/wix/ExampleScript.bat b/tests/auto/blackbox/testdata-windows/wix/ExampleScript.bat index 3af583cd8..3af583cd8 100644 --- a/tests/auto/blackbox/testdata/wix/ExampleScript.bat +++ b/tests/auto/blackbox/testdata-windows/wix/ExampleScript.bat diff --git a/tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs b/tests/auto/blackbox/testdata-windows/wix/QbsBootstrapper.wxs index 272f6af5b..272f6af5b 100644 --- a/tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs +++ b/tests/auto/blackbox/testdata-windows/wix/QbsBootstrapper.wxs diff --git a/tests/auto/blackbox/testdata/wix/QbsSetup.wxs b/tests/auto/blackbox/testdata-windows/wix/QbsSetup.wxs index 8f97ff667..8f97ff667 100644 --- a/tests/auto/blackbox/testdata/wix/QbsSetup.wxs +++ b/tests/auto/blackbox/testdata-windows/wix/QbsSetup.wxs diff --git a/tests/auto/blackbox/testdata/wix/Qt.wxs b/tests/auto/blackbox/testdata-windows/wix/Qt.wxs index fbd992c43..fbd992c43 100644 --- a/tests/auto/blackbox/testdata/wix/Qt.wxs +++ b/tests/auto/blackbox/testdata-windows/wix/Qt.wxs diff --git a/tests/auto/blackbox/testdata/wix/WiXInstallers.qbs b/tests/auto/blackbox/testdata-windows/wix/WiXInstallers.qbs index 07f61ba2c..07f61ba2c 100644 --- a/tests/auto/blackbox/testdata/wix/WiXInstallers.qbs +++ b/tests/auto/blackbox/testdata-windows/wix/WiXInstallers.qbs diff --git a/tests/auto/blackbox/testdata/wix/de.wxl b/tests/auto/blackbox/testdata-windows/wix/de.wxl index 75394cfdd..75394cfdd 100644 --- a/tests/auto/blackbox/testdata/wix/de.wxl +++ b/tests/auto/blackbox/testdata-windows/wix/de.wxl diff --git a/tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs b/tests/auto/blackbox/testdata-windows/wixDependencies/QbsSetup.wxs index ec839a269..ec839a269 100644 --- a/tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs +++ b/tests/auto/blackbox/testdata-windows/wixDependencies/QbsSetup.wxs diff --git a/tests/auto/blackbox/testdata/wixDependencies/main.c b/tests/auto/blackbox/testdata-windows/wixDependencies/main.c index 76e819701..76e819701 100644 --- a/tests/auto/blackbox/testdata/wixDependencies/main.c +++ b/tests/auto/blackbox/testdata-windows/wixDependencies/main.c diff --git a/tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs b/tests/auto/blackbox/testdata-windows/wixDependencies/wixDependencies.qbs index d42a18054..d42a18054 100644 --- a/tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs +++ b/tests/auto/blackbox/testdata-windows/wixDependencies/wixDependencies.qbs diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 7d75ab91f..1082ba595 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -7423,94 +7423,6 @@ void TestBlackbox::generator_data() QTest::newRow("no update") << QString() << QStringList(); } -static bool haveWiX(const Profile &profile) -{ - if (profile.value("wix.toolchainInstallPath").isValid() && - profile.value("wix.toolchainInstallRoot").isValid()) { - return true; - } - - QStringList regKeys; - regKeys << QStringLiteral("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows Installer XML\\") - << QStringLiteral("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Installer XML\\"); - - QStringList paths = QProcessEnvironment::systemEnvironment().value("PATH") - .split(HostOsInfo::pathListSeparator(), QBS_SKIP_EMPTY_PARTS); - - for (const QString &key : qAsConst(regKeys)) { - const QStringList versions = QSettings(key, QSettings::NativeFormat).childGroups(); - for (const QString &version : versions) { - QSettings settings(key + version, QSettings::NativeFormat); - QString str = settings.value(QStringLiteral("InstallRoot")).toString(); - if (!str.isEmpty()) - paths.prepend(str); - } - } - - for (const QString &path : qAsConst(paths)) { - if (regularFileExists(QDir::fromNativeSeparators(path) + - HostOsInfo::appendExecutableSuffix(QStringLiteral("/candle"))) && - regularFileExists(QDir::fromNativeSeparators(path) + - HostOsInfo::appendExecutableSuffix(QStringLiteral("/light")))) { - return true; - } - } - - return false; -} - -void TestBlackbox::wix() -{ - const SettingsPtr s = settings(); - Profile profile(profileName(), s.get()); - - if (!haveWiX(profile)) { - QSKIP("WiX is not installed"); - return; - } - - QByteArray arch = profile.value("qbs.architecture").toString().toLatin1(); - if (arch.isEmpty()) - arch = QByteArrayLiteral("x86"); - - QDir::setCurrent(testDataDir + "/wix"); - QCOMPARE(runQbs(), 0); - QVERIFY2(m_qbsStdout.contains("compiling QbsSetup.wxs"), m_qbsStdout); - QVERIFY2(m_qbsStdout.contains("linking qbs.msi"), m_qbsStdout); - QVERIFY(regularFileExists(relativeProductBuildDir("QbsSetup") + "/qbs.msi")); - - if (HostOsInfo::isWindowsHost()) { - QVERIFY2(m_qbsStdout.contains("compiling QbsBootstrapper.wxs"), m_qbsStdout); - QVERIFY2(m_qbsStdout.contains("linking qbs-setup-" + arch + ".exe"), m_qbsStdout); - QVERIFY(regularFileExists(relativeProductBuildDir("QbsBootstrapper") - + "/qbs-setup-" + arch + ".exe")); - } -} - -void TestBlackbox::wixDependencies() -{ - const SettingsPtr s = settings(); - Profile profile(profileName(), s.get()); - - if (!haveWiX(profile)) { - QSKIP("WiX is not installed"); - return; - } - - QByteArray arch = profile.value("qbs.architecture").toString().toLatin1(); - if (arch.isEmpty()) - arch = QByteArrayLiteral("x86"); - - QDir::setCurrent(testDataDir + "/wixDependencies"); - QbsRunParameters params; - if (!HostOsInfo::isWindowsHost()) - params.arguments << "qbs.targetOS:windows"; - QCOMPARE(runQbs(params), 0); - QVERIFY2(m_qbsStdout.contains("compiling QbsSetup.wxs"), m_qbsStdout); - QVERIFY2(m_qbsStdout.contains("linking qbs.msi"), m_qbsStdout); - QVERIFY(regularFileExists(relativeBuildDir() + "/qbs.msi")); -} - void TestBlackbox::nodejs() { const SettingsPtr s = settings(); @@ -7628,47 +7540,6 @@ void TestBlackbox::includeLookup() QVERIFY2(m_qbsStdout.contains("definition.."), m_qbsStdout.constData()); } -void TestBlackbox::innoSetup() -{ - const SettingsPtr s = settings(); - Profile profile(profileName(), s.get()); - - QDir::setCurrent(testDataDir + "/innosetup"); - - QCOMPARE(runQbs({"resolve"}), 0); - const bool withInnosetup = m_qbsStdout.contains("has innosetup: true"); - const bool withoutInnosetup = m_qbsStdout.contains("has innosetup: false"); - QVERIFY2(withInnosetup || withoutInnosetup, m_qbsStdout.constData()); - if (withoutInnosetup) - QSKIP("innosetup module not present"); - - QCOMPARE(runQbs(), 0); - QVERIFY(m_qbsStdout.contains("compiling test.iss")); - QVERIFY(m_qbsStdout.contains("compiling Example1.iss")); - QVERIFY(regularFileExists(relativeProductBuildDir("QbsSetup") + "/qbs.setup.test.exe")); - QVERIFY(regularFileExists(relativeProductBuildDir("Example1") + "/Example1.exe")); -} - -void TestBlackbox::innoSetupDependencies() -{ - const SettingsPtr s = settings(); - Profile profile(profileName(), s.get()); - - QDir::setCurrent(testDataDir + "/innosetupDependencies"); - - QCOMPARE(runQbs({"resolve"}), 0); - const bool withInnosetup = m_qbsStdout.contains("has innosetup: true"); - const bool withoutInnosetup = m_qbsStdout.contains("has innosetup: false"); - QVERIFY2(withInnosetup || withoutInnosetup, m_qbsStdout.constData()); - if (withoutInnosetup) - QSKIP("innosetup module not present"); - - QbsRunParameters params; - QCOMPARE(runQbs(params), 0); - QVERIFY(m_qbsStdout.contains("compiling test.iss")); - QVERIFY(regularFileExists(relativeBuildDir() + "/qbs.setup.test.exe")); -} - void TestBlackbox::inputTagsChangeTracking_data() { QTest::addColumn<QString>("generateInput"); diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index 942cb6b47..6395eb679 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -143,8 +143,6 @@ private slots: void importingProduct(); void importsConflict(); void includeLookup(); - void innoSetup(); - void innoSetupDependencies(); void inputTagsChangeTracking_data(); void inputTagsChangeTracking(); void inputsFromDependencies(); @@ -337,8 +335,6 @@ private slots: void wholeArchive_data(); void wildCardsAndRules(); void wildcardRenaming(); - void wix(); - void wixDependencies(); void zip(); void zip_data(); void zipInvalid(); diff --git a/tests/auto/blackbox/tst_blackboxwindows.cpp b/tests/auto/blackbox/tst_blackboxwindows.cpp index 0c82754fb..d1d62496c 100644 --- a/tests/auto/blackbox/tst_blackboxwindows.cpp +++ b/tests/auto/blackbox/tst_blackboxwindows.cpp @@ -33,11 +33,14 @@ #include "../shared.h" #include <tools/hostosinfo.h> +#include <tools/profile.h> +#include <tools/qttools.h> #include <QtCore/qdir.h> #include <QtCore/qregularexpression.h> using qbs::Internal::HostOsInfo; +using qbs::Profile; struct SigntoolInfo { @@ -117,6 +120,47 @@ void TestBlackboxWindows::initTestCase() TestBlackboxBase::initTestCase(); } +void TestBlackboxWindows::innoSetup() +{ + const SettingsPtr s = settings(); + Profile profile(profileName(), s.get()); + + QDir::setCurrent(testDataDir + "/innosetup"); + + QCOMPARE(runQbs({"resolve"}), 0); + const bool withInnosetup = m_qbsStdout.contains("has innosetup: true"); + const bool withoutInnosetup = m_qbsStdout.contains("has innosetup: false"); + QVERIFY2(withInnosetup || withoutInnosetup, m_qbsStdout.constData()); + if (withoutInnosetup) + QSKIP("innosetup module not present"); + + QCOMPARE(runQbs(), 0); + QVERIFY(m_qbsStdout.contains("compiling test.iss")); + QVERIFY(m_qbsStdout.contains("compiling Example1.iss")); + QVERIFY(regularFileExists(relativeProductBuildDir("QbsSetup") + "/qbs.setup.test.exe")); + QVERIFY(regularFileExists(relativeProductBuildDir("Example1") + "/Example1.exe")); +} + +void TestBlackboxWindows::innoSetupDependencies() +{ + const SettingsPtr s = settings(); + Profile profile(profileName(), s.get()); + + QDir::setCurrent(testDataDir + "/innosetupDependencies"); + + QCOMPARE(runQbs({"resolve"}), 0); + const bool withInnosetup = m_qbsStdout.contains("has innosetup: true"); + const bool withoutInnosetup = m_qbsStdout.contains("has innosetup: false"); + QVERIFY2(withInnosetup || withoutInnosetup, m_qbsStdout.constData()); + if (withoutInnosetup) + QSKIP("innosetup module not present"); + + QbsRunParameters params; + QCOMPARE(runQbs(params), 0); + QVERIFY(m_qbsStdout.contains("compiling test.iss")); + QVERIFY(regularFileExists(relativeBuildDir() + "/qbs.setup.test.exe")); +} + void TestBlackboxWindows::standaloneCodesign() { QFETCH(SigntoolInfo::CodeSignResult, result); @@ -171,4 +215,93 @@ void TestBlackboxWindows::standaloneCodesign_data() << "http://timestamp.digicert.com"; } + +static bool haveWiX(const Profile &profile) +{ + if (profile.value("wix.toolchainInstallPath").isValid() && + profile.value("wix.toolchainInstallRoot").isValid()) { + return true; + } + + QStringList regKeys; + regKeys << QStringLiteral("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows Installer XML\\") + << QStringLiteral("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Installer XML\\"); + + QStringList paths = QProcessEnvironment::systemEnvironment().value("PATH") + .split(HostOsInfo::pathListSeparator(), QBS_SKIP_EMPTY_PARTS); + + for (const QString &key : qAsConst(regKeys)) { + const QStringList versions = QSettings(key, QSettings::NativeFormat).childGroups(); + for (const QString &version : versions) { + QSettings settings(key + version, QSettings::NativeFormat); + QString str = settings.value(QStringLiteral("InstallRoot")).toString(); + if (!str.isEmpty()) + paths.prepend(str); + } + } + + for (const QString &path : qAsConst(paths)) { + if (regularFileExists(QDir::fromNativeSeparators(path) + + HostOsInfo::appendExecutableSuffix(QStringLiteral("/candle"))) && + regularFileExists(QDir::fromNativeSeparators(path) + + HostOsInfo::appendExecutableSuffix(QStringLiteral("/light")))) { + return true; + } + } + + return false; +} + +void TestBlackboxWindows::wix() +{ + const SettingsPtr s = settings(); + Profile profile(profileName(), s.get()); + + if (!haveWiX(profile)) { + QSKIP("WiX is not installed"); + return; + } + + QByteArray arch = profile.value("qbs.architecture").toString().toLatin1(); + if (arch.isEmpty()) + arch = QByteArrayLiteral("x86"); + + QDir::setCurrent(testDataDir + "/wix"); + QCOMPARE(runQbs(), 0); + QVERIFY2(m_qbsStdout.contains("compiling QbsSetup.wxs"), m_qbsStdout); + QVERIFY2(m_qbsStdout.contains("linking qbs.msi"), m_qbsStdout); + QVERIFY(regularFileExists(relativeProductBuildDir("QbsSetup") + "/qbs.msi")); + + if (HostOsInfo::isWindowsHost()) { + QVERIFY2(m_qbsStdout.contains("compiling QbsBootstrapper.wxs"), m_qbsStdout); + QVERIFY2(m_qbsStdout.contains("linking qbs-setup-" + arch + ".exe"), m_qbsStdout); + QVERIFY(regularFileExists(relativeProductBuildDir("QbsBootstrapper") + + "/qbs-setup-" + arch + ".exe")); + } +} + +void TestBlackboxWindows::wixDependencies() +{ + const SettingsPtr s = settings(); + Profile profile(profileName(), s.get()); + + if (!haveWiX(profile)) { + QSKIP("WiX is not installed"); + return; + } + + QByteArray arch = profile.value("qbs.architecture").toString().toLatin1(); + if (arch.isEmpty()) + arch = QByteArrayLiteral("x86"); + + QDir::setCurrent(testDataDir + "/wixDependencies"); + QbsRunParameters params; + if (!HostOsInfo::isWindowsHost()) + params.arguments << "qbs.targetOS:windows"; + QCOMPARE(runQbs(params), 0); + QVERIFY2(m_qbsStdout.contains("compiling QbsSetup.wxs"), m_qbsStdout); + QVERIFY2(m_qbsStdout.contains("linking qbs.msi"), m_qbsStdout); + QVERIFY(regularFileExists(relativeBuildDir() + "/qbs.msi")); +} + QTEST_MAIN(TestBlackboxWindows) diff --git a/tests/auto/blackbox/tst_blackboxwindows.h b/tests/auto/blackbox/tst_blackboxwindows.h index fbc597313..ad8d60ca3 100644 --- a/tests/auto/blackbox/tst_blackboxwindows.h +++ b/tests/auto/blackbox/tst_blackboxwindows.h @@ -44,8 +44,12 @@ public slots: void initTestCase() override; private slots: + void innoSetup(); + void innoSetupDependencies(); void standaloneCodesign(); void standaloneCodesign_data(); + void wix(); + void wixDependencies(); }; #endif // TST_BLACKBOXWINDOWS_H |