Mercurial > trustbridge
annotate ui/tests/cinstprocesstest.cpp @ 305:4a3febc6d806
Some minor cleanups. Better debug output more Verify's
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 03 Apr 2014 15:29:58 +0200 |
parents | 56507c3d5f1e |
children | 9c5e6b142611 |
rev | line source |
---|---|
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 #include "cinstprocesstest.h" |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 #include "certificatelist.h" |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 #include "errorcodes.h" |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
4 #include "common.h" |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 #include <QDebug> |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 #include <QDir> |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 #include <QFile> |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 #include <QProcess> |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
294
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
11 #define CINST_PATH_CANDIDATES "../../cinst/cinst" << \ |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
12 "cinst" << "../../cinst/cinst.exe" << "cinst.exe"; |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 |
294
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
14 QProcess *CinstProcessTest::startCinstProcess(const QStringList& args) { |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
15 QStringList cinstCandidates; |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
16 cinstCandidates << CINST_PATH_CANDIDATES; |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
17 QString processPath; |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
18 foreach (const QString& candidate, cinstCandidates) { |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
19 QFileInfo fi(candidate); |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
20 if (fi.isExecutable()) { |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
21 processPath = candidate; |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
22 break; |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
23 } |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
24 } |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
25 |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 QProcess *installerProcess = new QProcess(); |
294
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
27 installerProcess->setArguments(args); |
d95fd88f6616
Prepare cinstprocesstest to be executed on Windows
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
28 installerProcess->setProgram(processPath); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 installerProcess->start(); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 installerProcess->waitForStarted(); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 return installerProcess; |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
34 #define VERIFY_PROC_DEBUG(x) \ |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
35 if (! x ) { \ |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
36 qDebug() << "Stdout:" << proc->readAllStandardOutput(); \ |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
37 qDebug() << "Stderr:" << proc->readAllStandardError(); \ |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
38 qDebug() << "Exit code: " << proc->exitCode(); \ |
305
4a3febc6d806
Some minor cleanups. Better debug output more Verify's
Andre Heinecke <andre.heinecke@intevation.de>
parents:
298
diff
changeset
|
39 qDebug() << "Exit status: " << proc->exitStatus(); \ |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
40 } \ |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
41 QVERIFY(x) |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
42 |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 void finishVerify(QProcess *proc, int exitCode) { |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 proc->closeWriteChannel(); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 proc->waitForFinished(); |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
46 VERIFY_PROC_DEBUG(proc->exitStatus() == QProcess::NormalExit); |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
47 VERIFY_PROC_DEBUG(proc->exitCode() == exitCode); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
48 delete proc; |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 void CinstProcessTest::testValidInput() { |
295
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
52 QStringList args; |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
53 args << "list=" + validListFile.fileName(); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 |
295
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
55 QTemporaryFile instructions; |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
56 instructions.open(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
57 foreach (const Certificate &cert, validList.getCertificates()) { |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
58 instructions.write(cert.base64Line().toLatin1()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
59 instructions.write("\n"); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
60 } |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
61 instructions.close(); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 |
295
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
63 args << "instructions=" + instructions.fileName(); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 |
295
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
65 QProcess* installerProcess = startCinstProcess(args); |
159
37c9653b8755
Rename NO_ERROR as NO_ERROR is already defined in windows.h
Andre Heinecke <aheinecke@intevation.de>
parents:
151
diff
changeset
|
66 finishVerify(installerProcess, ERR_NO_ERROR); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 void CinstProcessTest::initTestCase() { |
295
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
70 QFile valid(":/list-valid-signed.txt"); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
71 valid.open(QIODevice::ReadOnly); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
72 validListFile.open(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
73 validListFile.write(valid.readAll()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
74 valid.close(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
75 validListFile.close(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
76 validList = CertificateList(validListFile.fileName().toLocal8Bit().data()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
77 |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
78 QVERIFY(validList.isValid()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
79 |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
80 QFile invalid(":/list-invalid-signed.txt"); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
81 invalid.open(QIODevice::ReadOnly); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
82 invalidListFile.open(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
83 invalidListFile.write(invalid.readAll()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
84 invalid.close(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
85 invalidListFile.close(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
86 invalidList = CertificateList(invalidListFile.fileName().toLocal8Bit().data()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
87 |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
88 QVERIFY(!invalidList.isValid()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
89 |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
90 QFile other(":/list-valid-other-signature.txt"); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
91 other.open(QIODevice::ReadOnly); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
92 otherListFile.open(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
93 otherListFile.write(other.readAll()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
94 other.close(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
95 otherListFile.close(); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
96 otherList = CertificateList(otherListFile.fileName().toLocal8Bit().data()); |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
97 |
02df89a275a6
Fix cinstprocesstest testValid with usage of arguments
Andre Heinecke <aheinecke@intevation.de>
parents:
294
diff
changeset
|
98 QVERIFY(!otherList.isValid()); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
99 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
100 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
101 void CinstProcessTest::testNoList() { |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
102 /* No list */ |
296 | 103 QTemporaryFile emptyFile; |
104 emptyFile.open(); | |
105 emptyFile.close(); | |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
106 |
296 | 107 QStringList args; |
108 args << "list=" + emptyFile.fileName(); | |
109 | |
110 QTemporaryFile instructions; | |
111 instructions.open(); | |
249
6a7eb102716d
Remove code duplication by unifying the certificatelist.
Andre Heinecke <aheinecke@intevation.de>
parents:
159
diff
changeset
|
112 foreach (const Certificate &cert, validList.getCertificates()) { |
296 | 113 instructions.write(cert.base64Line().toLatin1()); |
114 instructions.write("\n"); | |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
115 } |
296 | 116 instructions.close(); |
117 | |
118 args << "instructions=" + instructions.fileName(); | |
119 | |
120 QProcess* installerProcess = startCinstProcess(args); | |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
121 finishVerify(installerProcess, ERR_INVALID_INPUT_NO_LIST); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
122 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
123 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
124 void CinstProcessTest::testGarbageInput() { |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
125 QStringList args; |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
126 |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
127 QString garbage = getRandomDataFile(21*1024*1024); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
128 args << "list=" + garbage; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
129 |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
130 QTemporaryFile instructions; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
131 instructions.open(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
132 foreach (const Certificate &cert, validList.getCertificates()) { |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
133 instructions.write(cert.base64Line().toLatin1()); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
134 instructions.write("\n"); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
135 } |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
136 instructions.close(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
137 |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
138 args << "instructions=" + instructions.fileName(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
139 |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
140 QProcess* installerProcess = startCinstProcess(args); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
141 /* If the following failed there may be leftovers in /tmp */ |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
142 finishVerify(installerProcess, ERR_INVALID_INPUT_NO_LIST); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
143 QVERIFY(QFile::remove(garbage)); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
144 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
145 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
146 void CinstProcessTest::testNoInput() { |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
147 QStringList args; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
148 args << "list=foobazbuf"; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
149 args << "instructions=bazbuffoo"; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
150 QProcess* installerProcess; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
151 installerProcess = startCinstProcess(args); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
152 finishVerify(installerProcess, ERR_INVALID_INPUT_NO_LIST); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
153 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
154 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
155 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
156 void CinstProcessTest::testNoInstructions() { |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
157 /* No instructions */ |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
158 QTemporaryFile emptyFile; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
159 emptyFile.open(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
160 emptyFile.close(); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
161 |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
162 QStringList args; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
163 args << "list=" + validListFile.fileName(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
164 args << "instructions=" + emptyFile.fileName(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
165 |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
166 QProcess* installerProcess = startCinstProcess(args); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
167 finishVerify(installerProcess, ERR_NO_INSTRUCTIONS); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
168 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
169 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
170 void CinstProcessTest::testInvalidInstruction() { |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
171 QStringList args; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
172 args << "list=" + validListFile.fileName(); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
173 |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
174 QTemporaryFile instructions; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
175 instructions.open(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
176 foreach (const Certificate &cert, validList.getCertificates()) { |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
177 instructions.write(cert.base64Line().toLatin1()); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
178 instructions.write("\n"); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
179 } |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
180 instructions.write("I:ABCDEF\n"); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
181 instructions.close(); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
182 |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
183 args << "instructions=" + instructions.fileName(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
184 |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
185 QProcess* installerProcess = startCinstProcess(args); |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
186 |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
187 finishVerify(installerProcess, ERR_INVALID_INSTRUCTIONS); |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
188 } |
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
189 |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
190 void CinstProcessTest::testUninstall() { |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
191 QStringList args; |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
192 args << "list=" + validListFile.fileName(); |
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
193 args << "instructions=uninstall"; |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
194 |
298
56507c3d5f1e
Adapt remaining cinstprocesstest to new arg pattern
Andre Heinecke <aheinecke@intevation.de>
parents:
296
diff
changeset
|
195 QProcess* installerProcess = startCinstProcess(args); |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
196 |
159
37c9653b8755
Rename NO_ERROR as NO_ERROR is already defined in windows.h
Andre Heinecke <aheinecke@intevation.de>
parents:
151
diff
changeset
|
197 finishVerify(installerProcess, ERR_NO_ERROR); |
151
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
198 } |
0df62decff90
Test if uninstall is handled as instruction
Andre Heinecke <aheinecke@intevation.de>
parents:
150
diff
changeset
|
199 |
100
8fa273791242
Add test for cinstprocess
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
200 QTEST_GUILESS_MAIN (CinstProcessTest); |