Skip to content

Latest commit

 

History

History
172 lines (129 loc) · 5.32 KB

ssuclitest.cpp

File metadata and controls

172 lines (129 loc) · 5.32 KB
 
Apr 3, 2013
Apr 3, 2013
1
/**
Aug 20, 2014
Aug 20, 2014
2
* @file ssuclitest.cpp
Apr 3, 2013
Apr 3, 2013
3
4
5
6
7
* @copyright 2013 Jolla Ltd.
* @author Martin Kampas <martin.kampas@tieto.com>
* @date 2013
*/
Aug 20, 2014
Aug 20, 2014
8
#include "ssuclitest.h"
Apr 3, 2013
Apr 3, 2013
9
10
11
12
13
14
#include <stdlib.h>
#include <zypp/media/UrlResolverPlugin.h>
#include <QtTest/QtTest>
May 24, 2013
May 24, 2013
15
#include "libssu/sandbox_p.h"
Apr 4, 2013
Apr 4, 2013
16
#include "testutils/process.h"
Apr 3, 2013
Apr 3, 2013
17
Apr 3, 2013
Apr 3, 2013
18
typedef QStringList Args; // improve readability
Apr 3, 2013
Apr 3, 2013
19
Oct 10, 2016
Oct 10, 2016
20
21
22
23
24
25
26
27
28
29
30
31
32
void SsuCliTest::init()
{
Q_ASSERT(m_sandbox == 0);
m_sandbox = new Sandbox(QString("%1/configroot").arg(LOCATE_DATA_PATH),
Sandbox::UseAsSkeleton, Sandbox::ChildProcesses);
if (!m_sandbox->activate()) {
QFAIL("Failed to activate sandbox");
}
if (getenv("SSU_SANDBOX_PATH")) {
qDebug() << "Using in-tree sandbox";
setenv("LD_PRELOAD", getenv("SSU_SANDBOX_PATH"), 1);
} else
Aug 4, 2017
Aug 4, 2017
33
setenv("LD_PRELOAD", SSU_SANDBOX_PATH, 1);
Oct 10, 2016
Oct 10, 2016
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
m_bus = new QProcess(this);
m_bus->start("dbus-daemon",
Args() << "--session" << "--nofork" << "--nopidfile" << "--print-address");
if (!m_bus->waitForReadyRead()) {
QFAIL("Failed to run sandboxed D-Bus instance");
}
const QByteArray busAddress = m_bus->readAllStandardOutput();
setenv("DBUS_SESSION_BUS_ADDRESS", busAddress.constData(), 1);
setenv("DBUS_SYSTEM_BUS_ADDRESS", busAddress.constData(), 1);
m_ssud = new QProcess(this);
m_ssud->start("ssud");
if (!m_ssud->waitForStarted()) {
QFAIL("Failed to run sandboxed ssud instance");
}
Apr 3, 2013
Apr 3, 2013
50
51
}
Oct 10, 2016
Oct 10, 2016
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
void SsuCliTest::cleanup()
{
if (m_ssud->state() != QProcess::Running) {
QFAIL("Sandboxed ssud instance exited unexpectedly");
}
delete m_ssud;
m_ssud = 0;
if (m_bus->state() != QProcess::Running) {
QFAIL("Sandboxed D-Bus instance exited unexpectedly");
}
unsetenv("DBUS_SESSION_BUS_ADDRESS");
unsetenv("DBUS_SYSTEM_BUS_ADDRESS");
delete m_bus;
m_bus = 0;
delete m_sandbox;
m_sandbox = 0;
Apr 3, 2013
Apr 3, 2013
70
71
}
Oct 10, 2016
Oct 10, 2016
72
73
74
75
void SsuCliTest::testSubcommandFlavour()
{
Process ssu;
QString output;
Apr 3, 2013
Apr 3, 2013
76
Oct 10, 2016
Oct 10, 2016
77
78
79
// set flavour to 'release'
ssu.execute("ssu", Args() << "flavour" << "release");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
80
Oct 10, 2016
Oct 10, 2016
81
82
output = ssu.execute("ssu", Args() << "flavour").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
83
Oct 10, 2016
Oct 10, 2016
84
QCOMPARE(output, QString("Device flavour is currently: release"));
Apr 3, 2013
Apr 3, 2013
85
Oct 10, 2016
Oct 10, 2016
86
87
88
// set flavour to 'testing'
ssu.execute("ssu", Args() << "flavour" << "testing");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
89
Oct 10, 2016
Oct 10, 2016
90
91
output = ssu.execute("ssu", Args() << "flavour").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
92
Oct 10, 2016
Oct 10, 2016
93
QCOMPARE(output, QString("Device flavour is currently: testing"));
Apr 3, 2013
Apr 3, 2013
94
95
}
Oct 10, 2016
Oct 10, 2016
96
97
98
99
void SsuCliTest::testSubcommandRelease()
{
Process ssu;
QString output;
Apr 3, 2013
Apr 3, 2013
100
Oct 10, 2016
Oct 10, 2016
101
102
103
// set release to latest
ssu.execute("ssu", Args() << "release" << "latest");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
104
Oct 10, 2016
Oct 10, 2016
105
106
output = ssu.execute("ssu", Args() << "release").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
107
Oct 10, 2016
Oct 10, 2016
108
QCOMPARE(output, QString("Device release is currently: latest"));
Apr 3, 2013
Apr 3, 2013
109
Oct 10, 2016
Oct 10, 2016
110
111
112
// set release to next
ssu.execute("ssu", Args() << "release" << "next");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
113
Oct 10, 2016
Oct 10, 2016
114
115
output = ssu.execute("ssu", Args() << "release").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
116
Oct 10, 2016
Oct 10, 2016
117
QCOMPARE(output, QString("Device release is currently: next"));
Apr 3, 2013
Apr 3, 2013
118
Oct 10, 2016
Oct 10, 2016
119
120
121
// verify the mode is release
output = ssu.execute("ssu", Args() << "mode").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
122
Oct 10, 2016
Oct 10, 2016
123
QCOMPARE(output, QString("Device mode is: 0 ()"));
Apr 3, 2013
Apr 3, 2013
124
Oct 10, 2016
Oct 10, 2016
125
126
127
// set RnD release to latest
ssu.execute("ssu", Args() << "release" << "-r" << "latest");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
128
Oct 10, 2016
Oct 10, 2016
129
130
output = ssu.execute("ssu", Args() << "release" << "-r").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
131
Oct 10, 2016
Oct 10, 2016
132
QCOMPARE(output, QString("Device release (RnD) is currently: latest"));
Apr 3, 2013
Apr 3, 2013
133
Oct 10, 2016
Oct 10, 2016
134
135
136
// set RnD release to next
ssu.execute("ssu", Args() << "release" << "-r" << "next");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
137
Oct 10, 2016
Oct 10, 2016
138
139
output = ssu.execute("ssu", Args() << "release" << "-r").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
140
Oct 10, 2016
Oct 10, 2016
141
QCOMPARE(output, QString("Device release (RnD) is currently: next"));
Apr 3, 2013
Apr 3, 2013
142
Oct 10, 2016
Oct 10, 2016
143
144
145
// verify the mode is RnD
output = ssu.execute("ssu", Args() << "mode").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
146
Oct 10, 2016
Oct 10, 2016
147
QCOMPARE(output, QString("Device mode is: 2 (RndMode)"));
Apr 3, 2013
Apr 3, 2013
148
149
}
Oct 10, 2016
Oct 10, 2016
150
151
152
153
void SsuCliTest::testSubcommandMode()
{
Process ssu;
QString output;
Apr 3, 2013
Apr 3, 2013
154
Oct 10, 2016
Oct 10, 2016
155
156
157
// set release mode
ssu.execute("ssu", Args() << "mode" << "0");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
158
Oct 10, 2016
Oct 10, 2016
159
160
output = ssu.execute("ssu", Args() << "mode").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
161
Oct 10, 2016
Oct 10, 2016
162
QCOMPARE(output, QString("Device mode is: 0 ()"));
Apr 3, 2013
Apr 3, 2013
163
Oct 10, 2016
Oct 10, 2016
164
165
166
// set RnD mode
ssu.execute("ssu", Args() << "mode" << "2");
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
167
Oct 10, 2016
Oct 10, 2016
168
169
output = ssu.execute("ssu", Args() << "mode").trimmed();
QVERIFY2(!ssu.hasError(), qPrintable(ssu.fmtErrorMessage()));
Apr 3, 2013
Apr 3, 2013
170
Oct 10, 2016
Oct 10, 2016
171
QCOMPARE(output, QString("Device mode is: 2 (RndMode)"));
Apr 3, 2013
Apr 3, 2013
172
}