[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [akonadi/dev/binary-protocol] autotests/server: Remove ImapStreamParser test
From:       Dan_Vrátil <dvratil () redhat ! com>
Date:       2015-05-31 23:09:40
Message-ID: E1YzCMO-0002Tn-Vz () scm ! kde ! org
[Download RAW message or body]

Git commit 6608f68e2cee926095f6a4bf1dfdf4e0fc56ce15 by Dan Vrátil.
Committed on 31/05/2015 at 23:02.
Pushed by dvratil into branch 'dev/binary-protocol'.

Remove ImapStreamParser test

M  +0    -1    autotests/server/CMakeLists.txt
D  +0    -467  autotests/server/imapstreamparsertest.cpp
D  +0    -46   autotests/server/imapstreamparsertest.h

http://commits.kde.org/akonadi/6608f68e2cee926095f6a4bf1dfdf4e0fc56ce15

diff --git a/autotests/server/CMakeLists.txt b/autotests/server/CMakeLists.txt
index c23c5fe..21decb5 100644
--- a/autotests/server/CMakeLists.txt
+++ b/autotests/server/CMakeLists.txt
@@ -71,7 +71,6 @@ macro(add_server_test _source)
     )
 endmacro()
 
-add_server_test(imapstreamparsertest.cpp)
 add_server_test(scopetest.cpp)
 add_server_test(handlerhelpertest.cpp)
 add_server_test(dbtypetest.cpp)
