aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/auto.pro1
-rw-r--r--tests/auto/auto.qbs1
-rw-r--r--tests/auto/blackbox/blackbox-android.pro18
-rw-r--r--tests/auto/blackbox/blackbox-android.qbs22
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/multiple-apks-per-project.qbs (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/multiple-apks-per-project.qbs)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/product1.qbs)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/AndroidManifest.xml (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/AndroidManifest.xml)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/java/io/qt/dummy/Dummy.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/java/io/qt/dummy/Dummy.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/jni/lib1.cpp (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/jni/lib1.cpp)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/jni/lib2.cpp (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/jni/lib2.cpp)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/res/values/strings.xml (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/res/values/strings.xml)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/product2.qbs)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/AndroidManifest.xml (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/AndroidManifest.xml)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/java/io/qt/dummy/Dummy.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/java/io/qt/dummy/Dummy.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/jni/lib1.cpp (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/jni/lib1.cpp)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/jni/lib2.cpp (renamed from tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/jni/lib2.cpp)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/io/qbs/lib3/lib3.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/io/qbs/lib3/lib3.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib4.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib4.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib5.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib5.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib6.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib6.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib7.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib7.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib8.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib8.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/multiple-libs-per-apk.qbs)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/AndroidManifest.xml (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/AndroidManifest.xml)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/java/io/qt/dummy/Dummy.java (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/java/io/qt/dummy/Dummy.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/jni/lib1.cpp (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/jni/lib1.cpp)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/jni/lib2.cpp (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/jni/lib2.cpp)0
-rw-r--r--tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/res/values/strings.xml (renamed from tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/res/values/strings.xml)0
-rw-r--r--tests/auto/blackbox/testdata-android/no-native/no-native.qbs (renamed from tests/auto/blackbox/testdata-java/android/no-native/no-native.qbs)0
-rw-r--r--tests/auto/blackbox/testdata-android/teapot/teapot.qbs (renamed from tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs)0
-rw-r--r--tests/auto/blackbox/tst_blackboxandroid.cpp153
-rw-r--r--tests/auto/blackbox/tst_blackboxandroid.h52
-rw-r--r--tests/auto/blackbox/tst_blackboxjava.cpp103
-rw-r--r--tests/auto/blackbox/tst_blackboxjava.h5
34 files changed, 247 insertions, 108 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index c46f0c260..f6cc4b26f 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -10,6 +10,7 @@ qbs_enable_unit_tests {
SUBDIRS += \
cmdlineparser \
blackbox/blackbox.pro \
+ blackbox/blackbox-android.pro \
blackbox/blackbox-apple.pro \
blackbox/blackbox-clangdb.pro \
blackbox/blackbox-java.pro \
diff --git a/tests/auto/auto.qbs b/tests/auto/auto.qbs
index 1840e07dd..92ab5279f 100644
--- a/tests/auto/auto.qbs
+++ b/tests/auto/auto.qbs
@@ -5,6 +5,7 @@ Project {
references: [
"api/api.qbs",
"blackbox/blackbox.qbs",
+ "blackbox/blackbox-android.qbs",
"blackbox/blackbox-apple.qbs",
"blackbox/blackbox-clangdb.qbs",
"blackbox/blackbox-java.qbs",
diff --git a/tests/auto/blackbox/blackbox-android.pro b/tests/auto/blackbox/blackbox-android.pro
new file mode 100644
index 000000000..d27550301
--- /dev/null
+++ b/tests/auto/blackbox/blackbox-android.pro
@@ -0,0 +1,18 @@
+TARGET = tst_blackbox-android
+
+HEADERS = tst_blackboxandroid.h tst_blackboxbase.h
+SOURCES = tst_blackboxandroid.cpp tst_blackboxbase.cpp
+OBJECTS_DIR = android
+MOC_DIR = $${OBJECTS_DIR}-moc
+
+include(../auto.pri)
+
+DATA_DIRS = testdata-android ../find
+
+for(data_dir, DATA_DIRS) {
+ files = $$files($$PWD/$$data_dir/*, true)
+ win32:files ~= s|\\\\|/|g
+ for(file, files):!exists($$file/*):FILES += $$file
+}
+
+OTHER_FILES += $$FILES
diff --git a/tests/auto/blackbox/blackbox-android.qbs b/tests/auto/blackbox/blackbox-android.qbs
new file mode 100644
index 000000000..4579ec862
--- /dev/null
+++ b/tests/auto/blackbox/blackbox-android.qbs
@@ -0,0 +1,22 @@
+import qbs
+
+QbsAutotest {
+ testName: "blackbox-android"
+ Depends { name: "qbs_app" }
+ Depends { name: "qbs-setup-toolchains" }
+ Group {
+ name: "testdata"
+ prefix: "testdata-android/"
+ files: ["**/*"]
+ fileTags: []
+ }
+ files: [
+ "../shared.h",
+ "tst_blackboxbase.cpp",
+ "tst_blackboxbase.h",
+ "tst_blackboxandroid.cpp",
+ "tst_blackboxandroid.h",
+ ]
+ // TODO: Use Utilities.cStringQuote
+ cpp.defines: base.concat(['SRCDIR="' + path + '"'])
+}
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/multiple-apks-per-project.qbs b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/multiple-apks-per-project.qbs
index 3d03c309a..3d03c309a 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/multiple-apks-per-project.qbs
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/multiple-apks-per-project.qbs
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/product1.qbs b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs
index 0ddd7526c..0ddd7526c 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/product1.qbs
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/AndroidManifest.xml b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/AndroidManifest.xml
index 1468b52f6..1468b52f6 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/AndroidManifest.xml
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/AndroidManifest.xml
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/java/io/qt/dummy/Dummy.java b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/java/io/qt/dummy/Dummy.java
index 149af081f..149af081f 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/java/io/qt/dummy/Dummy.java
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/java/io/qt/dummy/Dummy.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/jni/lib1.cpp b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/jni/lib1.cpp
index 474897da9..474897da9 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/jni/lib1.cpp
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/jni/lib1.cpp
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/jni/lib2.cpp b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/jni/lib2.cpp
index de580ab09..de580ab09 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/jni/lib2.cpp
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/jni/lib2.cpp
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/res/values/strings.xml b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/res/values/strings.xml
index 949748954..949748954 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product1/src/main/res/values/strings.xml
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/src/main/res/values/strings.xml
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/product2.qbs b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs
index f0418a425..f0418a425 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/product2.qbs
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/AndroidManifest.xml b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/AndroidManifest.xml
index 4e5cdf977..4e5cdf977 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/AndroidManifest.xml
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/AndroidManifest.xml
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/java/io/qt/dummy/Dummy.java b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/java/io/qt/dummy/Dummy.java
index 149af081f..149af081f 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/java/io/qt/dummy/Dummy.java
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/java/io/qt/dummy/Dummy.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/jni/lib1.cpp b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/jni/lib1.cpp
index 474897da9..474897da9 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/jni/lib1.cpp
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/jni/lib1.cpp
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/jni/lib2.cpp b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/jni/lib2.cpp
index de580ab09..de580ab09 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-apks-per-project/product2/src/main/jni/lib2.cpp
+++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/src/main/jni/lib2.cpp
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/io/qbs/lib3/lib3.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/io/qbs/lib3/lib3.java
index 09ce152c3..09ce152c3 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/io/qbs/lib3/lib3.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/io/qbs/lib3/lib3.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib4.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib4.java
index 7b1de6c8b..7b1de6c8b 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib4.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib4.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib5.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib5.java
index 92ab6dee2..92ab6dee2 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib5.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib5.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib6.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib6.java
index c524967ee..c524967ee 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib6.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib6.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib7.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib7.java
index 110bab22c..110bab22c 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib7.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib7.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib8.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib8.java
index e0cb448f0..e0cb448f0 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/lib8.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/lib8.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/multiple-libs-per-apk.qbs b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs
index d76a41232..d76a41232 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/multiple-libs-per-apk.qbs
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/AndroidManifest.xml b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/AndroidManifest.xml
index 639d3a647..639d3a647 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/AndroidManifest.xml
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/AndroidManifest.xml
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/java/io/qt/dummy/Dummy.java b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/java/io/qt/dummy/Dummy.java
index e98fb2166..e98fb2166 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/java/io/qt/dummy/Dummy.java
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/java/io/qt/dummy/Dummy.java
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/jni/lib1.cpp b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/jni/lib1.cpp
index 474897da9..474897da9 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/jni/lib1.cpp
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/jni/lib1.cpp
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/jni/lib2.cpp b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/jni/lib2.cpp
index de580ab09..de580ab09 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/jni/lib2.cpp
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/jni/lib2.cpp
diff --git a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/res/values/strings.xml b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/res/values/strings.xml
index 297dfa7fa..297dfa7fa 100644
--- a/tests/auto/blackbox/testdata-java/android/multiple-libs-per-apk/src/main/res/values/strings.xml
+++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/src/main/res/values/strings.xml
diff --git a/tests/auto/blackbox/testdata-java/android/no-native/no-native.qbs b/tests/auto/blackbox/testdata-android/no-native/no-native.qbs
index 2909adc0c..2909adc0c 100644
--- a/tests/auto/blackbox/testdata-java/android/no-native/no-native.qbs
+++ b/tests/auto/blackbox/testdata-android/no-native/no-native.qbs
diff --git a/tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs b/tests/auto/blackbox/testdata-android/teapot/teapot.qbs
index 47952d3d3..47952d3d3 100644
--- a/tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs
+++ b/tests/auto/blackbox/testdata-android/teapot/teapot.qbs
diff --git a/tests/auto/blackbox/tst_blackboxandroid.cpp b/tests/auto/blackbox/tst_blackboxandroid.cpp
new file mode 100644
index 000000000..b8436764b
--- /dev/null
+++ b/tests/auto/blackbox/tst_blackboxandroid.cpp
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "tst_blackboxandroid.h"
+
+#include "../shared.h"
+#include <tools/profile.h>
+
+#include <QtCore/qjsondocument.h>
+#include <QtCore/qtemporarydir.h>
+
+using qbs::Profile;
+
+QMap<QString, QString> TestBlackboxAndroid::findAndroid(int *status, const QString &profile)
+{
+ QTemporaryDir temp;
+ QDir::setCurrent(testDataDir + "/find");
+ QbsRunParameters params = QStringList({"-f", "find-android.qbs", "qbs.architecture:x86"});
+ params.profile = profile;
+ params.buildDirectory = temp.path();
+ const int res = runQbs(params);
+ if (status)
+ *status = res;
+ QFile file(temp.path() + "/" + relativeProductBuildDir("find-android")
+ + "/android.json");
+ if (!file.open(QIODevice::ReadOnly))
+ return QMap<QString, QString> { };
+ const auto tools = QJsonDocument::fromJson(file.readAll()).toVariant().toMap();
+ return QMap<QString, QString> {
+ {"sdk", QDir::fromNativeSeparators(tools["sdk"].toString())},
+ {"sdk-build-tools-dx", QDir::fromNativeSeparators(tools["sdk-build-tools-dx"].toString())},
+ {"ndk", QDir::fromNativeSeparators(tools["ndk"].toString())},
+ {"ndk-samples", QDir::fromNativeSeparators(tools["ndk-samples"].toString())},
+ };
+}
+
+TestBlackboxAndroid::TestBlackboxAndroid()
+ : TestBlackboxBase(SRCDIR "/testdata-android", "blackbox-android")
+{
+}
+
+void TestBlackboxAndroid::validateTestProfile()
+{
+ const SettingsPtr s = settings();
+ Profile p("qbs_autotests-android", s.get());
+ if (!p.exists())
+ QSKIP("No Android test profile");
+}
+
+void TestBlackboxAndroid::android()
+{
+ QFETCH(QString, projectDir);
+ QFETCH(QStringList, productNames);
+ QFETCH(QList<int>, apkFileCounts);
+
+ const SettingsPtr s = settings();
+ Profile p("qbs_autotests-android", s.get());
+ int status;
+ const auto androidPaths = findAndroid(&status, p.name());
+ QCOMPARE(status, 0);
+
+ const auto ndkPath = androidPaths["ndk"];
+ const auto ndkSamplesPath = androidPaths["ndk-samples"];
+ static const QStringList ndkSamplesDirs = QStringList() << "teapot" << "no-native";
+ if (!ndkPath.isEmpty() && !QFileInfo(ndkSamplesPath).isDir()
+ && ndkSamplesDirs.contains(projectDir))
+ QSKIP("NDK samples directory not present");
+
+ QDir::setCurrent(testDataDir + "/" + projectDir);
+ QbsRunParameters params(QStringList { "--command-echo-mode", "command-line",
+ "modules.Android.ndk.platform:android-21" });
+ params.profile = p.name();
+ QCOMPARE(runQbs(params), 0);
+ for (int i = 0; i < productNames.count(); ++i) {
+ const QString productName = productNames.at(i);
+ QVERIFY(m_qbsStdout.contains(productName.toLocal8Bit() + ".apk"));
+ const QString apkFilePath = relativeProductBuildDir(productName)
+ + '/' + productName + ".apk";
+ QVERIFY2(regularFileExists(apkFilePath), qPrintable(apkFilePath));
+ const QString jarFilePath = findExecutable(QStringList("jar"));
+ QVERIFY(!jarFilePath.isEmpty());
+ QProcess jar;
+ jar.start(jarFilePath, QStringList() << "-tf" << apkFilePath);
+ QVERIFY2(jar.waitForStarted(), qPrintable(jar.errorString()));
+ QVERIFY2(jar.waitForFinished(), qPrintable(jar.errorString()));
+ QVERIFY2(jar.exitCode() == 0, qPrintable(jar.readAllStandardError().constData()));
+ QCOMPARE(jar.readAllStandardOutput().trimmed().split('\n').count(), apkFileCounts.at(i));
+ }
+
+ if (projectDir == "multiple-libs-per-apk") {
+ const auto dxPath = androidPaths["sdk-build-tools-dx"];
+ QVERIFY(!dxPath.isEmpty());
+ const auto lines = m_qbsStdout.split('\n');
+ const auto it = std::find_if(lines.cbegin(), lines.cend(), [&](const QByteArray &line) {
+ return !line.isEmpty() && line.startsWith(dxPath.toUtf8());
+ });
+ QVERIFY2(it != lines.cend(), qPrintable(m_qbsStdout.constData()));
+ const auto line = *it;
+ QVERIFY2(line.contains("lib3.jar"), qPrintable(line.constData()));
+ QVERIFY2(!line.contains("lib4.jar"), qPrintable(line.constData()));
+ QVERIFY2(line.contains("lib5.jar"), qPrintable(line.constData()));
+ QVERIFY2(line.contains("lib6.jar"), qPrintable(line.constData()));
+ QVERIFY2(!line.contains("lib7.jar"), qPrintable(line.constData()));
+ QVERIFY2(line.contains("lib8.jar"), qPrintable(line.constData()));
+ }
+}
+
+void TestBlackboxAndroid::android_data()
+{
+ const SettingsPtr s = settings();
+ const Profile p("qbs_autotests-android", s.get());
+ const int archCount = p.value(QLatin1String("qbs.architectures")).toStringList().count();
+
+ QTest::addColumn<QString>("projectDir");
+ QTest::addColumn<QStringList>("productNames");
+ QTest::addColumn<QList<int>>("apkFileCounts");
+ QTest::newRow("teapot") << "teapot" << QStringList("com.sample.teapot")
+ << (QList<int>() << (13 + 3*archCount));
+ QTest::newRow("no native") << "no-native"
+ << QStringList("com.example.android.basicmediadecoder") << (QList<int>() << 22);
+ QTest::newRow("multiple libs") << "multiple-libs-per-apk" << QStringList("twolibs")
+ << (QList<int>() << (6 + 4 * archCount));
+ QTest::newRow("multiple apks") << "multiple-apks-per-project"
+ << (QStringList() << "twolibs1" << "twolibs2")
+ << QList<int>({6 + archCount * 3 + 2, 5 + archCount * 4});
+}
+
+QTEST_MAIN(TestBlackboxAndroid)
diff --git a/tests/auto/blackbox/tst_blackboxandroid.h b/tests/auto/blackbox/tst_blackboxandroid.h
new file mode 100644
index 000000000..3b095ee00
--- /dev/null
+++ b/tests/auto/blackbox/tst_blackboxandroid.h
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TST_BLACKBOX_H
+#define TST_BLACKBOX_H
+
+#include "tst_blackboxbase.h"
+
+class TestBlackboxAndroid : public TestBlackboxBase
+{
+ Q_OBJECT
+
+public:
+ TestBlackboxAndroid();
+
+protected:
+ void validateTestProfile() override;
+
+private slots:
+ void android();
+ void android_data();
+
+private:
+ QMap<QString, QString> findAndroid(int *status, const QString &profile);
+};
+
+#endif // TST_BLACKBOX_H
diff --git a/tests/auto/blackbox/tst_blackboxjava.cpp b/tests/auto/blackbox/tst_blackboxjava.cpp
index a10b736c4..f3b999dc6 100644
--- a/tests/auto/blackbox/tst_blackboxjava.cpp
+++ b/tests/auto/blackbox/tst_blackboxjava.cpp
@@ -38,113 +38,10 @@
using qbs::Internal::HostOsInfo;
using qbs::Profile;
-QMap<QString, QString> TestBlackboxJava::findAndroid(int *status, const QString &profile)
-{
- QTemporaryDir temp;
- QDir::setCurrent(testDataDir + "/find");
- QbsRunParameters params = QStringList({"-f", "find-android.qbs", "qbs.architecture:x86"});
- params.profile = profile;
- params.buildDirectory = temp.path();
- const int res = runQbs(params);
- if (status)
- *status = res;
- QFile file(temp.path() + "/" + relativeProductBuildDir("find-android")
- + "/android.json");
- if (!file.open(QIODevice::ReadOnly))
- return QMap<QString, QString> { };
- const auto tools = QJsonDocument::fromJson(file.readAll()).toVariant().toMap();
- return QMap<QString, QString> {
- {"sdk", QDir::fromNativeSeparators(tools["sdk"].toString())},
- {"sdk-build-tools-dx", QDir::fromNativeSeparators(tools["sdk-build-tools-dx"].toString())},
- {"ndk", QDir::fromNativeSeparators(tools["ndk"].toString())},
- {"ndk-samples", QDir::fromNativeSeparators(tools["ndk-samples"].toString())},
- };
-}
-
TestBlackboxJava::TestBlackboxJava() : TestBlackboxBase (SRCDIR "/testdata-java", "blackbox-java")
{
}
-void TestBlackboxJava::android()
-{
- QFETCH(QString, projectDir);
- QFETCH(QStringList, productNames);
- QFETCH(QList<int>, apkFileCounts);
-
- const SettingsPtr s = settings();
- Profile p("qbs_autotests-android", s.get());
- if (!p.exists())
- QSKIP("No Android test profile");
- int status;
- const auto androidPaths = findAndroid(&status, p.name());
- QCOMPARE(status, 0);
-
- const auto ndkPath = androidPaths["ndk"];
- const auto ndkSamplesPath = androidPaths["ndk-samples"];
- static const QStringList ndkSamplesDirs = QStringList() << "teapot" << "no-native";
- if (!ndkPath.isEmpty() && !QFileInfo(ndkSamplesPath).isDir()
- && ndkSamplesDirs.contains(projectDir))
- QSKIP("NDK samples directory not present");
-
- QDir::setCurrent(testDataDir + "/android/" + projectDir);
- QbsRunParameters params(QStringList { "--command-echo-mode", "command-line",
- "modules.Android.ndk.platform:android-21" });
- params.profile = p.name();
- QCOMPARE(runQbs(params), 0);
- for (int i = 0; i < productNames.count(); ++i) {
- const QString productName = productNames.at(i);
- QVERIFY(m_qbsStdout.contains(productName.toLocal8Bit() + ".apk"));
- const QString apkFilePath = relativeProductBuildDir(productName)
- + '/' + productName + ".apk";
- QVERIFY2(regularFileExists(apkFilePath), qPrintable(apkFilePath));
- const QString jarFilePath = findExecutable(QStringList("jar"));
- QVERIFY(!jarFilePath.isEmpty());
- QProcess jar;
- jar.start(jarFilePath, QStringList() << "-tf" << apkFilePath);
- QVERIFY2(jar.waitForStarted(), qPrintable(jar.errorString()));
- QVERIFY2(jar.waitForFinished(), qPrintable(jar.errorString()));
- QVERIFY2(jar.exitCode() == 0, qPrintable(jar.readAllStandardError().constData()));
- QCOMPARE(jar.readAllStandardOutput().trimmed().split('\n').count(), apkFileCounts.at(i));
- }
-
- if (projectDir == "multiple-libs-per-apk") {
- const auto dxPath = androidPaths["sdk-build-tools-dx"];
- QVERIFY(!dxPath.isEmpty());
- const auto lines = m_qbsStdout.split('\n');
- const auto it = std::find_if(lines.cbegin(), lines.cend(), [&](const QByteArray &line) {
- return !line.isEmpty() && line.startsWith(dxPath.toUtf8());
- });
- QVERIFY2(it != lines.cend(), qPrintable(m_qbsStdout.constData()));
- const auto line = *it;
- QVERIFY2(line.contains("lib3.jar"), qPrintable(line.constData()));
- QVERIFY2(!line.contains("lib4.jar"), qPrintable(line.constData()));
- QVERIFY2(line.contains("lib5.jar"), qPrintable(line.constData()));
- QVERIFY2(line.contains("lib6.jar"), qPrintable(line.constData()));
- QVERIFY2(!line.contains("lib7.jar"), qPrintable(line.constData()));
- QVERIFY2(line.contains("lib8.jar"), qPrintable(line.constData()));
- }
-}
-
-void TestBlackboxJava::android_data()
-{
- const SettingsPtr s = settings();
- const Profile p("qbs_autotests-android", s.get());
- const int archCount = p.value(QLatin1String("qbs.architectures")).toStringList().count();
-
- QTest::addColumn<QString>("projectDir");
- QTest::addColumn<QStringList>("productNames");
- QTest::addColumn<QList<int>>("apkFileCounts");
- QTest::newRow("teapot") << "teapot" << QStringList("com.sample.teapot")
- << (QList<int>() << (13 + 3*archCount));
- QTest::newRow("no native") << "no-native"
- << QStringList("com.example.android.basicmediadecoder") << (QList<int>() << 22);
- QTest::newRow("multiple libs") << "multiple-libs-per-apk" << QStringList("twolibs")
- << (QList<int>() << (6 + 4 * archCount));
- QTest::newRow("multiple apks") << "multiple-apks-per-project"
- << (QStringList() << "twolibs1" << "twolibs2")
- << QList<int>({6 + archCount * 3 + 2, 5 + archCount * 4});
-}
-
static QProcessEnvironment processEnvironmentWithCurrentDirectoryInLibraryPath()
{
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
diff --git a/tests/auto/blackbox/tst_blackboxjava.h b/tests/auto/blackbox/tst_blackboxjava.h
index f85259f46..68d8a7f80 100644
--- a/tests/auto/blackbox/tst_blackboxjava.h
+++ b/tests/auto/blackbox/tst_blackboxjava.h
@@ -39,15 +39,10 @@ public:
TestBlackboxJava();
private slots:
- void android();
- void android_data();
void java();
void javaDependencyTracking();
void javaDependencyTracking_data();
void javaDependencyTrackingInnerClass();
-
-private:
- QMap<QString, QString> findAndroid(int *status, const QString &profile);
};
#endif // TST_BLACKBOX_H