X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Flizard-test.c;h=73200d19dcf9bb4a926335ecca1b87fb67f0d03d;hb=c412387ccb174b79bbcf461633f70728577a7532;hp=6ab7d8d007cf61d861088ca654880c661fc3fd1a;hpb=491ecaadfc482f29aadfd02e60391fa8de20ff9f;p=libucw.git diff --git a/lib/lizard-test.c b/lib/lizard-test.c index 6ab7d8d0..73200d19 100644 --- a/lib/lizard-test.c +++ b/lib/lizard-test.c @@ -54,6 +54,7 @@ main(int argc, char **argv) void *mi, *mo; int li, lo; + uns adler = 0; struct stat st; stat(argv[optind], &st); @@ -67,7 +68,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 +78,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 +95,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); } @@ -101,13 +110,10 @@ main(int argc, char **argv) else smaller_li = 0; struct lizard_buffer *buf = lizard_alloc(); - byte *ptr; - int lv = lizard_decompress_safe(mo, buf, crash ? smaller_li : li, &ptr); - printf("-> %d ", lv); - fflush(stdout); - if (lv < 0) - printf("err:%m "); - else if (lv != li || memcmp(mi, ptr, li)) + byte *ptr = lizard_decompress_safe(mo, buf, crash ? smaller_li : li); + if (!ptr) + printf("err: %m"); + else if (memcmp(mi, ptr, li)) printf("WRONG"); else printf("OK");