kutils: test KCompressor and KDecompressor with empty data

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-12-24 12:59:19 +02:00
parent 4c16e7c0d5
commit c29fc4dca1
2 changed files with 42 additions and 69 deletions

View file

@ -22,6 +22,7 @@
#include <qplatformdefs.h> #include <qplatformdefs.h>
static const QByteArray s_emptydata;
static const QByteArray s_shorttestdata = QByteArray("foobar"); static const QByteArray s_shorttestdata = QByteArray("foobar");
static const QByteArray s_longtestdata = s_shorttestdata.repeated(QT_BUFFSIZE); static const QByteArray s_longtestdata = s_shorttestdata.repeated(QT_BUFFSIZE);
@ -50,8 +51,7 @@ void KCompressorTest::process_data()
{ {
QTest::addColumn<int>("type"); QTest::addColumn<int>("type");
QTest::addColumn<int>("level"); QTest::addColumn<int>("level");
QTest::addColumn<QByteArray>("shortdata"); QTest::addColumn<QByteArray>("data");
QTest::addColumn<QByteArray>("longdata");
static const char* kcompressortypestr[] = { static const char* kcompressortypestr[] = {
"KCompressor::TypeUnknown", "KCompressor::TypeUnknown",
@ -67,7 +67,12 @@ void KCompressorTest::process_data()
// compression level 0 is not valid for Bzip2 // compression level 0 is not valid for Bzip2
continue; continue;
} }
QTest::newRow(kcompressortypestr[itype]) << itype << ilevel << s_shorttestdata << s_longtestdata; const QByteArray emptytag = QByteArray(kcompressortypestr[itype]) + " (empty data)";
QTest::newRow(emptytag.constData()) << itype << ilevel << s_emptydata;
const QByteArray shorttag = QByteArray(kcompressortypestr[itype]) + " (short data)";
QTest::newRow(shorttag.constData()) << itype << ilevel << s_shorttestdata;
const QByteArray longtag = QByteArray(kcompressortypestr[itype]) + " (long data)";
QTest::newRow(longtag.constData()) << itype << ilevel << s_longtestdata;
} }
} }
} }
@ -76,30 +81,16 @@ void KCompressorTest::process()
{ {
QFETCH(int, type); QFETCH(int, type);
QFETCH(int, level); QFETCH(int, level);
QFETCH(QByteArray, shortdata); QFETCH(QByteArray, data);
QFETCH(QByteArray, longdata);
{ KCompressor::KCompressorType kcompressortype = static_cast<KCompressor::KCompressorType>(type);
KCompressor::KCompressorType kcompressortype = static_cast<KCompressor::KCompressorType>(type); KCompressor kcompressor;
KCompressor kcompressor; kcompressor.setType(kcompressortype);
kcompressor.setType(kcompressortype); QCOMPARE(kcompressor.type(), kcompressortype);
QCOMPARE(kcompressor.type(), kcompressortype); kcompressor.setLevel(level);
kcompressor.setLevel(level); QCOMPARE(kcompressor.level(), level);
QCOMPARE(kcompressor.level(), level); QCOMPARE(kcompressor.process(data), true);
QCOMPARE(kcompressor.process(shortdata), true); QCOMPARE(kcompressor.errorString(), QString());
QCOMPARE(kcompressor.errorString(), QString());
}
{
KCompressor::KCompressorType kcompressortype = static_cast<KCompressor::KCompressorType>(type);
KCompressor kcompressor;
kcompressor.setType(kcompressortype);
QCOMPARE(kcompressor.type(), kcompressortype);
kcompressor.setLevel(level);
QCOMPARE(kcompressor.level(), level);
QCOMPARE(kcompressor.process(longdata), true);
QCOMPARE(kcompressor.errorString(), QString());
}
} }
#include "kcompressortest.moc" #include "kcompressortest.moc"

View file

