summaryrefslogtreecommitdiff
path: root/Source/Tests/compression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Tests/compression.cpp')
-rwxr-xr-xSource/Tests/compression.cpp308
1 files changed, 154 insertions, 154 deletions
diff --git a/Source/Tests/compression.cpp b/Source/Tests/compression.cpp
index 09f7987..746a7d9 100755
--- a/Source/Tests/compression.cpp
+++ b/Source/Tests/compression.cpp
@@ -1,154 +1,154 @@
-#include <cppunit/extensions/HelperMacros.h>
-#include "../Platform.h"
-#include "../growbuf.h"
-
-#include <stdlib.h>
-#include <time.h>
-
-#include "decompress.h"
-
-#include "../cbzip2.h"
-#include "../clzma.h"
-#include "../czlib.h"
-
-class CompressionTest : public CppUnit::TestFixture {
-
-public:
- void randData(IGrowBuf &buf, int kb) {
- srand(time(0));
-
- for (int i = 0; i < kb; i++) {
- int r = rand();
- for (size_t j = 0; j < 1024/sizeof(int); j++) {
- buf.add(&r, sizeof(int));
- }
- }
- }
-
- // compressor must be initialized!
- void compress(ICompressor &compressor, IGrowBuf& in, IGrowBuf& out) {
- compressor.SetNextIn((char *) in.get(), in.getlen());
-
- int ret;
-
- do {
- char outbuf[1024];
- compressor.SetNextOut(outbuf, sizeof(outbuf));
-
- ret = compressor.Compress(C_FINISH);
-
- CPPUNIT_ASSERT_MESSAGE( compressor.GetErrStr(ret) , ret >= 0 );
-
- out.add(outbuf, sizeof(outbuf) - compressor.GetAvailOut());
- } while (ret == 0);
- }
-
- typedef void (*decompressInitPtr)(void *);
- typedef int (*decompressWorkPtr)(void *);
-
- void decompress(IDecompressor& decompressor, IGrowBuf& in, IGrowBuf& out) {
- decompressor.init();
- decompressor.setNextIn(in.get(), in.getlen());
-
- int ret;
-
- do {
- char outbuf[1024];
- decompressor.setNextOut(outbuf, sizeof(outbuf));
-
- ret = decompressor.decompress();
-
- CPPUNIT_ASSERT( ret >= 0 );
-
- out.add(outbuf, sizeof(outbuf) - decompressor.getAvailOut());
-
- } while (ret == 0);
-
- }
-
- // compressor must be initialized!
- void testCompressDecompress(int size_kb, ICompressor &compressor, IDecompressor& decompressor) {
- GrowBuf data;
- GrowBuf compressed;
- GrowBuf decompressed;
-
- randData(data, size_kb);
-
- compress(compressor, data, compressed);
- decompress(decompressor, compressed, decompressed);
-
- CPPUNIT_ASSERT_MESSAGE( "decompressed data is smaller", data.getlen() <= decompressed.getlen() );
- CPPUNIT_ASSERT_MESSAGE( "decompressed data is larger", data.getlen() >= decompressed.getlen() );
- CPPUNIT_ASSERT_MESSAGE( "decompressed data is different", !memcmp(data.get(), decompressed.get(), data.getlen()) );
- }
-
- void testCompressDecompress(ICompressor &compressor, IDecompressor& decompressor) {
- CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
- testCompressDecompress(1, compressor, decompressor);
-
- CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
- testCompressDecompress(1024, compressor, decompressor);
-
- CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
- testCompressDecompress(8*1024, compressor, decompressor);
-
- CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
- testCompressDecompress(32*1024, compressor, decompressor);
- }
-
-};
-
-class bzip2CompressionTest : public CompressionTest {
-
- CPPUNIT_TEST_SUITE( bzip2CompressionTest );
- CPPUNIT_TEST( test );
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void test() {
- CBzip2 compressor;
- bzip2Decompressor decompressor;
-
- testCompressDecompress(compressor, decompressor);
- }
-
-};
-
-class lzmaCompressionTest : public CompressionTest {
-
- CPPUNIT_TEST_SUITE( lzmaCompressionTest );
- CPPUNIT_TEST( test );
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void test() {
- CLZMA compressor;
- lzmaDecompressor decompressor;
-
- testCompressDecompress(compressor, decompressor);
- }
-
-};
-
-class zlibCompressionTest : public CompressionTest {
-
- CPPUNIT_TEST_SUITE( zlibCompressionTest );
- CPPUNIT_TEST( test );
- CPPUNIT_TEST_SUITE_END();
-
-public:
-
- void test() {
- CZlib compressor;
- zlibDecompressor decompressor;
-
- testCompressDecompress(compressor, decompressor);
- }
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION( bzip2CompressionTest );
-CPPUNIT_TEST_SUITE_REGISTRATION( lzmaCompressionTest );
-CPPUNIT_TEST_SUITE_REGISTRATION( zlibCompressionTest );
+#include <cppunit/extensions/HelperMacros.h>
+#include "../Platform.h"
+#include "../growbuf.h"
+
+#include <stdlib.h>
+#include <time.h>
+
+#include "decompress.h"
+
+#include "../cbzip2.h"
+#include "../clzma.h"
+#include "../czlib.h"
+
+class CompressionTest : public CppUnit::TestFixture {
+
+public:
+ void randData(IGrowBuf &buf, int kb) {
+ srand(time(0));
+
+ for (int i = 0; i < kb; i++) {
+ int r = rand();
+ for (size_t j = 0; j < 1024/sizeof(int); j++) {
+ buf.add(&r, sizeof(int));
+ }
+ }
+ }
+
+ // compressor must be initialized!
+ void compress(ICompressor &compressor, IGrowBuf& in, IGrowBuf& out) {
+ compressor.SetNextIn((char *) in.get(), in.getlen());
+
+ int ret;
+
+ do {
+ char outbuf[1024];
+ compressor.SetNextOut(outbuf, sizeof(outbuf));
+
+ ret = compressor.Compress(C_FINISH);
+
+ CPPUNIT_ASSERT_MESSAGE( compressor.GetErrStr(ret) , ret >= 0 );
+
+ out.add(outbuf, sizeof(outbuf) - compressor.GetAvailOut());
+ } while (ret == 0);
+ }
+
+ typedef void (*decompressInitPtr)(void *);
+ typedef int (*decompressWorkPtr)(void *);
+
+ void decompress(IDecompressor& decompressor, IGrowBuf& in, IGrowBuf& out) {
+ decompressor.init();
+ decompressor.setNextIn(in.get(), in.getlen());
+
+ int ret;
+
+ do {
+ char outbuf[1024];
+ decompressor.setNextOut(outbuf, sizeof(outbuf));
+
+ ret = decompressor.decompress();
+
+ CPPUNIT_ASSERT( ret >= 0 );
+
+ out.add(outbuf, sizeof(outbuf) - decompressor.getAvailOut());
+
+ } while (ret == 0);
+
+ }
+
+ // compressor must be initialized!
+ void testCompressDecompress(int size_kb, ICompressor &compressor, IDecompressor& decompressor) {
+ GrowBuf data;
+ GrowBuf compressed;
+ GrowBuf decompressed;
+
+ randData(data, size_kb);
+
+ compress(compressor, data, compressed);
+ decompress(decompressor, compressed, decompressed);
+
+ CPPUNIT_ASSERT_MESSAGE( "decompressed data is smaller", data.getlen() <= decompressed.getlen() );
+ CPPUNIT_ASSERT_MESSAGE( "decompressed data is larger", data.getlen() >= decompressed.getlen() );
+ CPPUNIT_ASSERT_MESSAGE( "decompressed data is different", !memcmp(data.get(), decompressed.get(), data.getlen()) );
+ }
+
+ void testCompressDecompress(ICompressor &compressor, IDecompressor& decompressor) {
+ CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
+ testCompressDecompress(1, compressor, decompressor);
+
+ CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
+ testCompressDecompress(1024, compressor, decompressor);
+
+ CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
+ testCompressDecompress(8*1024, compressor, decompressor);
+
+ CPPUNIT_ASSERT( compressor.Init(9, 1 << 23) == C_OK );
+ testCompressDecompress(32*1024, compressor, decompressor);
+ }
+
+};
+
+class bzip2CompressionTest : public CompressionTest {
+
+ CPPUNIT_TEST_SUITE( bzip2CompressionTest );
+ CPPUNIT_TEST( test );
+ CPPUNIT_TEST_SUITE_END();
+
+public:
+
+ void test() {
+ CBzip2 compressor;
+ bzip2Decompressor decompressor;
+
+ testCompressDecompress(compressor, decompressor);
+ }
+
+};
+
+class lzmaCompressionTest : public CompressionTest {
+
+ CPPUNIT_TEST_SUITE( lzmaCompressionTest );
+ CPPUNIT_TEST( test );
+ CPPUNIT_TEST_SUITE_END();
+
+public:
+
+ void test() {
+ CLZMA compressor;
+ lzmaDecompressor decompressor;
+
+ testCompressDecompress(compressor, decompressor);
+ }
+
+};
+
+class zlibCompressionTest : public CompressionTest {
+
+ CPPUNIT_TEST_SUITE( zlibCompressionTest );
+ CPPUNIT_TEST( test );
+ CPPUNIT_TEST_SUITE_END();
+
+public:
+
+ void test() {
+ CZlib compressor;
+ zlibDecompressor decompressor;
+
+ testCompressDecompress(compressor, decompressor);
+ }
+
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION( bzip2CompressionTest );
+CPPUNIT_TEST_SUITE_REGISTRATION( lzmaCompressionTest );
+CPPUNIT_TEST_SUITE_REGISTRATION( zlibCompressionTest );