diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2022-09-11 22:25:18 +0200 |
---|---|---|
committer | Sefa Eyeoglu <contact@scrumplex.net> | 2022-09-11 22:29:01 +0200 |
commit | 4c7d3a103ca9cfd3af0b3acf2877561150c5ac60 (patch) | |
tree | ae8fe0553e3955a0b02ce7c518cb2e07d896127f /tests/GZip_test.cpp | |
parent | ca282f9fb36d12bb038ebdb90f017a6e3c945c0d (diff) | |
download | PrismLauncher-4c7d3a103ca9cfd3af0b3acf2877561150c5ac60.tar.gz PrismLauncher-4c7d3a103ca9cfd3af0b3acf2877561150c5ac60.tar.bz2 PrismLauncher-4c7d3a103ca9cfd3af0b3acf2877561150c5ac60.zip |
refactor: restructure tests
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Diffstat (limited to 'tests/GZip_test.cpp')
-rw-r--r-- | tests/GZip_test.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/GZip_test.cpp b/tests/GZip_test.cpp new file mode 100644 index 00000000..1e762b2e --- /dev/null +++ b/tests/GZip_test.cpp @@ -0,0 +1,56 @@ +#include <QTest> + +#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" |