• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/db-4.8.30/build_vxworks/test_micro/
1/*
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 2005-2009 Oracle.  All rights reserved.
5 *
6 * $Id$
7 */
8#include "bench.h"
9
10static int b_curalloc_usage(void);
11
12int
13b_curalloc(int argc, char *argv[])
14{
15	extern char *optarg;
16	extern int optind, __db_getopt_reset;
17	DB *dbp;
18	DBC *curp;
19	int ch, i, count;
20
21	count = 100000;
22	__db_getopt_reset = 1;
23	while ((ch = getopt(argc, argv, "c:")) != EOF)
24		switch (ch) {
25		case 'c':
26			count = atoi(optarg);
27			break;
28		case '?':
29		default:
30			return (b_curalloc_usage());
31		}
32	argc -= optind;
33	argv += optind;
34	if (argc != 0)
35		return (b_curalloc_usage());
36
37	/* Create the database. */
38	DB_BENCH_ASSERT(db_create(&dbp, NULL, 0) == 0);
39	dbp->set_errfile(dbp, stderr);
40
41#if DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1
42	DB_BENCH_ASSERT(dbp->open(
43	    dbp, NULL, TESTFILE, NULL, DB_BTREE, DB_CREATE, 0666) == 0);
44#else
45	DB_BENCH_ASSERT(
46	    dbp->open(dbp, TESTFILE, NULL, DB_BTREE, DB_CREATE, 0666) == 0);
47#endif
48
49	/* Allocate a cursor count times. */
50	TIMER_START;
51	for (i = 0; i < count; ++i) {
52		DB_BENCH_ASSERT(dbp->cursor(dbp, NULL, &curp, 0) == 0);
53		DB_BENCH_ASSERT(curp->c_close(curp) == 0);
54	}
55	TIMER_STOP;
56
57	printf("# %d cursor allocations\n", count);
58	TIMER_DISPLAY(count);
59
60	DB_BENCH_ASSERT(dbp->close(dbp, 0) == 0);
61
62	return (0);
63}
64
65static int
66b_curalloc_usage()
67{
68	(void)fprintf(stderr, "usage: b_curalloc [-c count]\n");
69	return (EXIT_FAILURE);
70}
71