diff ui/tests/certlistparsertest.cpp @ 207:e35983a322d6

merged.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 26 Mar 2014 15:22:50 +0100
parents 825b42da1855
children c05e126b0b9e
line wrap: on
line diff
--- a/ui/tests/certlistparsertest.cpp	Wed Mar 26 15:22:14 2014 +0100
+++ b/ui/tests/certlistparsertest.cpp	Wed Mar 26 15:22:50 2014 +0100
@@ -51,9 +51,16 @@
     QVERIFY(instLines.size() == instList.size());
     QVERIFY(remoLines.size() == remoList.size());
 
+    /* Check that a default certificate is invalid */
     Certificate cert;
     QVERIFY(!cert.isValid());
 
+    certList->readList(fileName.toLocal8Bit().data());
+
+    const QList<Certificate> instList2 = certList->getInstallCertificates();
+    const QList<Certificate> remoList2 = certList->getRemoveCertificates();
+    QVERIFY(instLines.size() == instList2.size());
+    QVERIFY(remoLines.size() == remoList2.size());
 
     delete certList;
 }
@@ -90,29 +97,61 @@
 {
     const char *fname = "empty_file";
     CertificateList *certList = testWithFile(fname);
-    printf("Status :%i\n ",certList->getStatus());
     QCOMPARE (certList->getStatus(), SeekFailed);
     delete certList;
 }
 
 void CertListTest::testGarbage()
 {
-    const char *fnames[] = {"garbage_500KB",
-        "list-with-null.txt",
-        NULL};
-    for (int i=0; fnames[i] != NULL; i++) {
-        CertificateList *certList = testWithFile(fnames[i]);
-        QCOMPARE (certList->getStatus(), InvalidFormat);
-        delete certList;
+    const char *fname = "list-with-null.txt";
+    QString fname2 = getRandomDataFile(200);
+    CertificateList *certList = testWithFile(fname);
+    QCOMPARE (certList->getStatus(), InvalidFormat);
+    delete certList;
+    certList = testWithFile(fname2.toLocal8Bit().constData());
+    QVERIFY(QFile::remove(fname2));
+    QCOMPARE (certList->getStatus(), InvalidFormat);
+    delete certList;
+}
+
+QString CertListTest::getRandomDataFile(size_t size)
+{
+    QTemporaryFile tmpfile;
+    tmpfile.setAutoRemove(false);
+    tmpfile.open();
+    size_t bufsize = 1024 * 1024;
+    if (bufsize > size) {
+        bufsize = size;
     }
+    char buf[bufsize];
+
+    for (size_t i = 0; i < bufsize; i++) {
+        buf[i] = (char) qrand() % 255;
+    }
+
+    size_t bytesWritten=0;
+    int retval = 0;
+    do {
+        size_t toWrite = size - bytesWritten;
+        if (toWrite < bufsize) {
+            retval = tmpfile.write(buf, toWrite);
+        } else {
+            retval = tmpfile.write(buf, bufsize);
+        }
+        bytesWritten += retval;
+    } while (retval != -1 && bytesWritten < size);
+
+    tmpfile.close();
+    return tmpfile.fileName();
 }
 
 void CertListTest::testTooLarge()
 {
-    const char *fname = "garbage_2MB";
-    CertificateList *certList = testWithFile(fname);
-    QCOMPARE (certList->getStatus(), TooLarge);
-    QVERIFY (!certList->isValid());
+    QString fname = getRandomDataFile(MAX_LINE_LENGTH * MAX_LINES + 1);
+    CertificateList *certList = testWithFile(fname.toLocal8Bit().constData());
+    QVERIFY(QFile::remove(fname));
+    QCOMPARE(certList->getStatus(), TooLarge);
+    QVERIFY(!certList->isValid());
     delete certList;
 }
 

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