@ -23,6 +23,7 @@
#include <qplatformdefs.h> #include <qplatformdefs.h>
static const QByteArray s_emptydata;
static const QByteArray s_shorttestdata = QByteArray("foobar"); static const QByteArray s_shorttestdata = QByteArray("foobar");
static const QByteArray s_longtestdata = s_shorttestdata.repeated(QT_BUFFSIZE); static const QByteArray s_longtestdata = s_shorttestdata.repeated(QT_BUFFSIZE);
@ -51,8 +52,7 @@ void KDecompressorTest::process_data()
{ {
QTest::addColumn<int>("type"); QTest::addColumn<int>("type");
QTest::addColumn<int>("level"); QTest::addColumn<int>("level");
QTest::addColumn<QByteArray>("shortdata"); QTest::addColumn<QByteArray>("data");
QTest::addColumn<QByteArray>("longdata");
static const char* kdecompressortypestr[] = { static const char* kdecompressortypestr[] = {
"KDecompressor::TypeUnknown", "KDecompressor::TypeUnknown",
@ -68,7 +68,12 @@ void KDecompressorTest::process_data()
// compression level 0 is not valid for Bzip2 // compression level 0 is not valid for Bzip2
continue; continue;
} }
QTest::newRow(kdecompressortypestr[itype]) << itype << ilevel << s_shorttestdata << s_longtestdata; const QByteArray emptytag = QByteArray(kdecompressortypestr[itype]) + " (empty data)";
QTest::newRow(emptytag.constData()) << itype << ilevel << s_emptydata;
const QByteArray shorttag = QByteArray(kdecompressortypestr[itype]) + " (short data)";
QTest::newRow(shorttag.constData()) << itype << ilevel << s_shorttestdata;
const QByteArray longtag = QByteArray(kdecompressortypestr[itype]) + " (long data)";
QTest::newRow(longtag.constData()) << itype << ilevel << s_longtestdata;
} }
} }
} }
@ -77,48 +82,25 @@ void KDecompressorTest::process()
{ {
QFETCH(int, type); QFETCH(int, type);
QFETCH(int, level); QFETCH(int, level);
QFETCH(QByteArray, shortdata); QFETCH(QByteArray, data);
QFETCH(QByteArray, longdata);
{ KCompressor::KCompressorType kcompressortype = static_cast<KCompressor::KCompressorType>(type);
KCompressor::KCompressorType kcompressortype = static_cast<KCompressor::KCompressorType>(type); KCompressor kcompressor;
KCompressor kcompressor; kcompressor.setType(kcompressortype);
kcompressor.setType(kcompressortype); QCOMPARE(kcompressor.type(), kcompressortype);
QCOMPARE(kcompressor.type(), kcompressortype); kcompressor.setLevel(level);
kcompressor.setLevel(level); QCOMPARE(kcompressor.level(), level);
QCOMPARE(kcompressor.level(), level); QCOMPARE(kcompressor.process(data), true);
QCOMPARE(kcompressor.process(shortdata), true); const QByteArray compresseddata = kcompressor.result();
const QByteArray compresseddata = kcompressor.result();
KDecompressor::KDecompressorType kdecompressortype = static_cast<KDecompressor::KDecompressorType>(type); KDecompressor::KDecompressorType kdecompressortype = static_cast<KDecompressor::KDecompressorType>(type);
KDecompressor kdecompressor; KDecompressor kdecompressor;
kdecompressor.setType(kdecompressortype); kdecompressor.setType(kdecompressortype);
QCOMPARE(kdecompressor.type(), kdecompressortype); QCOMPARE(kdecompressor.type(), kdecompressortype);
QCOMPARE(kdecompressor.process(compresseddata), true); QCOMPARE(kdecompressor.process(compresseddata), true);
QCOMPARE(kdecompressor.errorString(), QString()); QCOMPARE(kdecompressor.errorString(), QString());
const QByteArray decompresseddata = kdecompressor.result(); const QByteArray decompresseddata = kdecompressor.result();
QCOMPARE(decompresseddata, shortdata); QCOMPARE(decompresseddata, data);
}
{
KCompressor::KCompressorType kcompressortype = static_cast<KCompressor::KCompressorType>(type);
KCompressor kcompressor;
kcompressor.setType(kcompressortype);
QCOMPARE(kcompressor.type(), kcompressortype);
kcompressor.setLevel(level);
QCOMPARE(kcompressor.level(), level);
QCOMPARE(kcompressor.process(longdata), true);
const QByteArray compresseddata = kcompressor.result();
KDecompressor::KDecompressorType kdecompressortype = static_cast<KDecompressor::KDecompressorType>(type);
KDecompressor kdecompressor;
kdecompressor.setType(kdecompressortype);
QCOMPARE(kdecompressor.type(), kdecompressortype);
QCOMPARE(kdecompressor.process(compresseddata), true);
QCOMPARE(kdecompressor.errorString(), QString());
const QByteArray decompresseddata = kdecompressor.result();
QCOMPARE(decompresseddata, longdata);
}
} }
#include "kdecompressortest.moc" #include "kdecompressortest.moc"