aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/blackbox/testdata-android/qt-app/Test.java54
-rw-r--r--tests/auto/blackbox/testdata-android/qt-app/qt-app.qbs2
-rw-r--r--tests/auto/blackbox/testdata-qt/dbus-adaptors/car.cpp5
-rw-r--r--tests/auto/blackbox/testdata-qt/dbus-adaptors/main.cpp6
-rw-r--r--tests/auto/blackbox/testdata-qt/dbus-interfaces/controller.cpp5
-rw-r--r--tests/auto/blackbox/testdata-qt/dbus-interfaces/main.cpp5
-rw-r--r--tests/auto/blackbox/testdata-qt/forced-moc/forced-moc.qbs6
-rw-r--r--tests/auto/blackbox/testdata-qt/included-moc-cpp/included-moc-cpp.qbs8
-rw-r--r--tests/auto/blackbox/testdata-qt/plugin-meta-data/plugin-meta-data.qbs7
-rw-r--r--tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs10
-rw-r--r--tests/auto/blackbox/testdata-qt/qrc/i.qbs6
-rw-r--r--tests/auto/blackbox/testdata-qt/quick-compiler/quick-compiler.qbs6
-rw-r--r--tests/auto/blackbox/tst_blackboxandroid.cpp19
-rw-r--r--tests/auto/blackbox/tst_blackboxqt.cpp26
14 files changed, 156 insertions, 9 deletions
diff --git a/tests/auto/blackbox/testdata-android/qt-app/Test.java b/tests/auto/blackbox/testdata-android/qt-app/Test.java
new file mode 100644
index 000000000..c57486d56
--- /dev/null
+++ b/tests/auto/blackbox/testdata-android/qt-app/Test.java
@@ -0,0 +1,54 @@
+package org.qbs.example;
+
+import org.qtproject.qt5.android.bindings.QtActivity;
+import android.os.*;
+import android.content.*;
+import android.app.*;
+import android.util.Log;
+
+import java.lang.String;
+import android.content.Intent;
+
+import org.qbs.example.*;
+
+
+public class Test extends QtActivity
+{
+ public static native void testFunc(String test);
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ Log.d("qbs", "onCreate Test");
+ Intent theIntent = getIntent();
+ if (theIntent != null) {
+ String theAction = theIntent.getAction();
+ if (theAction != null) {
+ Log.d("qbs onCreate ", theAction);
+ }
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ Log.d("qbs", "onDestroy");
+ System.exit(0);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ Log.d("qbs onActivityResult", "requestCode: "+requestCode);
+ if (resultCode == RESULT_OK) {
+ Log.d("qbs onActivityResult - resultCode: ", "SUCCESS");
+ } else {
+ Log.d("qbs onActivityResult - resultCode: ", "CANCEL");
+ }
+ }
+
+ @Override
+ public void onNewIntent(Intent intent) {
+ Log.d("qbs", "onNewIntent");
+ super.onNewIntent(intent);
+ setIntent(intent);
+ }
+}
diff --git a/tests/auto/blackbox/testdata-android/qt-app/qt-app.qbs b/tests/auto/blackbox/testdata-android/qt-app/qt-app.qbs
index 981c9eb3d..94093af64 100644
--- a/tests/auto/blackbox/testdata-android/qt-app/qt-app.qbs
+++ b/tests/auto/blackbox/testdata-android/qt-app/qt-app.qbs
@@ -1,7 +1,7 @@
Project {
QtGuiApplication {
Depends { name: "Lib" }
- files: ["main.cpp", "MainWindow.cpp", "MainWindow.h"]
+ files: ["main.cpp", "MainWindow.cpp", "MainWindow.h", "Test.java"]
Android.sdk.packageName: "my.qtapp"
Android.sdk.apkBaseName: name
Depends { name: "Qt"; submodules: ["core", "widgets"] }
diff --git a/tests/auto/blackbox/testdata-qt/dbus-adaptors/car.cpp b/tests/auto/blackbox/testdata-qt/dbus-adaptors/car.cpp
index 5e4f348d2..f67e4c193 100644
--- a/tests/auto/blackbox/testdata-qt/dbus-adaptors/car.cpp
+++ b/tests/auto/blackbox/testdata-qt/dbus-adaptors/car.cpp
@@ -49,7 +49,12 @@
****************************************************************************/
#include "car.h"
+
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWidgets/QtWidgets>
+#else
+#include <QtGui>
+#endif
#include <math.h>
static const double Pi = 3.14159265358979323846264338327950288419717;
diff --git a/tests/auto/blackbox/testdata-qt/dbus-adaptors/main.cpp b/tests/auto/blackbox/testdata-qt/dbus-adaptors/main.cpp
index 0491719d7..197005215 100644
--- a/tests/auto/blackbox/testdata-qt/dbus-adaptors/main.cpp
+++ b/tests/auto/blackbox/testdata-qt/dbus-adaptors/main.cpp
@@ -50,9 +50,15 @@
#include "car.h"
#include "car_adaptor.h"
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWidgets/QApplication>
#include <QtWidgets/QGraphicsView>
#include <QtWidgets/QGraphicsScene>
+#else
+#include <QApplication>
+#include <QGraphicsView>
+#include <QGraphicsScene>
+#endif
#include <QtDBus/QDBusConnection>
int main(int argc, char *argv[])
diff --git a/tests/auto/blackbox/testdata-qt/dbus-interfaces/controller.cpp b/tests/auto/blackbox/testdata-qt/dbus-interfaces/controller.cpp
index eaff5c775..f6680676a 100644
--- a/tests/auto/blackbox/testdata-qt/dbus-interfaces/controller.cpp
+++ b/tests/auto/blackbox/testdata-qt/dbus-interfaces/controller.cpp
@@ -48,7 +48,12 @@
**
****************************************************************************/
+#include <QtGlobal>
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWidgets>
+#else
+#include <QtGui>
+#endif
#include "controller.h"
#include "car_interface.h"
diff --git a/tests/auto/blackbox/testdata-qt/dbus-interfaces/main.cpp b/tests/auto/blackbox/testdata-qt/dbus-interfaces/main.cpp
index fdd9fc590..5ceba5a9f 100644
--- a/tests/auto/blackbox/testdata-qt/dbus-interfaces/main.cpp
+++ b/tests/auto/blackbox/testdata-qt/dbus-interfaces/main.cpp
@@ -48,7 +48,12 @@
**
****************************************************************************/
+#include <QtGlobal>
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWidgets>
+#else
+#include <QtGui>
+#endif
#include <QtDBus>
#include "controller.h"
diff --git a/tests/auto/blackbox/testdata-qt/forced-moc/forced-moc.qbs b/tests/auto/blackbox/testdata-qt/forced-moc/forced-moc.qbs
index 736f40347..aab7ed220 100644
--- a/tests/auto/blackbox/testdata-qt/forced-moc/forced-moc.qbs
+++ b/tests/auto/blackbox/testdata-qt/forced-moc/forced-moc.qbs
@@ -1,5 +1,11 @@
+import qbs.Utilities
+
QtApplication {
condition: {
+ if (Utilities.versionCompare(Qt.core.version, "5.0") < 0) {
+ console.info("using qt4");
+ return false;
+ }
var result = qbs.targetPlatform === qbs.hostPlatform;
if (!result)
console.info("targetPlatform differs from hostPlatform");
diff --git a/tests/auto/blackbox/testdata-qt/included-moc-cpp/included-moc-cpp.qbs b/tests/auto/blackbox/testdata-qt/included-moc-cpp/included-moc-cpp.qbs
index 1ed85ccdd..218d5c150 100644
--- a/tests/auto/blackbox/testdata-qt/included-moc-cpp/included-moc-cpp.qbs
+++ b/tests/auto/blackbox/testdata-qt/included-moc-cpp/included-moc-cpp.qbs
@@ -1,6 +1,14 @@
import qbs
+import qbs.Utilities
QtApplication {
+ condition: {
+ if (Utilities.versionCompare(Qt.core.version, "5.0") < 0) {
+ console.info("using qt4");
+ return false;
+ }
+ return true;
+ }
files: [
"main.cpp",
"myobject.cpp",
diff --git a/tests/auto/blackbox/testdata-qt/plugin-meta-data/plugin-meta-data.qbs b/tests/auto/blackbox/testdata-qt/plugin-meta-data/plugin-meta-data.qbs
index 7fb477575..7e5f98340 100644
--- a/tests/auto/blackbox/testdata-qt/plugin-meta-data/plugin-meta-data.qbs
+++ b/tests/auto/blackbox/testdata-qt/plugin-meta-data/plugin-meta-data.qbs
@@ -1,6 +1,13 @@
+import qbs.Utilities
+
Project {
QtApplication {
condition: {
+ if (Utilities.versionCompare(Qt.core.version, "5.0") < 0) {
+ // qt4 moc can't be used with pluginMetaData
+ console.info("using qt4");
+ return false;
+ }
var result = qbs.targetPlatform === qbs.hostPlatform;
if (!result)
console.info("targetPlatform differs from hostPlatform");
diff --git a/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs b/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs
index c554a7dc2..8e0923e94 100644
--- a/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs
+++ b/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs
@@ -1,4 +1,14 @@
+import qbs.Utilities
+
QtGuiApplication {
+ condition: {
+ // pluginTypes empty for Qt4
+ if (Utilities.versionCompare(Qt.core.version, "5.0") < 0) {
+ console.info("using qt4");
+ return false;
+ }
+ return true;
+ }
Probe {
id: staticProbe
property bool isStaticQt: Qt.gui.isStaticLibrary
diff --git a/tests/auto/blackbox/testdata-qt/qrc/i.qbs b/tests/auto/blackbox/testdata-qt/qrc/i.qbs
index 604652a8e..e98c069b5 100644
--- a/tests/auto/blackbox/testdata-qt/qrc/i.qbs
+++ b/tests/auto/blackbox/testdata-qt/qrc/i.qbs
@@ -1,6 +1,12 @@
+import qbs.Utilities
+
Project {
Product {
condition: {
+ if (Utilities.versionCompare(Qt.core.version, "5.0") < 0) {
+ console.info("using qt4");
+ return false;
+ }
var result = qbs.targetPlatform === qbs.hostPlatform;
if (!result)
console.info("targetPlatform differs from hostPlatform");
diff --git a/tests/auto/blackbox/testdata-qt/quick-compiler/quick-compiler.qbs b/tests/auto/blackbox/testdata-qt/quick-compiler/quick-compiler.qbs
index b141c8672..793d261e9 100644
--- a/tests/auto/blackbox/testdata-qt/quick-compiler/quick-compiler.qbs
+++ b/tests/auto/blackbox/testdata-qt/quick-compiler/quick-compiler.qbs
@@ -1,5 +1,9 @@
CppApplication {
- Depends { name: "Qt.quick" }
+ Depends {
+ name: "Qt.quick"
+ // Must fail when using Qt4
+ versionAtLeast: "5"
+ }
Qt.quick.useCompiler: Qt.quick.compilerAvailable
cpp.cxxLanguageVersion: "c++11"
diff --git a/tests/auto/blackbox/tst_blackboxandroid.cpp b/tests/auto/blackbox/tst_blackboxandroid.cpp
index 291960792..a03c9e318 100644
--- a/tests/auto/blackbox/tst_blackboxandroid.cpp
+++ b/tests/auto/blackbox/tst_blackboxandroid.cpp
@@ -79,7 +79,7 @@ void TestBlackboxAndroid::android()
QFETCH(QString, projectDir);
QFETCH(QStringList, productNames);
QFETCH(QList<QByteArrayList>, expectedFilesLists);
- QFETCH(QStringList, qmlAppCustomProperties);
+ QFETCH(QStringList, customProperties);
QFETCH(bool, enableAapt2);
QFETCH(bool, generateAab);
QFETCH(bool, isIncrementalBuild);
@@ -112,6 +112,8 @@ void TestBlackboxAndroid::android()
const QString buildSubDir = enableAapt2 ? (generateAab ? "aab" : "aapt2") : "aapt";
QDir::setCurrent(testDataDir + "/" + projectDir);
+ if (!isIncrementalBuild)
+ rmDirR(relativeBuildDir(buildSubDir));
static const QStringList configNames { "debug", "release" };
for (const QString &configName : configNames) {
@@ -119,7 +121,7 @@ void TestBlackboxAndroid::android()
const QString configArgument = "config:" + configName;
QbsRunParameters resolveParams("resolve");
resolveParams.buildDirectory = buildSubDir;
- resolveParams.arguments << configArgument << qmlAppCustomProperties;
+ resolveParams.arguments << configArgument << customProperties;
resolveParams.profile = p.name();
QCOMPARE(runQbs(resolveParams), 0);
QbsRunParameters buildParams(QStringList{"--command-echo-mode", "command-line",
@@ -279,7 +281,7 @@ void TestBlackboxAndroid::android_data()
QTest::addColumn<QString>("projectDir");
QTest::addColumn<QStringList>("productNames");
QTest::addColumn<QList<QByteArrayList>>("expectedFilesLists");
- QTest::addColumn<QStringList>("qmlAppCustomProperties");
+ QTest::addColumn<QStringList>("customProperties");
QTest::addColumn<bool>("enableAapt2");
QTest::addColumn<bool>("generateAab");
QTest::addColumn<bool>("isIncrementalBuild");
@@ -351,6 +353,17 @@ void TestBlackboxAndroid::android_data()
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
<< enableAapt2 << generateAab << isIncrementalBuild;
+ const QByteArrayList ndkArchsForQtSave = ndkArchsForQt;
+ ndkArchsForQt = {ndkArchsForQt.first()};
+ QTest::newRow("qt app (single arch)")
+ << "qt-app" << QStringList("qt-app")
+ << (QList<QByteArrayList>() << (QByteArrayList() << qtAppExpectedFiles(generateAab,
+ enableAapt2)))
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ "modules.qbs.architectures:" + archsForQt.first()}
+ << enableAapt2 << generateAab << isIncrementalBuild;
+ ndkArchsForQt = ndkArchsForQtSave;
+
auto teaPotAppExpectedFiles = [&](const QByteArrayList &archs, bool generateAab) {
QByteArrayList expectedFile;
expectedFile << commonFiles(generateAab) + expandArchs(archs, {
diff --git a/tests/auto/blackbox/tst_blackboxqt.cpp b/tests/auto/blackbox/tst_blackboxqt.cpp
index 4fc038923..53fadc490 100644
--- a/tests/auto/blackbox/tst_blackboxqt.cpp
+++ b/tests/auto/blackbox/tst_blackboxqt.cpp
@@ -70,7 +70,9 @@ void TestBlackboxQt::autoQrc()
void TestBlackboxQt::cachedQml()
{
QDir::setCurrent(testDataDir + "/cached-qml");
- QCOMPARE(runQbs(), 0);
+ if ((runQbs() != 0) && m_qbsStderr.contains("Dependency 'Qt.qml' not found for product 'app'"))
+ QSKIP("Qt version too old");
+
QString dataDir = relativeBuildDir() + "/install-root/data";
QVERIFY2(m_qbsStdout.contains("qmlcachegen must work: true")
|| m_qbsStdout.contains("qmlcachegen must work: false"),
@@ -133,6 +135,8 @@ void TestBlackboxQt::forcedMoc()
{
QDir::setCurrent(testDataDir + "/forced-moc");
QCOMPARE(runQbs(QbsRunParameters("resolve")), 0);
+ if (m_qbsStdout.contains("using qt4"))
+ QSKIP("Qt version too old");
if (m_qbsStdout.contains("targetPlatform differs from hostPlatform"))
QSKIP("Cannot run binaries in cross-compiled build");
QCOMPARE(runQbs(QbsRunParameters("run")), 0);
@@ -143,6 +147,8 @@ void TestBlackboxQt::includedMocCpp()
{
QDir::setCurrent(testDataDir + "/included-moc-cpp");
QCOMPARE(runQbs(), 0);
+ if (m_qbsStdout.contains("using qt4"))
+ QSKIP("Qt version too old");
QVERIFY2(!m_qbsStdout.contains("compiling moc_myobject.cpp"), m_qbsStdout.constData());
WAIT_FOR_NEW_TIMESTAMP();
REPLACE_IN_FILE("myobject.cpp", "#include <moc_myobject.cpp", "// #include <moc_myobject.cpp");
@@ -296,6 +302,8 @@ void TestBlackboxQt::pluginMetaData()
{
QDir::setCurrent(testDataDir + "/plugin-meta-data");
QCOMPARE(runQbs(QbsRunParameters("resolve")), 0);
+ if (m_qbsStdout.contains("using qt4"))
+ QSKIP("Qt version too old");
if (m_qbsStdout.contains("targetPlatform differs from hostPlatform"))
QSKIP("Cannot run binaries in cross-compiled build");
@@ -325,7 +333,11 @@ void TestBlackboxQt::pluginSupport()
resolveParams.arguments << "modules.m1.useDummy:true";
resolveParams.expectFailure = true;
}
- QCOMPARE(runQbs(resolveParams) == 0, !invalidPlugin);
+ bool resolveResult = runQbs(resolveParams) == 0;
+ if (m_qbsStdout.contains("using qt4"))
+ QSKIP("Qt version too old");
+ QCOMPARE(resolveResult, !invalidPlugin);
+
if (invalidPlugin) {
QVERIFY2(m_qbsStderr.contains("Plugin 'dummy' of type 'imageformats' was requested, "
"but is not available"), m_qbsStderr.constData());
@@ -404,7 +416,9 @@ void TestBlackboxQt::qmlTypeRegistrar()
rmDirR(relativeBuildDir());
const QStringList args{"modules.Qt.qml.importName:" + importName,
"modules.Qt.qml.typesInstallDir:" + installDir};
- QCOMPARE(runQbs(QbsRunParameters("resolve", args)), 0);
+ if ((runQbs(QbsRunParameters("resolve", args)) != 0) &&
+ m_qbsStderr.contains("Dependency 'Qt.qml' not found for product 'myapp'"))
+ QSKIP("Qt version too old");
const bool hasRegistrar = m_qbsStdout.contains("has registrar");
const bool doesNotHaveRegistrar = m_qbsStdout.contains("does not have registrar");
QVERIFY(hasRegistrar != doesNotHaveRegistrar);
@@ -437,7 +451,9 @@ void TestBlackboxQt::qtKeywords()
void TestBlackboxQt::quickCompiler()
{
QDir::setCurrent(testDataDir + "/quick-compiler");
- QCOMPARE(runQbs(), 0);
+ if ((runQbs() != 0) &&
+ m_qbsStderr.contains("'Qt.quick' has version 4.8.7, but it needs to be at least 5.0.0."))
+ QSKIP("Qt version too old");
const bool hasCompiler = m_qbsStdout.contains("compiler available");
const bool doesNotHaveCompiler = m_qbsStdout.contains("compiler not available");
QVERIFY2(hasCompiler || doesNotHaveCompiler, m_qbsStdout.constData());
@@ -546,6 +562,8 @@ void TestBlackboxQt::track_qrc()
{
QDir::setCurrent(testDataDir + "/qrc");
QCOMPARE(runQbs(QbsRunParameters("resolve")), 0);
+ if (m_qbsStdout.contains("using qt4"))
+ QSKIP("Qt version too old");
if (m_qbsStdout.contains("targetPlatform differs from hostPlatform"))
QSKIP("Cannot run binaries in cross-compiled build");
QCOMPARE(runQbs(QbsRunParameters("run")), 0);