usage() {
puts(
"Usage:\n"
- "tbtreetest -b [-r -c COUNT] \n"
+ "tbtreetest -b [-r -c COUNT -f] | -s [ -c COUNT ]\n"
);
exit(1);
}
#define NO_MODE 0
#define MODE_BTREE 1
+#define MODE_SFX 2
+static char *symbols="qwertyuiopasdfghjklzxcvbnm1234567890";
+static int symbolslen=0;
int
main(int argn, char *argv[]) {
int mode=NO_MODE;
- int isrnd=0, count=10,i;
+ int isrnd=0, count=10,i, isfind=0;
opentlog(TL_OPEN_STDERR,TL_DEBUG, NULL);
+ symbolslen=strlen(symbols);
+
- while((i=getopt(argn,argv,"brc:")) != EOF) {
+ while((i=getopt(argn,argv,"sbrc:f")) != EOF) {
switch(i) {
+ case 'f':
+ isfind=1;
+ break;
case 'r':
isrnd=1;
break;
if ( mode ) usage();
mode = MODE_BTREE;
break;
+ case 's':
+ if ( mode ) usage();
+ mode = MODE_SFX;
+ break;
case 'c':
count=atoi(optarg);
break;
}
if ( mode==MODE_BTREE ) {
- int j, cnt,c;
- for(i=0;i<count;i++) {
- printf("I\t%d\t", (int)( (isrnd) ? random()%count : i ));
- cnt=1+random()%512;
- for(j=0;j<cnt;j++) {
- do { c=random()%128; } while ( !isalnum(c) );
- fputc(c, stdout);
+ int cnt;
+ if ( isfind )
+ for(i=0;i<count;i++)
+ printf("S\t%d\n", (int)( (isrnd) ? random()%count : i ));
+ else
+ for(i=0;i<count;i++) {
+ printf("I\t%d\t", (int)( (isrnd) ? random()%count : i ));
+ cnt=1+random()%512;
+ while(cnt-->0)
+ fputc( symbols[ random()%symbolslen ], stdout);
+ fputc('\n', stdout);
}
+ } else if ( mode==MODE_SFX ) {
+ int cnt;
+ for(i=0;i<count;i++) {
+ cnt=1+random()%10;
+ while(cnt-->0)
+ fputc( tolower(symbols[ random()%symbolslen ]), stdout);
fputc('\n', stdout);
}
} else {