Mercurial > hg > dmlib
annotate tests/testdmzlib.c @ 1104:8a4df37ffe13
Add header skip option to the dmzlib test.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 03 Mar 2015 23:56:12 +0200 |
parents | 21b0aedb7b5c |
children | 62ccecea1317 |
rev | line source |
---|---|
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 #include "dmlib.h" |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 #include "dmzlib.h" |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 #include "dmfile.h" |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
4 #include "dmargs.h" |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 #include <zlib.h> |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
7 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 #define SET_TMPBUF_SIZE (16 * 1024) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 |
1065 | 10 char *optInFilename = NULL, |
11 *optOutFilename = NULL; | |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 |
1104
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
13 unsigned int optSkip = 0; |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
14 unsigned int optCompressLevel = Z_BEST_COMPRESSION; |
1065 | 15 BOOL optCompress = FALSE, |
16 optUseZLIB = FALSE; | |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
18 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
19 static const DMOptArg optList[] = |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
20 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 { 0, '?', "help", "Show this help", OPT_NONE }, |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 { 1, 'q', "quiet", "Decrease verbosity", OPT_NONE }, |
1065 | 23 { 2, 'Z', "zlib", "Use ZLIB instead of dmzlib", OPT_NONE }, |
24 { 3, 'c', "compress", "Compress instead of decompressing (ZLIB only)", OPT_NONE }, | |
1104
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
25 { 4, 'l', "level", "Set zlib compression level 1-9", OPT_ARGREQ }, |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
26 { 5, 's', "skip", "Skip bytes from input start", OPT_ARGREQ }, |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
27 }; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
28 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
29 static const int optListN = sizeof(optList) / sizeof(optList[0]); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
32 void argShowHelp() |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
34 dmPrintBanner(stdout, dmProgName, "[options] [input filename] [output filename]"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 dmArgsPrintHelp(stdout, optList, optListN, 0); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
39 BOOL argHandleOpt(const int optN, char *optArg, char *currArg) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 (void) currArg; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 switch (optN) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
44 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
45 case 0: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
46 argShowHelp(); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
47 exit(0); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
48 break; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
49 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
50 case 1: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
51 dmVerbosity = 0; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
52 break; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 |
1065 | 54 case 2: |
55 optUseZLIB = TRUE; | |
56 break; | |
1066 | 57 |
1065 | 58 case 3: |
59 optCompress = TRUE; | |
60 break; | |
61 | |
1104
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
62 case 4: |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
63 if (!dmGetIntVal(optArg, &optCompressLevel) || |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
64 optCompressLevel < 1 || optCompressLevel > 9) |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
66 dmErrorMsg("Invalid compression level argument '%s', must be 1 .. 9.\n", optArg); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
67 return FALSE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 break; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
70 |
1104
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
71 case 5: |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
72 if (!dmGetIntVal(optArg, &optSkip)) |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
73 { |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
74 dmErrorMsg("Invalid skip value.\n", optArg); |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
75 return FALSE; |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
76 } |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
77 break; |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
78 |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
79 default: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
80 return FALSE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
81 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
82 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
83 return TRUE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
84 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
85 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
86 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
87 BOOL argHandleFile(char *currArg) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 if (optInFilename == NULL) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 optInFilename = currArg; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
91 else |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 if (optOutFilename == NULL) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 optOutFilename = currArg; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 else |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 dmErrorMsg("Excess filenames specified.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 return FALSE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 return TRUE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
101 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
102 |
1065 | 103 int dmTestDMZlib(FILE *inFile, FILE *outFile, size_t *inSize, size_t *outSize, BOOL compress, int level) |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
104 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
105 Uint8 *inBuffer = NULL, *outBuffer = NULL; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
106 DMZLibContext ctx; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
107 int ret; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
108 |
1065 | 109 (void) level; |
110 | |
111 if (compress) | |
112 { | |
113 ret = dmError(DMERR_NOT_SUPPORTED, | |
114 "Compression is not supported with dmzlib.\n"); | |
115 goto out; | |
116 } | |
117 | |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
118 if ((ret = dmReadDataFile(inFile, "-", &inBuffer, inSize)) != DMERR_OK) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
119 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
120 dmErrorMsg("Failed to read file.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
121 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
122 } |
1066 | 123 |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
124 if ((outBuffer = dmMalloc(SET_TMPBUF_SIZE)) == NULL) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
125 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
126 ret = dmError(DMERR_MALLOC, |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 "Malloc failed.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 // Initialize decompression structures |
1076
21b0aedb7b5c
Also initialize DMZLibContext.inBufferStart where needed.
Matti Hamalainen <ccr@tnsp.org>
parents:
1074
diff
changeset
|
132 ctx.inBuffer = ctx.inBufferStart = inBuffer; |
1074
e98bc627ad08
Rename dmzlib structure members.
Matti Hamalainen <ccr@tnsp.org>
parents:
1068
diff
changeset
|
133 ctx.inBufferEnd = inBuffer + *inSize; |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
134 |
1074
e98bc627ad08
Rename dmzlib structure members.
Matti Hamalainen <ccr@tnsp.org>
parents:
1068
diff
changeset
|
135 ctx.outBuffer = ctx.outBufferStart = outBuffer; |
e98bc627ad08
Rename dmzlib structure members.
Matti Hamalainen <ccr@tnsp.org>
parents:
1068
diff
changeset
|
136 ctx.outBufferEnd = outBuffer + SET_TMPBUF_SIZE; |
e98bc627ad08
Rename dmzlib structure members.
Matti Hamalainen <ccr@tnsp.org>
parents:
1068
diff
changeset
|
137 ctx.expandable = TRUE; |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
138 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
139 // Attempt decompression |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
140 if ((ret = dmZLibParseHeader(&ctx, TRUE)) != DMERR_OK) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
142 dmErrorMsg("Error parsing ZLIB header: %d, %s\n", ret, dmErrorStr(ret)); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
143 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
144 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
145 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
146 if ((ret = dmZLibDecode(&ctx)) != DMERR_OK) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
147 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
148 dmErrorMsg("Error in ZLIB decompress: %d, %s\n", ret, dmErrorStr(ret)); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
149 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
150 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
151 |
1074
e98bc627ad08
Rename dmzlib structure members.
Matti Hamalainen <ccr@tnsp.org>
parents:
1068
diff
changeset
|
152 outBuffer = ctx.outBufferStart; |
e98bc627ad08
Rename dmzlib structure members.
Matti Hamalainen <ccr@tnsp.org>
parents:
1068
diff
changeset
|
153 *outSize = ctx.outBuffer - ctx.outBufferStart; |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
154 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 if (fwrite(outBuffer, sizeof(Uint8), *outSize, outFile) != *outSize) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
157 ret = dmError(DMERR_FWRITE, "File write error.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
158 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
160 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
161 out: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
162 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 dmFree(inBuffer); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
164 dmFree(outBuffer); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
165 return ret; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
168 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
169 int dmTestZlib(FILE *inFile, FILE *outFile, size_t *inSize, size_t *outSize, BOOL compress, int level) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
170 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
171 Uint8 *inBuffer = NULL, *outBuffer = NULL; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
172 int zret, zinit = FALSE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
173 int ret = DMERR_OK; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
174 z_stream zstr; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
175 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
176 dmMsg(0, "Operating mode: %s\n", |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
177 compress ? "compress" : "decompress"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
178 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
179 if ((inBuffer = malloc(SET_TMPBUF_SIZE)) == NULL || |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
180 (outBuffer = malloc(SET_TMPBUF_SIZE)) == NULL) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
181 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
182 ret = dmError(DMERR_MALLOC, "Malloc failed.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
183 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
184 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
185 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
186 memset(&zstr, 0, sizeof(zstr)); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
187 if (compress) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
188 zret = deflateInit(&zstr, level); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
189 else |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
190 zret = inflateInit(&zstr); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
191 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
192 if (zret != Z_OK) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
193 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
194 ret = dmError(DMERR_INIT_FAIL, "Zlib init fail.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
195 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
196 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
197 zinit = TRUE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
198 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
199 // Initialize compression streams |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
200 zret = Z_OK; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
201 *outSize = 0; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
202 while (!feof(inFile) && zret == Z_OK) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
203 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
204 zstr.avail_in = fread(inBuffer, sizeof(Uint8), SET_TMPBUF_SIZE, inFile); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
205 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 zstr.next_in = inBuffer; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
207 zstr.next_out = outBuffer; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
208 zstr.avail_out = SET_TMPBUF_SIZE; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
209 zstr.total_out = 0; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
210 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
211 if (compress) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
212 zret = deflate(&zstr, Z_FULL_FLUSH); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
213 else |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
214 zret = inflate(&zstr, Z_FULL_FLUSH); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
215 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
216 if (zret == Z_OK && zstr.total_out > 0) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
217 { |
1068 | 218 *outSize += zstr.total_out; |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 if (fwrite(outBuffer, sizeof(Uint8), zstr.total_out, outFile) != zstr.total_out) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
220 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
221 ret = dmError(DMERR_FWRITE, |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
222 "File write error.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
223 goto out; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
224 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
225 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
226 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
227 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
228 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
229 switch (zret) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
230 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
231 case Z_OK: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
232 break; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
233 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
234 case Z_ERRNO: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
235 dmErrorMsg("Error: errno\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
236 break; |
1066 | 237 |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
238 case Z_STREAM_END: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
239 dmErrorMsg("Stream end.\n"); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
240 break; |
1066 | 241 |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
242 default: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
243 ret = dmError(DMERR_COMPRESSION, |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
244 "Error: %d, %s\n", zret, zError(zret)); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
245 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
246 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
247 out: |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
248 *inSize = zstr.total_in; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
249 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
250 if (zinit) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
251 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
252 if (compress) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
253 deflateEnd(&zstr); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
254 else |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
255 inflateEnd(&zstr); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
256 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
257 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
258 dmFree(inBuffer); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
259 dmFree(outBuffer); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
260 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
261 return ret; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
262 } |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
263 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
264 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
265 int main(int argc, char *argv[]) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
266 { |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
267 FILE *inFile = NULL, *outFile = NULL; |
1067
b3a54ecdb86f
Initialize output and input size variables.
Matti Hamalainen <ccr@tnsp.org>
parents:
1066
diff
changeset
|
268 size_t inSize = 0, outSize = 0; |
1065 | 269 int ret; |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
270 |
1065 | 271 dmInitProg("testdmzlib", "ZLIB/dmzlib tester", NULL, NULL, NULL); |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
272 dmVerbosity = 1; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
273 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
274 if (!dmArgsProcess(argc, argv, optList, optListN, |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
275 argHandleOpt, argHandleFile, OPTH_BAILOUT)) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
276 exit(1); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
277 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
278 // Input and output files |
1065 | 279 if (optInFilename == NULL) |
280 inFile = stdin; | |
281 else | |
282 if ((inFile = fopen(optInFilename, "rb")) == NULL) | |
283 { | |
284 int res = dmGetErrno(); | |
285 dmErrorMsg("Failed to open input file '%s': %s\n", | |
286 optInFilename, dmErrorStr(res)); | |
287 goto out; | |
288 } | |
1066 | 289 |
1065 | 290 if (optOutFilename == NULL) |
291 outFile = stdout; | |
292 else | |
293 if ((outFile = fopen(optOutFilename, "wb")) == NULL) | |
294 { | |
295 int res = dmGetErrno(); | |
296 dmErrorMsg("Failed to open output file '%s': %s\n", | |
297 optOutFilename, dmErrorStr(res)); | |
298 goto out; | |
299 } | |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
300 |
1104
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
301 if (optSkip > 0 && DM_FSEEK64(inFile, optSkip, SEEK_CUR) != 0) |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
302 { |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
303 int res = dmGetErrno(); |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
304 dmErrorMsg("Failed to seek in input stream: %s\n", |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
305 dmErrorStr(res)); |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
306 goto out; |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
307 } |
8a4df37ffe13
Add header skip option to the dmzlib test.
Matti Hamalainen <ccr@tnsp.org>
parents:
1076
diff
changeset
|
308 |
1065 | 309 if (optUseZLIB) |
310 ret = dmTestZlib(inFile, outFile, &inSize, &outSize, optCompress, optCompressLevel); | |
311 else | |
312 ret = dmTestDMZlib(inFile, outFile, &inSize, &outSize, optCompress, optCompressLevel); | |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
313 |
1065 | 314 dmMsg(0, "[%d] In %d, out %d bytes.\n", ret, inSize, outSize); |
315 | |
316 out: | |
1064
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
317 // Cleanup |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
318 if (outFile != NULL) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
319 fclose(outFile); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
320 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
321 if (inFile != NULL) |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
322 fclose(inFile); |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
323 |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
324 return 0; |
a6c5be712b53
Add dmzlib / zlib test utility.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
325 } |