1# See the file LICENSE for redistribution information.
2#
3# Copyright (c) 1999,2008 Oracle.  All rights reserved.
4#
5# $Id: env009.tcl,v 12.7 2008/01/08 20:58:53 bostic Exp $
6#
7# TEST	env009
8# TEST	Test calls to all the various stat functions.  We have several
9# TEST	sprinkled throughout the test suite, but this will ensure that
10# TEST	we run all of them at least once.
11proc env009 { } {
12	source ./include.tcl
13
14	puts "Env009: Various stat functions test."
15
16	env_cleanup $testdir
17	puts "\tEnv009.a: Setting up env and a database."
18
19	set e [berkdb_env -create -home $testdir -txn]
20	error_check_good dbenv [is_valid_env $e] TRUE
21	set dbbt [berkdb_open -create -btree $testdir/env009bt.db]
22	error_check_good dbopen [is_valid_db $dbbt] TRUE
23	set dbh [berkdb_open -create -hash $testdir/env009h.db]
24	error_check_good dbopen [is_valid_db $dbh] TRUE
25	set dbq [berkdb_open -create -queue $testdir/env009q.db]
26	error_check_good dbopen [is_valid_db $dbq] TRUE
27
28	puts "\tEnv009.b: Setting up replication master and client envs."
29	replsetup $testdir/MSGQUEUEDIR
30	set masterdir $testdir/MASTERDIR
31	set clientdir $testdir/CLIENTDIR
32	file mkdir $masterdir
33	file mkdir $clientdir
34
35	repladd 1
36	set repenv(M) [berkdb_env -create -home $masterdir \
37	    -txn -rep_master -rep_transport [list 1 replsend]]
38	repladd 2
39	set repenv(C) [berkdb_env -create -home $clientdir \
40	    -txn -rep_client -rep_transport [list 2 replsend]]
41
42	set rlist {
43	{ "lock_stat" "Maximum locks" "Env009.c" $e }
44	{ "log_stat" "Magic" "Env009.d" "$e" }
45	{ "mpool_stat" "Number of caches" "Env009.e" "$e"}
46	{ "txn_stat" "Maximum txns" "Env009.f" "$e" }
47	{ "rep_stat" "{Environment ID} 1" "Env009.g (Master)" "$repenv(M)"}
48	{ "rep_stat" "{Environment ID} 2" "Env009.h (Client)" "$repenv(C)"}
49	}
50
51	foreach set $rlist {
52		set cmd [lindex $set 0]
53		set str [lindex $set 1]
54		set msg [lindex $set 2]
55		set env [lindex $set 3]
56		puts "\t$msg: $cmd"
57		set ret [eval $env $cmd]
58		error_check_good $cmd [is_substr $ret $str] 1
59	}
60
61	puts "\tEnv009.i: btree stats"
62	set ret [$dbbt stat]
63	error_check_good $cmd [is_substr $ret "Leaf pages"] 1
64
65	puts "\tEnv009.j: hash stats"
66	set ret [$dbh stat]
67	error_check_good $cmd [is_substr $ret "Buckets"] 1
68
69	puts "\tEnv009.k: queue stats"
70	set ret [$dbq stat]
71	error_check_good $cmd [is_substr $ret "Extent size"] 1
72
73	# Clean up.
74	error_check_good dbclose [$dbbt close] 0
75	error_check_good dbclose [$dbh close] 0
76	error_check_good dbclose [$dbq close] 0
77	error_check_good masterenvclose [$repenv(M) close] 0
78	error_check_good clientenvclose [$repenv(C) close] 0
79	replclose $testdir/MSGQUEUEDIR
80	error_check_good envclose [$e close] 0
81}
82