1# See the file LICENSE for redistribution information.
2#
3# Copyright (c) 1999,2008 Oracle.  All rights reserved.
4#
5# $Id: env006.tcl,v 12.6 2008/01/08 20:58:53 bostic Exp $
6#
7# TEST	env006
8# TEST	Make sure that all the utilities exist and run.
9# TEST	Test that db_load -r options don't blow up.
10proc env006 { } {
11	source ./include.tcl
12
13	puts "Env006: Run underlying utilities."
14
15	set rlist {
16	{ "db_archive"			"Env006.a"}
17	{ "db_checkpoint"		"Env006.b"}
18	{ "db_deadlock"			"Env006.c"}
19	{ "db_dump"			"Env006.d"}
20	{ "db_load"			"Env006.e"}
21	{ "db_printlog"			"Env006.f"}
22	{ "db_recover"			"Env006.g"}
23	{ "db_stat"			"Env006.h"}
24	{ "db_upgrade"			"Env006.h"}
25	{ "db_verify"			"Env006.h"}
26	}
27	foreach pair $rlist {
28		set cmd [lindex $pair 0]
29		set msg [lindex $pair 1]
30
31		puts "\t$msg: $cmd"
32
33		set stat [catch {exec $util_path/$cmd -?} ret]
34		error_check_good $cmd $stat 1
35
36		#
37		# Check for "usage", but only check "sage" so that
38		# we can handle either Usage or usage.
39		#
40		error_check_good $cmd.err [is_substr $ret sage] 1
41	}
42
43	env_cleanup $testdir
44	set env [eval berkdb_env -create -home $testdir -txn]
45	error_check_good env_open [is_valid_env $env] TRUE
46
47	set sub SUBDB
48	foreach case { noenv env } {
49		if { $case == "env" } {
50			set envargs " -env $env "
51			set homeargs " -h $testdir "
52			set testfile env006.db
53		} else {
54			set envargs ""
55			set homeargs ""
56			set testfile $testdir/env006.db
57		}
58
59		puts "\tEnv006.i: Testing db_load -r with $case."
60		set db [eval berkdb_open -create $envargs -btree $testfile]
61		error_check_good db_open [is_valid_db $db] TRUE
62		error_check_good db_close [$db close] 0
63
64		set ret [eval \
65		    exec $util_path/db_load -r lsn $homeargs $testfile]
66		error_check_good db_load_r_lsn $ret ""
67		set ret [eval \
68		    exec $util_path/db_load -r fileid $homeargs $testfile]
69		error_check_good db_load_r_fileid $ret ""
70
71		error_check_good db_remove \
72		    [eval {berkdb dbremove} $envargs $testfile] 0
73
74		puts "\tEnv006.j: Testing db_load -r with $case and subdbs."
75		set db [eval berkdb_open -create $envargs -btree $testfile $sub]
76		error_check_good db_open [is_valid_db $db] TRUE
77		error_check_good db_close [$db close] 0
78
79		set ret [eval \
80		    exec {$util_path/db_load} -r lsn $homeargs $testfile]
81		error_check_good db_load_r_lsn $ret ""
82		set ret [eval \
83		    exec {$util_path/db_load} -r fileid $homeargs $testfile]
84		error_check_good db_load_r_fileid $ret ""
85
86		error_check_good \
87		    db_remove [eval {berkdb dbremove} $envargs $testfile] 0
88	}
89	error_check_good env_close [$env close] 0
90}
91