diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-04-14 01:23:54 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-05-01 00:02:15 +0200 |
commit | 771dd6f9abe29c1d24c5ea8f0e7ca949bc24f84d (patch) | |
tree | 52962ddf547b3227f1b637dd1da2b3d0b5a5a766 /api/logic/GZip_test.cpp | |
parent | e8ba5dafc63de65ed8a469353b808e391633f0fc (diff) | |
download | MultiMC-771dd6f9abe29c1d24c5ea8f0e7ca949bc24f84d.tar MultiMC-771dd6f9abe29c1d24c5ea8f0e7ca949bc24f84d.tar.gz MultiMC-771dd6f9abe29c1d24c5ea8f0e7ca949bc24f84d.tar.lz MultiMC-771dd6f9abe29c1d24c5ea8f0e7ca949bc24f84d.tar.xz MultiMC-771dd6f9abe29c1d24c5ea8f0e7ca949bc24f84d.zip |
NOISSUE reorganize unit tests to be placed next to the code they test. Nuke more dead tests.
Diffstat (limited to 'api/logic/GZip_test.cpp')
-rw-r--r-- | api/logic/GZip_test.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/api/logic/GZip_test.cpp b/api/logic/GZip_test.cpp new file mode 100644 index 00000000..f4c9214c --- /dev/null +++ b/api/logic/GZip_test.cpp @@ -0,0 +1,57 @@ +#include <QTest> +#include "TestUtil.h" + +#include "GZip.h" +#include <random> + +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<uint8_t> idis(0, std::numeric_limits<uint8_t>::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); + compressed.clear(); + decompressed.clear(); + QVERIFY(GZip::zip(copy, compressed)); + QVERIFY(GZip::unzip(compressed, decompressed)); + QCOMPARE(decompressed, copy); + fib(prev, cur); + } while (cur < size); + } +}; + +QTEST_GUILESS_MAIN(GZipTest) + +#include "GZip_test.moc" |