]> mj.ucw.cz Git - libucw.git/blobdiff - lib/sorter/sort-test.c
Squash a couple of warnings.
[libucw.git] / lib / sorter / sort-test.c
index c17333c3cb592a9c86b5cd6404c8621a2aee0a93..9a4eb4633f3f56231ece18927c5efdc675582c2e 100644 (file)
@@ -13,10 +13,28 @@ struct key {
   uns x;
 };
 
+static inline void s_write_merged(struct fastbuf *f, struct key **k, void **d, uns n, void *buf)
+{
+  bwrite(f, k[0], sizeof(struct key));
+  bwrite(f, d[0], 5);
+}
+
+static inline void s_copy_merged(struct key **keys, struct fastbuf **data, uns n, struct fastbuf *dest)
+{
+  bwrite(dest, keys[0], sizeof(struct key));
+  bbcopy(data[0], dest, 5);
+  for (uns i=1; i<n; i++)
+    bskip(data[i], 5);
+}
+
 #define SORT_KEY_REGULAR struct key
 #define SORT_PREFIX(x) s_##x
 #define SORT_INPUT_FB
 #define SORT_OUTPUT_FB
+//#define SORT_KEY_SIZE(k) 4
+#define SORT_DATA_SIZE(k) 5
+//#define SORT_UNIQUE
+#define SORT_UNIFY
 #define SORT_INT(k) (k).x
 
 #include "lib/sorter/sorter.h"
@@ -36,8 +54,13 @@ main(int argc, char **argv)
   struct fastbuf *f = bopen(argv[optind], O_RDWR | O_CREAT | O_TRUNC, 65536);
 #define N 259309
 #define K 199483
-  for (uns i=0; i<N; i++)
-    bputl(f, ((u64)i * K + 17) % N);
+  for (uns i=0; i<2*N; i++)
+    {
+      bputl(f, ((u64)i * K + 17) % N);
+      bputs(f, "12345");
+      bputl(f, ((u64)i * K + 17) % N);
+      bputs(f, "12345");
+    }
   brewind(f);
 
   log(L_INFO, "Sorting");
@@ -49,6 +72,9 @@ main(int argc, char **argv)
       uns j = bgetl(f);
       if (i != j)
        die("Discrepancy: %d instead of %d", j, i);
+      for (uns i='1'; i<='5'; i++)
+       if (bgetc(f) != i)
+         ASSERT(0);
     }
   bclose(f);