From e38cc1d480fdcf3ad08829688fe1a61961612e36 Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Mon, 14 Sep 2015 02:25:47 +0200 Subject: GH-1227 add GZip compress function and a unit test fo GZip --- tests/tst_GZip.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tests/tst_GZip.cpp (limited to 'tests/tst_GZip.cpp') diff --git a/tests/tst_GZip.cpp b/tests/tst_GZip.cpp new file mode 100644 index 00000000..23c749ef --- /dev/null +++ b/tests/tst_GZip.cpp @@ -0,0 +1,55 @@ +#include +#include "TestUtil.h" + +#include "GZip.h" +#include + +void fib(int &prev, int &cur) +{ + auto ret = prev + cur; + prev = cur; + cur = ret; +} + +class GZipTest : public QObject +{ + Q_OBJECT +private +slots: + + void test_Through() + { + // test up to 10 MB + static const int size = 10 * 1024 * 1024; + QByteArray random; + QByteArray compressed; + QByteArray decompressed; + std::default_random_engine eng((std::random_device())()); + std::uniform_int_distribution idis(0, std::numeric_limits::max()); + + // initialize random buffer + for(int i = 0; i < size; i++) + { + random.append((char)idis(eng)); + } + + // initialize fibonacci + int prev = 1; + int cur = 1; + + // test if fibonacci long random buffers pass through GZip + do + { + QByteArray copy = random; + copy.resize(cur); + QVERIFY(GZip::compress(copy, compressed)); + QVERIFY(GZip::decompress(compressed, decompressed)); + QCOMPARE(decompressed, copy); + fib(prev, cur); + } while (cur < size); + } +}; + +QTEST_GUILESS_MAIN(GZipTest) + +#include "tst_GZip.moc" -- cgit