1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QJsonDocument>
#include <QJsonObject>
#include <QFile>
#include <QTest>
#include <QLibraryInfo>
#include <QDir>
class tst_android_deployment_settings : public QObject
{
Q_OBJECT
private slots:
void initTestCase_data();
void init();
void DeploymentSettings_data();
void DeploymentSettings();
void QtPaths_data();
void QtPaths();
private:
static QString makePath(QLibraryInfo::LibraryLocation loc);
QJsonDocument jsonDoc;
};
QString tst_android_deployment_settings::makePath(QLibraryInfo::LibraryLocation loc)
{
const auto prefix = QLibraryInfo::path(QLibraryInfo::PrefixPath);
auto path = QLibraryInfo::path(loc);
path.remove(0, prefix.size() + 1);
if (path.isEmpty()) // Assume that if path is empty it's '.'
path = ".";
return path;
}
void tst_android_deployment_settings::initTestCase_data()
{
QTest::addColumn<QString>("file");
QTest::newRow("old") << ":/old_settings.json";
QTest::newRow("new") << ":/new_settings.json";
}
void tst_android_deployment_settings::init()
{
QFETCH_GLOBAL(QString, file);
QFile settings(file);
QVERIFY(settings.open(QIODeviceBase::ReadOnly));
jsonDoc = QJsonDocument::fromJson(settings.readAll());
QVERIFY(!jsonDoc.isNull());
}
void tst_android_deployment_settings::DeploymentSettings_data()
{
QTest::addColumn<QString>("key");
QTest::addColumn<QString>("value");
QTest::newRow("sdkBuildToolsRevision") << "sdkBuildToolsRevision"
<< "23.0.2";
QTest::newRow("deployment-dependencies") << "deployment-dependencies"
<< "dep1.so,dep2.so,dep3.so";
QTest::newRow("android-extra-plugins")
<< "android-extra-plugins"
<< "some/path/to/plugin1.so,some/path/to/plugin2.so,some/path/to/plugin3.so";
QTest::newRow("android-extra-libs") << "android-extra-libs"
<< "some/path/to/lib1.so,some/path/to/lib2.so,some/path/to/"
"lib3.so,some/path/to/lib4.so";
QTest::newRow("android-system-libs-prefix") << "android-system-libs-prefix"
<< "myLibPrefix";
QTest::newRow("android-package-source-directory") << "android-package-source-directory"
<< "path/to/source/dir";
QTest::newRow("android-min-sdk-version") << "android-min-sdk-version"
<< "1";
QTest::newRow("android-target-sdk-version") << "android-target-sdk-version"
<< "2";
}
void tst_android_deployment_settings::DeploymentSettings()
{
QFETCH(QString, key);
QFETCH(QString, value);
QCOMPARE(jsonDoc[key].toString(), value);
}
void tst_android_deployment_settings::QtPaths_data()
{
QTest::addColumn<QString>("key");
QTest::addColumn<QString>("value");
QTest::newRow("qtDataDirectory") << "qtDataDirectory" << makePath(QLibraryInfo::DataPath);
QTest::newRow("qtLibExecsDirectory")
<< "qtLibExecsDirectory" << makePath(QLibraryInfo::LibraryExecutablesPath);
QTest::newRow("qtLibsDirectory") << "qtLibsDirectory" << makePath(QLibraryInfo::LibrariesPath);
QTest::newRow("qtPluginsDirectory")
<< "qtPluginsDirectory" << makePath(QLibraryInfo::PluginsPath);
QTest::newRow("qtQmlDirectory") << "qtQmlDirectory" << makePath(QLibraryInfo::QmlImportsPath);
}
void tst_android_deployment_settings::QtPaths()
{
QFETCH(QString, key);
QFETCH(QString, value);
QCOMPARE(QDir::cleanPath(jsonDoc[key].toObject()[DEFAULT_ABI].toString()),
QDir::cleanPath(value));
}
QTEST_MAIN(tst_android_deployment_settings)
#include "tst_android_deployment_settings.moc"
|