diff options
author | Raphael Cotty <raphael.cotty@gmail.com> | 2023-05-17 15:18:07 +0200 |
---|---|---|
committer | Raphaƫl Cotty <raphael.cotty@gmail.com> | 2023-05-19 12:50:56 +0000 |
commit | dfd1c59f14541558e2684a836725d322b73fff4e (patch) | |
tree | 02b2d26494a0aa149b657e7978675130b019a533 | |
parent | 6d9cc029235e7fb686923f8bdc75c94ad2d15b55 (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.yml | 6 | ||||
-rw-r--r-- | docker-compose.yml | 11 | ||||
-rw-r--r-- | docker/focal/test-android.Dockerfile | 8 | ||||
-rwxr-xr-x | scripts/install-qt.sh | 3 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackboxandroid.cpp | 49 |
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") |