X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Flizard-test.c;h=22fc96e49a60cf69a4f7976c3d2bf5b9f8e7742c;hb=f282fc30d94338be07c13a86765fdbe3b2536c0c;hp=ba78e022cadd28ac52d404c31e45a921dab0f302;hpb=1134e13c17973837f02a28a35dc8dea871b80121;p=libucw.git diff --git a/lib/lizard-test.c b/lib/lizard-test.c index ba78e022..22fc96e4 100644 --- a/lib/lizard-test.c +++ b/lib/lizard-test.c @@ -1,11 +1,12 @@ #include "lib/lib.h" -#include "lib/conf.h" +#include "lib/conf2.h" #include "lib/fastbuf.h" #include "lib/lizard.h" #include #include #include #include +#include #include static char *options = CF_SHORT_OPTS "cdtx"; @@ -34,7 +35,7 @@ main(int argc, char **argv) uns action = 't'; uns crash = 0; log_init(argv[0]); - while ((opt = cf_getopt(argc, argv, options, CF_NO_LONG_OPTS, NULL)) >= 0) + while ((opt = cf_get_opt(argc, argv, options, CF_NO_LONG_OPTS, NULL)) >= 0) switch (opt) { case 'c': @@ -54,6 +55,7 @@ main(int argc, char **argv) void *mi, *mo; int li, lo; + uns adler = 0; struct stat st; stat(argv[optind], &st); @@ -67,7 +69,8 @@ main(int argc, char **argv) else { lo = bgetl(fi); - li -= 4; + adler = bgetl(fi); + li -= 8; } mi = xmalloc(li); mo = xmalloc(lo); @@ -76,12 +79,16 @@ main(int argc, char **argv) printf("%d ", li); if (action == 'd') - printf("->expected %d ", lo); + printf("->expected %d (%08x) ", lo, adler); fflush(stdout); if (action != 'd') lo = lizard_compress(mi, li, mo); else + { lo = lizard_decompress(mi, mo); + if (adler32(mo, lo) != adler) + printf("wrong Adler32 "); + } printf("-> %d ", lo); fflush(stdout); @@ -89,7 +96,10 @@ main(int argc, char **argv) { struct fastbuf *fo = bopen(argv[optind+1], O_CREAT | O_TRUNC | O_WRONLY, 1<<16); if (action == 'c') + { bputl(fo, li); + bputl(fo, adler32(mi, li)); + } bwrite(fo, mo, lo); bclose(fo); }