Add tests for android qt 6.4.1, using "wrong" platforms

Since Qt 6.4.1, the Qt devs stopped building android binaries for
all platforms: see https://bugreports.qt.io/browse/QTBUG-108707

> we are building android packages only in one host & use those in other ones:
> android armv7 is build only in windows
> android arm64 is build only in mac
> android x86 and android x86_64 are build only in linux

This adds tests for Qt 6.4.1 on platforms that are not the platforms that
Qt was built for, so that:
* the binaries built on Mac are tested on Linux
* the binaries built on Linux are tested on Windows
* the binaries built on Windows are tested on Mac

There should be 3 more permutations of this pattern, but I prefer to
ignore them to save on CI build times.
This commit is contained in:
Dave Dalcino
2022-12-02 17:08:54 -08:00
parent 2c8b23d649
commit 0cc15b31c6
2 changed files with 71 additions and 2 deletions

View File

@@ -635,6 +635,68 @@ def tool_archive(host: str, tool_name: str, variant: str, date: datetime = datet
r"INFO : Time elapsed: .* second"
),
),
(
"install-qt linux android 6.4.1 android_arm64_v8a".split(),
"linux",
"android",
"6.4.1",
{"std": "android_arm64_v8a"},
{"std": "android_arm64_v8a"},
{"std": "linux_x64/android/qt6_641_arm64_v8a/Updates.xml"},
{
"std": [
MockArchive(
filename_7z="qtbase-MacOS-MacOS_12-Clang-Android-Android_ANY-ARM64.7z",
update_xml_name="qt.qt6.641.android_arm64_v8a",
contents=(
# Qt 6 non-desktop should patch qconfig.pri, qmake script and target_qt.conf
PatchedFile(
filename="mkspecs/qconfig.pri",
unpatched_content="... blah blah blah ...\n"
"QT_EDITION = Not OpenSource\n"
"QT_LICHECK = Not Empty\n"
"... blah blah blah ...\n",
patched_content="... blah blah blah ...\n"
"QT_EDITION = OpenSource\n"
"QT_LICHECK =\n"
"... blah blah blah ...\n",
),
PatchedFile(
filename="bin/target_qt.conf",
unpatched_content="Prefix=/Users/qt/work/install/target\n"
"HostPrefix=../../\n"
"HostData=target\n",
patched_content="Prefix={base_dir}{sep}6.4.1{sep}android_arm64_v8a{sep}target\n"
"HostPrefix=../../gcc_64\n"
"HostData=../android_arm64_v8a\n",
),
PatchedFile(
filename="bin/qmake",
unpatched_content="... blah blah blah ...\n"
"/home/qt/work/install/bin\n"
"/Users/qt/work/install/bin\n"
"... blah blah blah ...\n",
patched_content="... blah blah blah ...\n"
"{base_dir}/6.4.1/gcc_64/bin\n"
"{base_dir}/6.4.1/gcc_64/bin\n"
"... blah blah blah ...\n",
),
),
),
]
},
re.compile(
r"^INFO : aqtinstall\(aqt\) v.* on Python 3.*\n"
r"WARNING : You are installing the android version of Qt, which requires that the desktop version of "
r"Qt is also installed. You can install it with the following command:\n"
r" `aqt install-qt linux desktop 6\.4\.1 gcc_64`\n"
r"INFO : Downloading qtbase...\n"
r"Finished installation of qtbase-MacOS-MacOS_12-Clang-Android-Android_ANY-ARM64\.7z in .*\n"
r"INFO : Patching .*6\.4\.1/android_arm64_v8a/bin/qmake\n"
r"INFO : Finished installation\n"
r"INFO : Time elapsed: .* second"
),
),
(
"install-qt linux android 6.3.0 android_arm64_v8a".split(),
"linux",