diff --git a/autotests/server/imapstreamparsertest.cpp \
b/autotests/server/imapstreamparsertest.cpp deleted file mode 100644
index f34e1b4..0000000
--- a/autotests/server/imapstreamparsertest.cpp
+++ /dev/null
@@ -1,467 +0,0 @@
-/*
-    Copyright (c) 2006 Volker Krause <vkrause@kde.org>
-    Copyright (c) 2009 Andras Mantia <amantia@kde.org>
-
-    This library is free software; you can redistribute it and/or modify it
-    under the terms of the GNU Library General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    This library is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
-    License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    along with this library; see the file COPYING.LIB.  If not, write to the
-    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.
-*/
-
-#include "imapstreamparsertest.h"
-
-#include <QtCore/QDebug>
-#include <QtCore/QVariant>
-#include <QBuffer>
-
-#include "imapstreamparser.h"
-#include <shared/aktest.h>
-
-Q_DECLARE_METATYPE(QList<QByteArray>)
-Q_DECLARE_METATYPE(QList<int>)
-
-using namespace Akonadi;
-using namespace Akonadi::Server;
-
-#if 0
-QString akBacktrace()
-{
-    QString s;
-
-    /* FIXME: is there an equivalent for darwin, *BSD, or windows? */
-#ifdef Backtrace_FOUND
-    void *trace[256];
-    int n = backtrace(trace, 256);
-    if (!n) {
-        return s;
-    }
-
-    char **strings = backtrace_symbols(trace, n);
-
-    s = QLatin1String("[\n");
-
-    for (int i = 0; i < n; ++i) {
-        s += QString::number(i) +
-             QLatin1String(": ") +
-             QLatin1String(strings[i]) + QLatin1String("\n");
-    }
-    s += QLatin1String("]\n");
-
-    if (strings) {
-        free(strings);
-    }
-#endif
-
-    return s;
-}
-#endif
-
-AKTEST_MAIN(ImapStreamParserTest)
-
-void ImapStreamParserTest::testParseQuotedString()
-{
-    QByteArray result;
-
-    QBuffer buffer;
-    buffer.open(QBuffer::ReadWrite);
-    ImapStreamParser parser(&buffer);
-    buffer.write(QByteArray("\"quoted \\\"NIL\\\"   string inside\""));
-    buffer.write(QByteArray("quoted"));
-    buffer.write(QByteArray("\"   string inside\""));
-    buffer.write(QByteArray("   string "));
-    buffer.write("NIL \"NIL\" \"\"");
-    buffer.write(" string");
-    buffer.write("\"\\\"some \\\\ quoted stuff\\\"\"");
-    buffer.write("LOGOUT\nFOO");
-    buffer.seek(0);
-
-    try {
-        // the whole thing
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("quoted \"NIL\"   string inside"));
-
-        // unqoted string
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("quoted"));
-
-        // whitespaces in qouted string
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("   string inside"));
-
-        // whitespaces before unquoted string
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("string"));
-
-        // NIL and emptyness tests
-
-        // unqoted NIL
-        result = parser.parseQuotedString();
-        QVERIFY(result.isNull());
-
-        // quoted NIL
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("NIL"));
-
-        // quoted empty string
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray(""));
-
-        // unquoted string at input end
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("string"));
-
-//   // out of bounds access
-//   result = parser.parseQuotedString();
-//   QVERIFY( result.isEmpty() );
-
-        // de-quoting
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("\"some \\ quoted stuff\""));
-
-        // linebreak as separator
-        result = parser.parseQuotedString();
-        QCOMPARE(result, QByteArray("LOGOUT"));
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << "Caught exception: " << e.type() << " : " << e.what();
-    }
-}
-
-void ImapStreamParserTest::testParseString()
-{
-
-    QBuffer buffer;
-    buffer.open(QBuffer::ReadWrite);
-    ImapStreamParser parser(&buffer);
-
-    buffer.write(QByteArray("\"quoted\" unquoted {7}\nliteral {0}\n "));
-    buffer.seek(0);
-
-    QByteArray result;
-    bool exceptionExpected = false;
-
-    try {
-        // quoted strings
-        result = parser.peekString();
-        QCOMPARE(result, QByteArray("quoted"));
-        result = parser.readString();
-        QCOMPARE(result, QByteArray("quoted"));
-
-        // unquoted string
-        result = parser.peekString();
-        QCOMPARE(result, QByteArray("unquoted"));
-        result = parser.readString();
-        QCOMPARE(result, QByteArray("unquoted"));
-
-        // literal string
-        result = parser.peekString();
-        QCOMPARE(result, QByteArray("literal"));
-        result = parser.readString();
-        QCOMPARE(result, QByteArray("literal"));
-
-        // empty literal string
-        result = parser.peekString();
-        QCOMPARE(result, QByteArray(""));
-        result = parser.readString();
-        QCOMPARE(result, QByteArray(""));
-
-        // out of bounds access
-
-        //this results in an ImapStreamParser exception
-        exceptionExpected = true;
-        result = parser.readString();
-        QCOMPARE(result, QByteArray());
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << "Caught exception: " << e.type() << " : " << e.what();
-        QVERIFY(exceptionExpected);
-    }
-}
-
-void ImapStreamParserTest::testParseParenthesizedList()
-{
-    QBuffer buffer;
-    buffer.open(QBuffer::ReadWrite);
-    ImapStreamParser parser(&buffer);
-
-    buffer.write(QByteArray("() ( )"));
-    buffer.write(QByteArray("(entry1 \"entry2()\" (sub list) \")))\" {6}\nentry3) \
                "));
-    buffer.write(QByteArray("some_list-less_text"));
-    buffer.write(QByteArray("(foo {6}\n\n\nbar\n bla)"));
-    buffer.write(QByteArray("(AA (\"BB)\" CC))"));        // parenthesis inside \
                quoted string
-    buffer.seek(0);
-
-    QList<QByteArray>result;
-
-    try {
-        // empty lists
-        result = parser.readParenthesizedList();
-        QVERIFY(result.isEmpty());
-
-        result = parser.readParenthesizedList();
-        QVERIFY(result.isEmpty());
-
-        // complex list with all kind of entries
-        qDebug() << "complex test";
-        result = parser.readParenthesizedList();
-        QList<QByteArray> reference;
-        reference << "entry1";
-        reference << "entry2()";
-        reference << "(sub list)";
-        reference << ")))";
-        reference << "entry3";
-
-        QCOMPARE(result, reference);
-
-        // no list at all
-        result = parser.readParenthesizedList();
-        QVERIFY(result.isEmpty());
-
-        parser.readString(); //just to advance in the data
-
-//     // out of bounds access
-//     result = parser.readParenthesizedList( input, result, input.length() );
-//     QVERIFY( result.isEmpty() );
-//     QCOMPARE( consumed, input.length() );
-
-        // newline literal (based on itemappendtest bug)
-        result = parser.readParenthesizedList();
-        reference.clear();
-        reference << "foo";
-        reference << "\n\nbar\n";
-        reference << "bla";
-
-        QCOMPARE(result, reference);
-
-        // Don't try to parse characters inside a quoted-string
-        result = parser.readParenthesizedList();
-        reference.clear();
-        reference << "AA";
-        reference << "(\"BB)\" CC)";
-
-        QCOMPARE(result, reference);
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << "Caught exception: " << e.type() << " : " <<
-                 e.what();
-        QVERIFY(false);
-    }
-}
-
-void ImapStreamParserTest::testParseNumber_data()
-{
-    QTest::addColumn<QByteArray>("input");
-    QTest::addColumn<int>("startIndex");
-    QTest::addColumn<qint64>("result");
-    QTest::addColumn<bool>("success");
-
-    QTest::newRow("empty") << QByteArray(" ") << 0 << 0ll << false;
-    QTest::newRow("start") << QByteArray("1 23 4\n") << 0 << 1ll << true;
-    QTest::newRow("middle") << QByteArray("1 23 4\n") << 1 << 23ll << true;
-    QTest::newRow("middle2") << QByteArray("1 23 4\n") << 2 << 23ll << true;
-    QTest::newRow("middle3") << QByteArray("1 23 4\n") << 3 << 3ll << true;
-    QTest::newRow("end") << QByteArray("1 23 4\n") << 4 << 4ll << true;
-    QTest::newRow("after end") << QByteArray("1 23 4\n") << 6 << 0ll << false;
-    QTest::newRow("incomplete") << QByteArray("1") << 0 << 0ll << false;
-    QTest::newRow("nan") << QByteArray("foo") << 0 << 0ll << false;
-}
-
-void ImapStreamParserTest::testParseNumber()
-{
-    QFETCH(QByteArray, input);
-    QFETCH(int, startIndex);
-    QFETCH(qint64, result);
-    QFETCH(bool, success);
-
-    QBuffer buffer;
-    buffer.open(QBuffer::ReadWrite | QIODevice::Truncate);
-    ImapStreamParser parser(&buffer);
-
-    buffer.write(input);
-    buffer.seek(startIndex);
-
-    bool failed = false;
-    try {
-        qint64 number = parser.readNumber();
-        QCOMPARE(number, result);
-    } catch (const ImapParserException &e) {
-        if (success) {
-            qDebug() << "Caught unexpected parser exception: " << " : " << e.what();
-        }
-        failed = true;
-    }
-    QCOMPARE(failed, !success);
-}
-
-void ImapStreamParserTest::testParseSequenceSet_data()
-{
-    QTest::addColumn<QByteArray>("data");
-    QTest::addColumn<ImapInterval::List>("result");
-    QTest::addColumn<bool>("exceptionExpected");
-
-    QByteArray data(" 1 0:* 3:4,8:* *:5,1");
-
-    QTest::newRow("empty") << QByteArray() << ImapInterval::List() << true;
-
-    ImapInterval::List result;
-    result << ImapInterval(1, 1);
-    data = " 1 ";
-    QTest::newRow("single value") << data  << result << false;
-
-    result.clear();
-    result << ImapInterval();
-    data = "  0:* ";
-    QTest::newRow("full interval") << data << result << false;
-
-    data = " 3:4,8:*";
-    result.clear();
-    result << ImapInterval(3, 4) << ImapInterval(8);
-    QTest::newRow("complex 1") << data << result << false;
-
-    data = " 1,5:*";
-    result.clear();
-    result << ImapInterval(1, 1) << ImapInterval(5, 0);
-    QTest::newRow("complex 2") << data  << result << false;
-}
-
-void ImapStreamParserTest::testParseSequenceSet()
-{
-    QFETCH(QByteArray, data);
-    QFETCH(ImapInterval::List, result);
-    QFETCH(bool, exceptionExpected);
-
-    QBuffer buffer;
-    buffer.open(QBuffer::ReadWrite);
-    ImapStreamParser parser(&buffer);
-    buffer.write(data);
-    buffer.seek(0);
-
-    ImapSet res;
-    bool exceptionCaught = false;
-    try {
-        res = parser.readSequenceSet();
-        QCOMPARE(res.intervals(), result);
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << "Caught exception: " << e.type() << " : " << e.what();
-        exceptionCaught = true;
-    }
-    QCOMPARE(exceptionCaught, exceptionExpected);
-}
-
-void ImapStreamParserTest::testParseDateTime_data()
-{
-    QTest::addColumn<QByteArray>("data");
-    QTest::addColumn<QDateTime>("result");
-    QTest::addColumn<bool>("exceptionExpected");
-
-    QTest::newRow("empty") << QByteArray() <<  QDateTime() << true;
-
-    QByteArray data(" \"28-May-2006 01:03:35 +0200\"");
-    QByteArray data2("22-Jul-2008 16:31:48 +0000");
-    QByteArray data3("ul-2008 16:31:48 +0000");
-
-    QDateTime dt(QDate(2006, 5, 27), QTime(23, 3, 35), Qt::UTC);
-    QDateTime dt2(QDate(2008, 7, 22), QTime(16, 31, 48), Qt::UTC);
-
-    QTest::newRow("quoted") << data  << dt << false;
-    QTest::newRow("unquoted") << data2 <<  dt2 << false;
-    QTest::newRow("invalid") << data3 << QDateTime() << false;
-}
-
-void ImapStreamParserTest::testParseDateTime()
-{
-    QFETCH(QByteArray, data);
-    QFETCH(QDateTime, result);
-    QFETCH(bool, exceptionExpected);
-
-    QBuffer buffer;
-    buffer.open(QBuffer::ReadWrite);
-    ImapStreamParser parser(&buffer);
-    buffer.write(data);
-    buffer.seek(0);
-
-    QDateTime actualResult;
-    bool exceptionCaught = false;
-    try {
-        actualResult = parser.readDateTime();
-        QCOMPARE(actualResult, result);
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << "Caught exception: " << e.type() << " : " << e.what();
-        exceptionCaught = true;
-    }
-    QCOMPARE(exceptionCaught, exceptionExpected);
-}
-
-void ImapStreamParserTest::testReadUntilCommandEnd()
-{
-    QByteArray input("2 UID STORE 2 NOREV SIZE 0 (+FLAGS.SILENT (\\Deleted))\n3 \
                EXPUNGE\n");
-    QBuffer buffer(&input, this);
-    buffer.open(QIODevice::ReadOnly);
-    ImapStreamParser parser(&buffer);
-
-    try {
-        QCOMPARE(parser.readString(), QByteArray("2"));
-        QCOMPARE(parser.readString(), QByteArray("UID"));
-        QCOMPARE(parser.readString(), QByteArray("STORE"));
-        QCOMPARE(parser.readString(), QByteArray("2"));
-        QCOMPARE(parser.readString(), QByteArray("NOREV"));
-        QCOMPARE(parser.readString(), QByteArray("SIZE"));
-        QCOMPARE(parser.readString(), QByteArray("0"));
-        parser.stripLeadingSpaces();
-        QCOMPARE(static_cast<char>(parser.readChar()), '(');
-        QVERIFY(!parser.atCommandEnd());
-        parser.readUntilCommandEnd();
-        QCOMPARE(parser.readString(), QByteArray("3"));
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << e.type() << e.what();
-        QFAIL("Exception caught");
-    }
-}
-
-// real bug, infinite loop with { as first char in a quoted string
-void ImapStreamParserTest::testReadUntilCommandEnd2()
-{
-    QByteArray input("4 MODIFY 595 MIMETYPE (message/rfc822 inode/directory) NAME \
                \"child2\" REMOTEID \"{b42}\"\nNEXTCOMMAND\n");
-    QBuffer buffer(&input, this);
-    buffer.open(QIODevice::ReadOnly);
-    ImapStreamParser parser(&buffer);
-
-    try {
-        QCOMPARE(parser.readString(), QByteArray("4"));
-        QCOMPARE(parser.readString(), QByteArray("MODIFY"));
-        QCOMPARE(parser.readString(), QByteArray("595"));
-        QCOMPARE(parser.readUntilCommandEnd(), QByteArray(" MIMETYPE (message/rfc822 \
                inode/directory) NAME \"child2\" REMOTEID \"{b42}\"\n"));
-        QCOMPARE(parser.readString(), QByteArray("NEXTCOMMAND"));
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << e.type() << e.what();
-        QFAIL("Exception caught");
-    }
-}
-
-void ImapStreamParserTest::testAbortCommand()
-{
-    QByteArray input("12 UID STORE 63696 REV 2 (REMOTEID.SILENT \"225\" \
REMOTEREVISION.SILENT "" FLAGS.SILENT (\\SEEN ) PLD:HEAD.SILENT {2226}\nNEXTCOMMAND \
                ");
-    QBuffer buffer(&input, this);
-    buffer.open(QIODevice::ReadOnly);
-    ImapStreamParser parser(&buffer);
-
-    try {
-        // read some stuff and then notice that we can't process the command and \
                abort early
-        QCOMPARE(parser.readString(), QByteArray("12"));
-        QCOMPARE(parser.readString(), QByteArray("UID"));
-        QCOMPARE(parser.readString(), QByteArray("STORE"));
-        qDebug() << "!!!";
-        parser.skipCurrentCommand();
-        QCOMPARE(parser.readString(), QByteArray("NEXTCOMMAND"));
-    } catch (const Akonadi::Server::Exception &e) {
-        qDebug() << e.type() << e.what();
-        QFAIL("Exception caught");
-    }
-}
diff --git a/autotests/server/imapstreamparsertest.h \
b/autotests/server/imapstreamparsertest.h deleted file mode 100644
index 013e339..0000000
--- a/autotests/server/imapstreamparsertest.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-    Copyright (c) 2006 Volker Krause <vkrause@kde.org>
-    Copyright (c) 2009 Andras Mantia <amantia@kde.org>
-
-    This library is free software; you can redistribute it and/or modify it
-    under the terms of the GNU Library General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    This library is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
-    License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    along with this library; see the file COPYING.LIB.  If not, write to the
-    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.
-*/
-
-#ifndef IMAPSTREAMPARSERTEST_H
-#define IMAPSTREAMPARSERTEST_H
-
-#include <QtCore/QObject>
-#include <QtTest/QtTest>
-
-class ImapStreamParserTest : public QObject
-{
-    Q_OBJECT
-private Q_SLOTS:
-    void testParseQuotedString();
-    void testParseString();
-    void testParseParenthesizedList();
-    void testParseNumber_data();
-    void testParseNumber();
-    void testParseSequenceSet_data();
-    void testParseSequenceSet();
-    void testParseDateTime_data();
-    void testParseDateTime();
-    void testReadUntilCommandEnd();
-    void testReadUntilCommandEnd2();
-    void testAbortCommand();
-
-};
-
-#endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic