2 * This is a really simple stupid standalone program which will find two
3 * filenames with the same CRC, used to test the directory iterator.
5 * cc -I /usr/src/sys test_dupkey.c /usr/src/sys/libkern/crc32.c \
6 * /usr/src/sys/libkern/icrc32.c -o test_dupkey
8 * $DragonFly: src/sbin/hammer/test_dupkey.c,v 1.1 2008/06/26 04:07:57 dillon Exp $
11 #include "hammer_util.h"
13 static uint32_t namekey(const char *name
);
14 static void randomname(char *name
);
16 uint32_t bitmap
[0x80000000U
/ 32];
19 main(int ac
, char **av
)
28 srandom(0); /* reproducable random sequence number */
33 ptr
= &bitmap
[key
/ 32];
34 mask
= 1 << (key
& 31);
41 printf("duplicate found at count %d key %08x\n", count
, key
);
42 printf("'%s' and", name
);
54 printf(" '%s'\n", name
);
59 namekey(const char *name
)
63 key
= crc32(name
, strlen(name
)) & 0x7FFFFFFF;
71 randomname(char *name
)
73 int len
= random() % 16 + 8;
76 for (i
= 0; i
< len
; ++i
)
77 name
[i
] = random() % 26 + 'a';