1 /*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Margo Seltzer.
7 *
8 * %sccs.include.redist.c%
9 */
10
11 #ifndef lint
12 static char copyright[] =
13 "@(#) Copyright (c) 1991, 1993\n\
14 The Regents of the University of California. All rights reserved.\n";
15 #endif /* not lint */
16
17 #ifndef lint
18 static char sccsid[] = "@(#)tverify.c 8.1 (Berkeley) 06/04/93";
19 #endif /* not lint */
20
21 #include <sys/types.h>
22 #include <sys/file.h>
23 #include <stdio.h>
24 #include <db.h>
25
26 #define INITIAL 25000
27 #define MAXWORDS 25000 /* # of elements in search table */
28
29 typedef struct { /* info to be stored */
30 int num, siz;
31 } info;
32
33 char wp1[8192];
34 char wp2[8192];
main(argc,argv)35 main(argc, argv)
36 char **argv;
37 {
38 DBT key, res;
39 DB *dbp;
40 HASHINFO ctl;
41 int trash;
42 int stat;
43
44 int i = 0;
45
46 ctl.nelem = INITIAL;
47 ctl.hash = NULL;
48 ctl.bsize = 64;
49 ctl.ffactor = 1;
50 ctl.cachesize = 1024 * 1024; /* 1 MEG */
51 ctl.lorder = 0;
52 if (!(dbp = dbopen( "hashtest", O_RDONLY, 0400, DB_HASH, &ctl))) {
53 /* create table */
54 fprintf(stderr, "cannot open: hash table\n" );
55 exit(1);
56 }
57
58 key.data = wp1;
59 while ( fgets(wp1, 8192, stdin) &&
60 fgets(wp2, 8192, stdin) &&
61 i++ < MAXWORDS) {
62 /*
63 * put info in structure, and structure in the item
64 */
65 key.size = strlen(wp1);
66
67 stat = (dbp->get)(dbp, &key, &res,0);
68 if (stat < 0) {
69 fprintf ( stderr, "Error retrieving %s\n", key.data );
70 exit(1);
71 } else if ( stat > 0 ) {
72 fprintf ( stderr, "%s not found\n", key.data );
73 exit(1);
74 }
75 if ( memcmp ( res.data, wp2, res.size ) ) {
76 fprintf ( stderr, "data for %s is incorrect. Data was %s. Should have been %s\n", key.data, res.data, wp2 );
77 }
78 }
79 (dbp->close)(dbp);
80 exit(0);
81 }
82