diff options
Diffstat (limited to 'source/blender/deflate')
-rw-r--r-- | source/blender/deflate/BLO_deflate.h | 59 | ||||
-rw-r--r-- | source/blender/deflate/Makefile | 39 | ||||
-rw-r--r-- | source/blender/deflate/SConscript | 17 | ||||
-rw-r--r-- | source/blender/deflate/intern/BLO_deflate.c | 215 | ||||
-rw-r--r-- | source/blender/deflate/intern/Makefile | 57 | ||||
-rw-r--r-- | source/blender/deflate/stub/BLO_deflateSTUB.c | 56 | ||||
-rw-r--r-- | source/blender/deflate/stub/Makefile | 55 | ||||
-rw-r--r-- | source/blender/deflate/test/Makefile | 37 | ||||
-rw-r--r-- | source/blender/deflate/test/stubbed/Makefile | 72 | ||||
-rw-r--r-- | source/blender/deflate/test/stubbed/stubbed.c | 207 |
10 files changed, 0 insertions, 814 deletions
diff --git a/source/blender/deflate/BLO_deflate.h b/source/blender/deflate/BLO_deflate.h deleted file mode 100644 index 8d7f9ff07e0..00000000000 --- a/source/blender/deflate/BLO_deflate.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - * zlib deflate compression wrapper library interface - */ - -#ifndef BLO_DEFLATE_H -#define BLO_DEFLATE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * zlib deflate dataprocessor wrapper - * @param data Pointer to raw input data - * @param dataIn Raw data input amount - * @param streamGlueHeader Our streamGlueHeaderStruct - * @retval streamGlueWrite return value - */ - int -BLO_deflate( - unsigned char *data, - unsigned int dataIn, - struct streamGlueHeaderStruct *streamGlueHeader); - -#ifdef __cplusplus -} -#endif - -#endif /* BLO_DEFLATE_H */ - diff --git a/source/blender/deflate/Makefile b/source/blender/deflate/Makefile deleted file mode 100644 index 397f72614c9..00000000000 --- a/source/blender/deflate/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# -# $Id$ -# -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. -# All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): none yet. -# -# ***** END GPL/BL DUAL LICENSE BLOCK ***** -# -# Bounces make to subdirectories. -# - -SOURCEDIR = source/blender/deflate -DIRS = intern -TESTDIRS = test - -include nan_subdirs.mk diff --git a/source/blender/deflate/SConscript b/source/blender/deflate/SConscript deleted file mode 100644 index 400c290f4e4..00000000000 --- a/source/blender/deflate/SConscript +++ /dev/null @@ -1,17 +0,0 @@ -Import ('extra_includes') -Import ('user_options_dict') -Import ('library_env') - -deflate_env = library_env.Copy () - -source_files = ['intern/BLO_deflate.c'] - -deflate_env.Append (CPPPATH = ['.', - '../../kernel/gen_messaging', - '../writestreamglue', - '../readstreamglue', - '../inflate']) - -deflate_env.Append (CPPPATH=user_options_dict['Z_INCLUDE']) -deflate_env.Append (CPPPATH=extra_includes) -deflate_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_deflate', source=source_files) diff --git a/source/blender/deflate/intern/BLO_deflate.c b/source/blender/deflate/intern/BLO_deflate.c deleted file mode 100644 index 385b53e8e7a..00000000000 --- a/source/blender/deflate/intern/BLO_deflate.c +++ /dev/null @@ -1,215 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - * zlib deflate compression wrapper library - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "zlib.h" - -#include "GEN_messaging.h" - -#include "BLO_writeStreamGlue.h" -#include "BLO_deflate.h" -#include "BLO_in_de_flateHeader.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -// TODO use other error function -static int CHECK_ERR(int err, char *msg); - -static int CHECK_ERR(int err, char *msg) { - if (err != Z_OK) { -#ifndef NDEBUG - fprintf(GEN_errorstream, - "%s error: %d\n", - msg, - err); -#endif - return 1; - } - return 0; -} - - int -BLO_deflate( - unsigned char *data, - unsigned int dataIn, - struct streamGlueHeaderStruct *streamGlueHeader) -{ - int zlib_err; /* zlib error */ - int err = 0; /* our own error */ - z_stream c_stream; /* compression stream */ - char dictionary[50]; - Bytef *compressBuf; /* minimally sized output buffer for deflate */ - uInt compressSize; /* minimally sized compressBuf size in bytes */ - struct writeStreamGlueStruct *streamGlue = NULL; - struct BLO_in_de_flateHeaderStruct BLO_in_de_flateHeader; - char* errmsg1 = "deflateInit"; - char* errmsg2 = "deflateSetDictionary"; - char* errmsg3 = "deflateEnd"; - - // TODO use dictionary index, this is id = 1 : - strcpy(dictionary, "sure this is not a number"); - - compressSize = (dataIn * 1.1) + 12; - compressBuf = (Bytef *)malloc(compressSize); - if (!compressBuf) { - err = BWS_SETFUNCTION(BWS_DEFLATE) | - BWS_SETGENERR(BWS_MALLOC); - return err; - } - - c_stream.next_out = compressBuf; - c_stream.avail_out = compressSize; - c_stream.next_in = data; - c_stream.avail_in = dataIn; - - c_stream.zalloc = (alloc_func)0; - c_stream.zfree = (free_func)0; - c_stream.opaque = (voidpf)0; - - zlib_err = deflateInit(&c_stream, Z_BEST_COMPRESSION); - if (CHECK_ERR(zlib_err, errmsg1)) { - err = BWS_SETFUNCTION(BWS_DEFLATE) | - BWS_SETSPECERR(BWS_DEFLATEERROR); - free(compressBuf); - return err; - } - - zlib_err = deflateSetDictionary(&c_stream, - (const Bytef*)dictionary, - strlen(dictionary)); - if (CHECK_ERR(zlib_err, errmsg2)) { - err = BWS_SETFUNCTION(BWS_DEFLATE) | - BWS_SETSPECERR(BWS_DEFLATEERROR); - free(compressBuf); - return err; - } - - // Compress it - zlib_err = deflate(&c_stream, Z_FINISH); - if (zlib_err != Z_STREAM_END) { -#ifndef NDEBUG - fprintf(GEN_errorstream, - "deflate should report Z_STREAM_END\n"); -#endif - // (avail_out == 0) possibility ? Should not, because we - // malloc by the minimal needed amount rule - err = BWS_SETFUNCTION(BWS_DEFLATE) | - BWS_SETSPECERR(BWS_DEFLATEERROR); - free(compressBuf); - return err; - } - - zlib_err = deflateEnd(&c_stream); - if (CHECK_ERR(zlib_err, errmsg3)) { - err = BWS_SETFUNCTION(BWS_DEFLATE) | - BWS_SETSPECERR(BWS_DEFLATEERROR); - free(compressBuf); - return err; - } - -#ifndef NDEBUG - fprintf(GEN_errorstream, - "BLO_deflate compressed %ld bytes to %ld (%.0f%%)\n", - c_stream.total_in, c_stream.total_out, - 100. * (float)c_stream.total_out / (float)c_stream.total_in); - - fprintf(GEN_errorstream, - "BLO_deflate writes streamGlueHeader of %u bytes\n", - STREAMGLUEHEADERSIZE); -#endif - // Update streamGlueHeader that initiated us and write it away - streamGlueHeader->totalStreamLength = - htonl(IN_DE_FLATEHEADERSTRUCTSIZE + c_stream.total_out); - streamGlueHeader->crc = htonl(crc32(0L, (const Bytef *) streamGlueHeader, - STREAMGLUEHEADERSIZE - 4)); - err = writeStreamGlue( - Global_streamGlueControl, - &streamGlue, - (unsigned char *) streamGlueHeader, - STREAMGLUEHEADERSIZE, - 0); - if (err) { - free(compressBuf); - return err; - } - -#ifndef NDEBUG - fprintf(GEN_errorstream, - "BLO_deflate writes BLO_in_de_flateHeader of %u bytes\n", - IN_DE_FLATEHEADERSTRUCTSIZE); -#endif - - // write out our header - BLO_in_de_flateHeader.magic = 'B'; - BLO_in_de_flateHeader.compressedLength = htonl(c_stream.total_out); - BLO_in_de_flateHeader.uncompressedLength = htonl(c_stream.total_in); - BLO_in_de_flateHeader.dictionary_id = htonl(1); - BLO_in_de_flateHeader.dictId = htonl(c_stream.adler); // adler checksum - BLO_in_de_flateHeader.crc = htonl(crc32(0L, - (const Bytef *) &BLO_in_de_flateHeader, IN_DE_FLATEHEADERSTRUCTSIZE-4)); - err = writeStreamGlue( - Global_streamGlueControl, - &streamGlue, - (unsigned char *) &BLO_in_de_flateHeader, - IN_DE_FLATEHEADERSTRUCTSIZE, - 0); - if (err) { - free(compressBuf); - return err; - } - -#ifndef NDEBUG - fprintf(GEN_errorstream, - "BLO_deflate writes %lu bytes raw data (total %lu)\n", - c_stream.total_out, STREAMGLUEHEADERSIZE + - IN_DE_FLATEHEADERSTRUCTSIZE + c_stream.total_out); -#endif - - // finally write all compressed data - err = writeStreamGlue( - Global_streamGlueControl, - &streamGlue, - (unsigned char *) compressBuf, - c_stream.total_out, - 1); - - free(compressBuf); - - return err; -} - diff --git a/source/blender/deflate/intern/Makefile b/source/blender/deflate/intern/Makefile deleted file mode 100644 index b6811f2d130..00000000000 --- a/source/blender/deflate/intern/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# -# $Id$ -# -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. -# All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): none yet. -# -# ***** END GPL/BL DUAL LICENSE BLOCK ***** -# -# - -LIBNAME = deflate -DIR = $(OCGDIR)/blender/$(LIBNAME) - -include nan_compile.mk - -ifeq ($(OS),$(findstring $(OS), "beos darwin freebsd linux openbsd solaris windows")) - CFLAGS += -funsigned-char -endif - -CFLAGS += $(LEVEL_2_C_WARNINGS) - -# path to our own external headerfiles -CPPFLAGS += -I.. - -# external modules -CPPFLAGS += -I../../../kernel/gen_messaging -CPPFLAGS += -I../../writestreamglue -CPPFLAGS += -I../../readstreamglue -CPPFLAGS += -I../../inflate - -ifeq ($(OS),$(findstring $(OS), "solaris windows")) - CPPFLAGS += -I$(NAN_ZLIB)/include -endif - diff --git a/source/blender/deflate/stub/BLO_deflateSTUB.c b/source/blender/deflate/stub/BLO_deflateSTUB.c deleted file mode 100644 index fc0b038bc0a..00000000000 --- a/source/blender/deflate/stub/BLO_deflateSTUB.c +++ /dev/null @@ -1,56 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - * zlib deflate compression library stub - */ - -#include <stdio.h> - -#include "GEN_messaging.h" -#include "BLO_streamglue.h" -#include "BLO_deflate.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - - int -BLO_deflate( - unsigned char *data, - unsigned int dataIn, - struct streamGlueHeaderStruct *streamGlueHeader) -{ -#ifndef NDEBUG - fprintf(GEN_errorstream, - "Error BLO_deflate is a stub"); -#endif - return(NULL); -} - diff --git a/source/blender/deflate/stub/Makefile b/source/blender/deflate/stub/Makefile deleted file mode 100644 index 55f3211e2c9..00000000000 --- a/source/blender/deflate/stub/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# -# $Id$ -# -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. -# All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): none yet. -# -# ***** END GPL/BL DUAL LICENSE BLOCK ***** -# -# - -LIBNAME = deflateSTUB -DIR = $(OCGDIR)/blender/$(LIBNAME) - -include nan_compile.mk - -ifeq ($(OS),$(findstring $(OS), "beos darwin freebsd linux openbsd solaris windows")) - CFLAGS += -funsigned-char -endif - -CFLAGS += $(LEVEL_2_C_WARNINGS) - -# path to our own external headerfiles -CPPFLAGS += -I.. - -# external modules -CPPFLAGS += -I../../../kernel/gen_messaging -CPPFLAGS += -I../../streamglue - -ifeq ($(OS),$(findstring $(OS), "solaris windows")) - CPPFLAGS += -I$(NAN_ZLIB)/include -endif - diff --git a/source/blender/deflate/test/Makefile b/source/blender/deflate/test/Makefile deleted file mode 100644 index 25116d51f5c..00000000000 --- a/source/blender/deflate/test/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# -# $Id$ -# -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. -# All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): none yet. -# -# ***** END GPL/BL DUAL LICENSE BLOCK ***** -# -# Bounces make to subdirectories. - -SOURCEDIR = source/blender/deflate/test -DIRS = stubbed - -include nan_subdirs.mk diff --git a/source/blender/deflate/test/stubbed/Makefile b/source/blender/deflate/test/stubbed/Makefile deleted file mode 100644 index e8b597f068d..00000000000 --- a/source/blender/deflate/test/stubbed/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -# -# $Id$ -# -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. -# All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): none yet. -# -# ***** END GPL/BL DUAL LICENSE BLOCK ***** -# -# Make a little test for the sys_types replacement. -# - -DIR = $(OCGDIR)/blender/deflate/test -ALLTARGETS = $(DIR)/stubbed_test - -include nan_compile.mk - -CFLAGS += -funsigned-char - -# this module's header -CPPFLAGS += -I../.. - -# external headers -CPPFLAGS += -I../../../readstreamglue -CPPFLAGS += -I../../../writestreamglue - -################################################################# -# libs -TESTLIBS = $(OCGDIR)/blender/deflate/$(DEBUG_DIR)libdeflate.a -TESTLIBS += $(OCGDIR)/blender/writestreamglueSTUB/$(DEBUG_DIR)libwritestreamglueSTUB.a -TESTLIBS += $(OCGDIR)/kernel/gen_messaging/$(DEBUG_DIR)libgen_messaging.a - -ifeq ($(OS),$(findstring $(OS), "freebsd linux")) - TESTLIBS += -lz -endif - -ifeq ($(OS),windows) - TESTLIBS += ws2_32.lib - TESTLIBS += $(NAN_ZLIB)/lib/libz.a -endif - -# There's hardly anything to debug here, so forget about it. -$(DIR)/stubbed_test: $(OBJS) - $(CC) $(OBJS) $(TESTLIBS) -o $(DIR)/stubbed_test - -clean:: - $(RM) $(DIR)/stubbed_test - -test:: $(DIR)/stubbed_test - $(DIR)/stubbed_test $(NAN_TEST_VERBOSITY) diff --git a/source/blender/deflate/test/stubbed/stubbed.c b/source/blender/deflate/test/stubbed/stubbed.c deleted file mode 100644 index 9f1d03e780e..00000000000 --- a/source/blender/deflate/test/stubbed/stubbed.c +++ /dev/null @@ -1,207 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -/* - * Unit test for the deflater - * - * The deflater compresses data, using the zlib compression - * library. The BLO_deflate module wraps this. It writes the - * compressed data as well. - * - * Tested functions - * - * - BLO_deflate (from BLO_deflate.h) - * - * Commandline arguments: <verbosity> - * verbosity: 0 - print nothing - * 1 - print the results only - * 2 - print everything - * - * */ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> - -#include "BLO_deflate.h" -#include "BLO_writeStreamGlue.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -struct streamGlueControlStruct *Global_streamGlueControl; - -void printStreamGlueHeader(struct streamGlueHeaderStruct *s) -{ - int i = 0; - char* c; - - fprintf(stderr,"| |- streamGlueHeader: %p\n", - s); - fprintf(stderr,"| |- magic: %c\n", - s->magic); - fprintf(stderr,"| |- totalStreamLength: %x hex (%x reversed)," - " %d dec (%d reversed)\n", - s->totalStreamLength, - ntohl(s->totalStreamLength), - s->totalStreamLength, - ntohl(s->totalStreamLength)); - fprintf(stderr,"| |- dataProcessorType: %d (%d reversed)\n", - s->dataProcessorType, - ntohl(s->dataProcessorType)); - fprintf(stderr,"| |- crc: %x hex, (%d dec)\n", - s->crc, - s->crc); - fprintf(stderr,"|\n"); - fprintf(stderr,"|-- Memory dump (starting at %p):", s); - c = (char*) s; - for(i = 0; i < STREAMGLUEHEADERSIZE; i+=4, c+=4) - fprintf(stderr,"%02x%02x%02x%02x-", - *c, - *(c+1) , - *(c+2), - *(c+3) ); - fprintf(stderr,"\n|\n"); - -} - - - -int main (int argc, char *argv[]) -{ - int verbose = 0; - int error_status = 0; - int retval = 0; - struct streamGlueHeaderStruct *streamGlueHeader; - int datachunksize = 12345; - char* datachunk = NULL; - int i = 0; - char* dataptr = NULL; - int sghsize = 0; - - switch (argc) { - case 2: - verbose = atoi(argv[1]); - if (verbose < 0) verbose = 0; - break; - case 1: - default: - verbose = 0; - } - - /* ----------------------------------------------------------------- */ - if (verbose > 0) { - fprintf(stderr,"\n*** Deflate test with stubs\n|\n"); - } - /* ----------------------------------------------------------------- */ - /* We need: - * 1 - a data chunk - * 2 - the bytecount - * 3 - a streamglueheader - * The streamglueheader contains some stats about the datachunk. - */ - - /* because of stupid lib dependencies. */ - Global_streamGlueControl = streamGlueControlConstructor(); - - - /* 2: the size */ - datachunksize = 12345; - - /* 1: a data chunk. We fill it with some numbers */ - datachunk = (char*) malloc(datachunksize); - - /* an ascending-ish thingy */ - dataptr = datachunk; - for (i = 0 ; - i < datachunksize; - i++, dataptr++) { - *dataptr = (i % 0xFF); - } - - /* 3: the streamglue header */ - sghsize = STREAMGLUEHEADERSIZE; - if (verbose > 1) { - fprintf(stderr,"|-- Allocating %d bytes for the header.\n", - sghsize); - } - streamGlueHeader = malloc(sghsize); - streamGlueHeader->magic = 'A'; - streamGlueHeader->totalStreamLength = 0; - streamGlueHeader->dataProcessorType = - htonl(0x2); - streamGlueHeader->crc = 0; - - - if (verbose > 1) { - fprintf(stderr,"|\n"); - fprintf(stderr,"|-- Will call BLO_deflate with args:\n"); - fprintf(stderr,"| |- datachunk pointing to %p\n", - datachunk); - fprintf(stderr,"| |- datachunksize: %d\n", - datachunksize); - printStreamGlueHeader(streamGlueHeader); - fprintf(stderr,"| \n"); - } - - retval = - BLO_deflate( - datachunk, - datachunksize, - streamGlueHeader); - - if (verbose > 1) { - fprintf(stderr,"|-- BLO_deflate returned %d \n", retval); - } - - if (verbose > 1) { - fprintf(stderr,"|\n"); - fprintf(stderr,"|-- Arguments are now:\n"); - fprintf(stderr,"|-- Will call BLO_deflate with args:\n"); - fprintf(stderr,"| |- datachunk pointing to %p\n", - datachunk); - fprintf(stderr,"| |- datachunksize: %d\n", - datachunksize); - printStreamGlueHeader(streamGlueHeader); - fprintf(stderr,"| \n"); - } - - - /* ----------------------------------------------------------------- */ - if (verbose > 0) { - fprintf(stderr,"|\n*** Finished test\n\n"); - } - exit(error_status); -} - -/* eof */ |