X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fsorter%2Fsort-test.c;h=34a74c723a2be2df304e48b3c0fb4b81d2ba1bc1;hb=f6d9e92d2dfc4d86e9599449cc56a3eba2bf9626;hp=3990254d27bab7f699976fd623c13a7461bfc25e;hpb=b340e1fbbfa9fcfc4c3f9ef41c84f2e86c523bdc;p=libucw.git diff --git a/lib/sorter/sort-test.c b/lib/sorter/sort-test.c index 3990254d..34a74c72 100644 --- a/lib/sorter/sort-test.c +++ b/lib/sorter/sort-test.c @@ -95,13 +95,6 @@ static inline void s2_write_merged(struct fastbuf *f, struct key2 **k, void **d bwrite(f, k[0], sizeof(struct key2)); } -static inline void s2_copy_merged(struct key2 **k, struct fastbuf **d UNUSED, uns n, struct fastbuf *dest) -{ - for (uns i=1; icnt += k[i]->cnt; - bwrite(dest, k[0], sizeof(struct key2)); -} - #define SORT_KEY_REGULAR struct key2 #define SORT_PREFIX(x) s2_##x #define SORT_INPUT_FB @@ -567,6 +560,47 @@ test_graph(uns mode, u64 size) bclose(f); } +/*** Simple 8-byte integer keys ***/ + +struct key6 { + u64 x; +}; + +#define SORT_KEY_REGULAR struct key6 +#define SORT_PREFIX(x) s6_##x +#define SORT_INPUT_FB +#define SORT_OUTPUT_FB +#define SORT_UNIQUE +#define SORT_INT64(k) (k).x + +#include "lib/sorter/sorter.h" + +static void +test_int64(int mode, u64 size) +{ + u64 N = size ? nextprime(MIN(size/8, 0xffff0000)) : 0; + u64 K = N/4*3; + log(L_INFO, ">>> 64-bit integers (%s, N=%llu)", ((char *[]) { "increasing", "decreasing", "random" })[mode], N); + + struct fastbuf *f = bopen_tmp(65536); + for (u64 i=0; i