aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaphael Cotty <raphael.cotty@gmail.com>2023-05-17 15:18:07 +0200
committerRaphaƫl Cotty <raphael.cotty@gmail.com>2023-05-19 12:50:56 +0000
commitdfd1c59f14541558e2684a836725d322b73fff4e (patch)
tree02b2d26494a0aa149b657e7978675130b019a533
parent6d9cc029235e7fb686923f8bdc75c94ad2d15b55 (diff)
Add docker image focal-android-650 and workaround armv7 package
Change-Id: I2a0be7bf2102f738be3fd6b184d21982b359f3b8 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
-rw-r--r--.github/workflows/main.yml6
-rw-r--r--docker-compose.yml11
-rw-r--r--docker/focal/test-android.Dockerfile8
-rwxr-xr-xscripts/install-qt.sh3
-rw-r--r--tests/auto/blackbox/tst_blackboxandroid.cpp49
5 files changed, 66 insertions, 11 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 8e466d909..cd48ac1db 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -386,6 +386,12 @@ jobs:
script: './scripts/test-qt-for-android.sh',
}
- {
+ name: 'Run Android tests (Qt 6.5.0)',
+ image: 'focal-android-650',
+ profile: '',
+ script: './scripts/test-qt-for-android.sh',
+ }
+ - {
name: 'Run Android tests (ndk r19c)',
image: 'focal-android-ndk-r19c',
profile: '',
diff --git a/docker-compose.yml b/docker-compose.yml
index bd1284198..8af6e5a17 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -131,6 +131,17 @@ services:
QT_VERSION: 6.4.2
ANDROID_NDK_VERSION: 23.0.7599858
+ focal-android-650:
+ << : *linux
+ hostname: focal-android
+ image: ${DOCKER_USER:-qbsbuild}/qbsdev:focal-android-6.5.0-0
+ build:
+ dockerfile: docker/focal/test-android.Dockerfile
+ context: .
+ args:
+ QT_VERSION: 6.5.0
+ ANDROID_NDK_VERSION: 25.1.8937393
+
focal-android-ndk-r19c:
<< : *linux
hostname: focal-android
diff --git a/docker/focal/test-android.Dockerfile b/docker/focal/test-android.Dockerfile
index 31f4eb773..5f479e4fc 100644
--- a/docker/focal/test-android.Dockerfile
+++ b/docker/focal/test-android.Dockerfile
@@ -37,10 +37,18 @@ RUN apt-get update -qq && \
curl \
libasan5 \
libglib2.0-0 \
+ locales \
openjdk-8-jdk-headless \
p7zip-full \
unzip
+# Set the locale
+RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
+ locale-gen
+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US:en
+ENV LC_ALL en_US.UTF-8
+
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
RUN echo "export JAVA_HOME=${JAVA_HOME}" > /etc/profile.d/android.sh && \
echo "export PATH=${JAVA_HOME}/bin:\${PATH}" >> /etc/profile.d/android.sh
diff --git a/scripts/install-qt.sh b/scripts/install-qt.sh
index 0931693e5..5799fee02 100755
--- a/scripts/install-qt.sh
+++ b/scripts/install-qt.sh
@@ -357,10 +357,11 @@ for COMPONENT in ${COMPONENTS}; do
if [ "${TARGET_PLATFORM}" == "android" ] && [ ! "${VERSION}" \< "6.0.0" ]; then
CONF_FILE="${UNPACK_DIR}/${VERSION}/${SUBDIR}/bin/target_qt.conf"
ANDROID_QMAKE_FILE="${UNPACK_DIR}/${VERSION}/${SUBDIR}/bin/qmake"
- if [[ "${VERSION}" == "6.4.2" ]] && [[ "${TOOLCHAIN}" == "android_armv7" ]]; then
+ if [ "${TOOLCHAIN}" == "android_armv7" ] && [ ! "${VERSION}" \< "6.4.2" ]; then
sed -i "s/\r//" "${CONF_FILE}"
sed -i "s|HostLibraryExecutables=.\/bin|HostLibraryExecutables=.\/libexec|g" "${CONF_FILE}"
chmod +x "${ANDROID_QMAKE_FILE}"
+ sed -i "s|\\\|\/|g" "${ANDROID_QMAKE_FILE}"
fi
sed -i "s|target|../$TOOLCHAIN|g" "${CONF_FILE}"
sed -i "/HostPrefix/ s|$|gcc_64|g" "${CONF_FILE}"
diff --git a/tests/auto/blackbox/tst_blackboxandroid.cpp b/tests/auto/blackbox/tst_blackboxandroid.cpp
index 06027a100..6148a31b1 100644
--- a/tests/auto/blackbox/tst_blackboxandroid.cpp
+++ b/tests/auto/blackbox/tst_blackboxandroid.cpp
@@ -309,7 +309,6 @@ void TestBlackboxAndroid::android_data()
return QString("modules.Android.sdk.dexCompilerName:") + (enableD8 ? "d8" : "dx");
};
bool enableD8 = true;
-
auto qtAppExpectedFiles = [&](bool generateAab, bool enableAapt2, bool codeSign = true,
QString keyAlias="androiddebugkey") {
QByteArrayList expectedFile;
@@ -357,6 +356,11 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/libplugins_imageformats_qtiff_${ARCH}.so",
"lib/${ARCH}/libplugins_imageformats_qwbmp_${ARCH}.so",
"lib/${ARCH}/libplugins_imageformats_qwebp_${ARCH}.so"}, generateAab);
+ if (version >= qbs::Version(6, 5))
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libQt6Svg_${ARCH}.so",
+ "lib/${ARCH}/libplugins_iconengines_qsvgicon_${ARCH}.so",
+ "lib/${ARCH}/libplugins_imageformats_qsvg_${ARCH}.so"}, generateAab);
if (!enableAapt2 && version < qbs::Version(6, 0))
expectedFile << "res/layout/splash.xml";
return expectedFile;
@@ -613,13 +617,25 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/libplugins_imageformats_qtiff_${ARCH}.so",
"lib/${ARCH}/libplugins_imageformats_qwbmp_${ARCH}.so",
"lib/${ARCH}/libplugins_imageformats_qwebp_${ARCH}.so"}, generateAab);
- if (version >= qbs::Version(6, 0))
+ if (version >= qbs::Version(6, 5))
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libQt6Svg_${ARCH}.so",
+ "lib/${ARCH}/libplugins_iconengines_qsvgicon_${ARCH}.so",
+ "lib/${ARCH}/libplugins_imageformats_qsvg_${ARCH}.so"}, generateAab);
+ if (version >= qbs::Version(6, 0)) {
expectedFile << expandArchs(ndkArchsForQt, {
"lib/${ARCH}/libQt6OpenGL_${ARCH}.so",
"lib/${ARCH}/libqml_QtQml_Models_modelsplugin_${ARCH}.so",
"lib/${ARCH}/libqml_QtQml_WorkerScript_workerscriptplugin_${ARCH}.so",
- "lib/${ARCH}/libqml_QtQml_qmlplugin_${ARCH}.so",
"lib/${ARCH}/libqml_QtQuick_qtquick2plugin_${ARCH}.so"}, generateAab);
+ if (version >= qbs::Version(6, 5))
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libqml_QtQml_Base_qmlplugin_${ARCH}.so",
+ "lib/${ARCH}/libqml_QtQml_qmlmetaplugin_${ARCH}.so"}, generateAab);
+ else
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libqml_QtQml_qmlplugin_${ARCH}.so"}, generateAab);
+ }
if (version >= qbs::Version(6, 2))
expectedFile << expandArchs(ndkArchsForQt, {
"lib/${ARCH}/libplugins_networkinformation_qandroidnetworkinformation_${ARCH}.so",
@@ -627,6 +643,7 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/libplugins_tls_qopensslbackend_${ARCH}.so",
"lib/${ARCH}/libqml_QtQuick_Window_quickwindowplugin_${ARCH}.so",
}, generateAab);
+
if (version >= qbs::Version(6, 0) && version < qbs::Version(6, 3)) {
expectedFile << expandArchs(ndkArchsForQt, {
"lib/${ARCH}/libQt6QuickControls2Impl_${ARCH}.so",
@@ -669,8 +686,8 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/libqml_QtQuick_Dialogs_qtquickdialogsplugin_${ARCH}.so",
"lib/${ARCH}/libqml_QtQuick_Dialogs_quickimpl_qtquickdialogs2quickimplplugin_${ARCH}.so"},
generateAab);
- else
- expectedFile << expandArchs(ndkArchsForQt, {
+ else
+ expectedFile << expandArchs(ndkArchsForQt, {
"lib/${ARCH}/libqml_QtQuick_Window_quickwindow_${ARCH}.so",
"lib/${ARCH}/libqml_QtQuick_tooling_quicktooling_${ARCH}.so"}, generateAab);
}
@@ -774,13 +791,25 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/libplugins_imageformats_qtiff_${ARCH}.so",
"lib/${ARCH}/libplugins_imageformats_qwbmp_${ARCH}.so",
"lib/${ARCH}/libplugins_imageformats_qwebp_${ARCH}.so"}, generateAab);
- if (version >= qbs::Version(6, 0))
+ if (version >= qbs::Version(6, 5))
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libQt6Svg_${ARCH}.so",
+ "lib/${ARCH}/libplugins_iconengines_qsvgicon_${ARCH}.so",
+ "lib/${ARCH}/libplugins_imageformats_qsvg_${ARCH}.so"}, generateAab);
+ if (version >= qbs::Version(6, 0)) {
expectedFile << expandArchs(ndkArchsForQt, {
"lib/${ARCH}/libQt6OpenGL_${ARCH}.so",
"lib/${ARCH}/libqml_QtQml_Models_modelsplugin_${ARCH}.so",
"lib/${ARCH}/libqml_QtQml_WorkerScript_workerscriptplugin_${ARCH}.so",
- "lib/${ARCH}/libqml_QtQml_qmlplugin_${ARCH}.so",
"lib/${ARCH}/libqml_QtQuick_qtquick2plugin_${ARCH}.so"}, generateAab);
+ if (version >= qbs::Version(6, 5))
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libqml_QtQml_Base_qmlplugin_${ARCH}.so",
+ "lib/${ARCH}/libqml_QtQml_qmlmetaplugin_${ARCH}.so"}, generateAab);
+ else
+ expectedFile << expandArchs(ndkArchsForQt, {
+ "lib/${ARCH}/libqml_QtQml_qmlplugin_${ARCH}.so"}, generateAab);
+ }
if (version >= qbs::Version(6, 2))
expectedFile << expandArchs(ndkArchsForQt, {
"lib/${ARCH}/libplugins_networkinformation_qandroidnetworkinformation_${ARCH}.so",
@@ -967,14 +996,14 @@ void TestBlackboxAndroid::android_data()
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
<< enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
- QTest::newRow("aidl") << "aidl" << QStringList("io.qbs.aidltest")
+ QTest::newRow("aidl aapt2") << "aidl" << QStringList("io.qbs.aidltest")
<< (QList<QByteArrayList>() << (QByteArrayList()
<< commonFiles(generateAab)
<< "resources.arsc"))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
<< enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
- QTest::newRow("aidl") << "aidl" << QStringList("io.qbs.aidltest")
+ QTest::newRow("aidl aab") << "aidl" << QStringList("io.qbs.aidltest")
<< (QList<QByteArrayList>() << (QByteArrayList()
<< commonFiles(generateAab)
<< "base/resources.pb"))
@@ -1031,6 +1060,7 @@ void TestBlackboxAndroid::android_data()
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab),
dexCompilerVersion(enableD8)}
<< enableAapt2 << generateAab << isIncrementalBuild << enableD8;
+
enableAapt2 = false;
generateAab = false;
auto expectedFiles1 = [&](bool generateAab) {
@@ -1054,7 +1084,6 @@ void TestBlackboxAndroid::android_data()
cxxLibPath("libstlport_shared.so", false)}, generateAab);
return expectedFile;
};
-
QTest::newRow("multiple apks")
<< "multiple-apks-per-project"
<< (QStringList() << "twolibs1" << "twolibs2")