File indexing completed on 2024-06-23 05:20:27

0001 /*
0002     Copyright (c) 2022 Christian Mollekopf <christian@mkpf.ch>
0003 
0004     This library is free software; you can redistribute it and/or modify it
0005     under the terms of the GNU Library General Public License as published by
0006     the Free Software Foundation; either version 2 of the License, or (at your
0007     option) any later version.
0008 
0009     This library is distributed in the hope that it will be useful, but WITHOUT
0010     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0011     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
0012     License for more details.
0013 
0014     You should have received a copy of the GNU Library General Public License
0015     along with this library; see the file COPYING.LIB.  If not, write to the
0016     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
0017     02110-1301, USA.
0018 */
0019 #include <objecttreeparser.h>
0020 
0021 #include <QTest>
0022 #include <QDebug>
0023 
0024 QByteArray readMailFromFile(const QString &mailFile)
0025 {
0026     QFile file(QLatin1String(MAIL_DATA_DIR) + QLatin1Char('/') + mailFile);
0027     file.open(QIODevice::ReadOnly);
0028     Q_ASSERT(file.isOpen());
0029     return file.readAll();
0030 }
0031 
0032 class MimeTreeParserBenchmark : public QObject
0033 {
0034     Q_OBJECT
0035 private slots:
0036     void testOpenPGPInlineBenchmark()
0037     {
0038         MimeTreeParser::ObjectTreeParser otp;
0039         otp.parseObjectTree(readMailFromFile("openpgp-inline-charset-encrypted.mbox"));
0040         otp.print();
0041         QElapsedTimer timer;
0042         timer.start();
0043         otp.decryptParts();
0044 
0045         qWarning() << "Decryption took: " << timer.elapsed();
0046 
0047         QBENCHMARK {
0048             otp.decryptParts();
0049         }
0050 
0051     }
0052 };
0053 
0054 QTEST_GUILESS_MAIN(MimeTreeParserBenchmark)
0055 #include "mimetreeparserbenchmark.moc"