aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/tst_blackbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/blackbox/tst_blackbox.cpp')
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp57
1 files changed, 43 insertions, 14 deletions
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 21f19c8a2..5747b52b1 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -36,6 +36,7 @@
#include <tools/preferences.h>
#include <tools/profile.h>
#include <tools/qttools.h>
+#include <tools/settings.h>
#include <tools/shellutils.h>
#include <tools/stlutils.h>
#include <tools/version.h>
@@ -146,6 +147,25 @@ bool TestBlackbox::lexYaccExist()
&& !findExecutable(QStringList("yacc")).isEmpty();
}
+qbs::Version TestBlackbox::bisonVersion()
+{
+ const auto yaccBinary = findExecutable(QStringList("yacc"));
+ QProcess process;
+ process.start(yaccBinary, QStringList() << "--version");
+ if (!process.waitForStarted())
+ return qbs::Version();
+ if (!process.waitForFinished())
+ return qbs::Version();
+ const auto processStdOut = process.readAllStandardOutput();
+ if (processStdOut.isEmpty())
+ return qbs::Version();
+ const auto line = processStdOut.split('\n')[0];
+ const auto words = line.split(' ');
+ if (words.empty())
+ return qbs::Version();
+ return qbs::Version::fromString(words.last());
+}
+
void TestBlackbox::sevenZip()
{
QDir::setCurrent(testDataDir + "/archiver");
@@ -4346,20 +4366,27 @@ void TestBlackbox::lexyaccOutputs()
} \
}
- QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/lex_prefix"));
- rmDirR(relativeBuildDir());
- QCOMPARE(runQbs(params), 0);
- VERIFY_COMPILATION(yaccOutputFilePath);
+ const auto version = bisonVersion();
+ if (version >= qbs::Version(2, 6)) {
+ // prefix only supported starting from bison 2.6
+ QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/lex_prefix"));
+ rmDirR(relativeBuildDir());
+ QCOMPARE(runQbs(params), 0);
+ VERIFY_COMPILATION(yaccOutputFilePath);
+ }
QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/lex_outfile"));
rmDirR(relativeBuildDir());
QCOMPARE(runQbs(params), 0);
VERIFY_COMPILATION(yaccOutputFilePath);
- QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/yacc_output"));
- rmDirR(relativeBuildDir());
- QCOMPARE(runQbs(params), 0);
- VERIFY_COMPILATION(lexOutputFilePath);
+ if (version >= qbs::Version(2, 4)) {
+ // output syntax was changed in bison 2.4
+ QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/yacc_output"));
+ rmDirR(relativeBuildDir());
+ QCOMPARE(runQbs(params), 0);
+ VERIFY_COMPILATION(lexOutputFilePath);
+ }
#undef VERIFY_COMPILATION
}
@@ -5207,8 +5234,9 @@ void TestBlackbox::qbsConfig()
bool canWriteToSystemSettings;
QString testSettingsFilePath;
{
- QSettings testSettings(QSettings::IniFormat, QSettings::SystemScope,
- "dummyOrg", "dummyApp");
+ QSettings testSettings(
+ qbs::Settings::defaultSystemSettingsBaseDir() + "/dummyOrg" + "/dummyApp.conf",
+ QSettings::IniFormat);
testSettings.setValue("dummyKey", "dummyValue");
testSettings.sync();
canWriteToSystemSettings = testSettings.status() == QSettings::NoError;
@@ -6477,10 +6505,11 @@ void TestBlackbox::minimumSystemVersion_data()
const auto v = defaultClangMinimumDeploymentTarget();
auto result = "__MAC_OS_X_VERSION_MIN_REQUIRED="
+ QString::number(toMinimumDeploymentTargetValue(v, true));
- if (v < qbs::Version(10, 14)) {
- result += "\nversion "
- + QString::number(v.majorVersion()) + "." + QString::number(v.minorVersion());
- }
+ if (v >= qbs::Version(10, 14))
+ result += "\nminos ";
+ else
+ result += "\nversion ";
+ result += QString::number(v.majorVersion()) + "." + QString::number(v.minorVersion());
return result;
}