annotate ui/tests/commontest.cpp @ 237:6435e28ae753

Properly test for invalid input
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 28 Mar 2014 14:00:21 +0000
parents d773e540dec3
children 6b4ad6ccc48e
rev   line source
182
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1 #include <QString>
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
2 #include <QByteArray>
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 #include <QTest>
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 #include "commontest.h"
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 #include "strhelp.h"
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
7
237
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
8 void CommonTest::testInvalidInput() {
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
9 const char * foo = "Zm9vA"; /* Invalid input with a bit valid input */
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
10 char *data = NULL;
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
11 size_t data_size = 0;
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
12 int ret = -1;
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
13 ret = str_base64_decode(&data, &data_size, (char *)foo, 5);
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
14
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
15 QVERIFY(ret != 0);
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
16 QVERIFY(data == NULL);
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
17 QVERIFY(data_size == 0);
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
18 free(data);
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
19 }
6435e28ae753 Properly test for invalid input
Andre Heinecke <aheinecke@intevation.de>
parents: 233
diff changeset
20
182
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
21 void CommonTest::testStrBase64Decode() {
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22 char garbage[1000];
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
23 char *data = NULL;
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24 size_t data_size = 0;
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
25 int ret;
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
26 for (int i = 0; i < 1000; i++) {
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
27 garbage[i] = (char) qrand() % 255;
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
28 }
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
29
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30 QByteArray ba(garbage, 1000);
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32 QByteArray baB64 = ba.toBase64();
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
33
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
34 ret = str_base64_decode(&data, &data_size, (char *)baB64.constData(), baB64.size());
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
36 QVERIFY(ret == 0);
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
37 QVERIFY(data_size == 1000);
184
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 182
diff changeset
38 QVERIFY(data);
182
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
39
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
40 for (size_t i = 0; i < data_size; i++) {
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
41 QVERIFY(garbage[i] == data[i]);
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
42 }
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
43 free (data);
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
44 }
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
45
6c3a089d3265 Add test for str_base64_decode as i suspect it to have a bug
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
46 QTEST_GUILESS_MAIN (CommonTest);

http://wald.intevation.org/projects/trustbridge/