]> mj.ucw.cz Git - libucw.git/blobdiff - lib/lizard-test.c
The asio.test should be performed only in threaded mode.
[libucw.git] / lib / lizard-test.c
index 6ab7d8d007cf61d861088ca654880c661fc3fd1a..3973cfcd8d4197701b46a3bf026976505dc1f45f 100644 (file)
@@ -1,5 +1,5 @@
 #include "lib/lib.h"
 #include "lib/lib.h"
-#include "lib/conf.h"
+#include "lib/getopt.h"
 #include "lib/fastbuf.h"
 #include "lib/lizard.h"
 #include <stdio.h>
 #include "lib/fastbuf.h"
 #include "lib/lizard.h"
 #include <stdio.h>
@@ -54,6 +54,7 @@ main(int argc, char **argv)
 
   void *mi, *mo;
   int li, lo;
 
   void *mi, *mo;
   int li, lo;
+  uns adler = 0;
 
   struct stat st;
   stat(argv[optind], &st);
 
   struct stat st;
   stat(argv[optind], &st);
@@ -67,7 +68,8 @@ main(int argc, char **argv)
   else
   {
     lo = bgetl(fi);
   else
   {
     lo = bgetl(fi);
-    li -= 4;
+    adler = bgetl(fi);
+    li -= 8;
   }
   mi = xmalloc(li);
   mo = xmalloc(lo);
   }
   mi = xmalloc(li);
   mo = xmalloc(lo);
@@ -76,12 +78,16 @@ main(int argc, char **argv)
 
   printf("%d ", li);
   if (action == 'd')
 
   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
   fflush(stdout);
   if (action != 'd')
     lo = lizard_compress(mi, li, mo);
   else
+  {
     lo = lizard_decompress(mi, mo);
     lo = lizard_decompress(mi, mo);
+    if (adler32(mo, lo) != adler)
+      printf("wrong Adler32 ");
+  }
   printf("-> %d ", lo);
   fflush(stdout);
 
   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')
   {
     struct fastbuf *fo = bopen(argv[optind+1], O_CREAT | O_TRUNC | O_WRONLY, 1<<16);
     if (action == 'c')
+    {
       bputl(fo, li);
       bputl(fo, li);
+      bputl(fo, adler32(mi, li));
+    }
     bwrite(fo, mo, lo);
     bclose(fo);
   }
     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();
     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");
       printf("WRONG");
     else
       printf("OK");