*/
uint32 unihash(const unihash_info *i, const void *p, size_t sz)
-{
- return (UNIHASH(i, p, sz));
-}
-
-/*----- Test rig ----------------------------------------------------------*/
-
-#ifdef TEST_RIG
-
-#include "testrig.h"
-
-static int verify(dstr *v)
-{
- unihash_info ui;
- uint32 k;
- uint32 h, hh;
- size_t n;
- int i, c;
- const char *p;
- int ok = 1;
-
- static const int step[] = { 0, 1, 5, 6, 7, 8, 23, -1 };
-
- /* --- Set up for using this key --- */
-
- k = *(uint32 *)v[0].buf;
- h = *(uint32 *)v[2].buf;
- unihash_setkey(&ui, k);
-
- /* --- Hash the data a lot --- */
-
- for (i = 0; step[i] >= 0; i++) {
- c = step[i];
- if (!c)
- hh = unihash(&ui, v[1].buf, v[1].len);
- else {
- hh = UNIHASH_INIT(&ui);
- p = v[1].buf;
- n = v[1].len;
- while (n) {
- if (c > n) c = n;
- hh = unihash_hash(&ui, hh, p, c);
- p += c;
- n -= c;
- }
- }
- if (h != hh) {
- ok = 0;
- fprintf(stderr, "\nunihash failed\n");
- fprintf(stderr, " key = %08lx\n", (unsigned long)k);
- fprintf(stderr, " data = %s\n", v[1].buf);
- fprintf(stderr, " step = %d\n", step[i]);
- fprintf(stderr, " expected = %08lx\n", (unsigned long)h);
- fprintf(stderr, " computed = %08lx\n", (unsigned long)hh);
- }
- }
- return (ok);
-}
-
-static const test_chunk tests[] = {
- { "hash", verify, { &type_uint32, &type_string, &type_uint32 } },
- { 0, 0, { 0 } }
-};
-
-int main(int argc, char *argv[])
-{
- test_run(argc, argv, tests, "unihash.in");
- return (0);
-}
-
-#endif
+ { return (UNIHASH(i, p, sz)); }
/*----- That's all, folks -------------------------------------------------*/