~vlad-lesin/percona-server/mysql-5.0.33-original

« back to all changes in this revision

Viewing changes to bdb/test/rpc005.tcl

  • Committer: Vlad Lesin
  • Date: 2012-07-31 09:21:34 UTC
  • Revision ID: vladislav.lesin@percona.com-20120731092134-zfodx022b7992wsi
VirginĀ 5.0.33

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# See the file LICENSE for redistribution information.
 
2
#
 
3
# Copyright (c) 1996-2002
 
4
#       Sleepycat Software.  All rights reserved.
 
5
#
 
6
# $Id: rpc005.tcl,v 11.4 2002/07/16 20:53:03 bostic Exp $
 
7
#
 
8
# TEST  rpc005
 
9
# TEST  Test RPC server handle ID sharing
 
10
proc rpc005 { } {
 
11
        global __debug_on
 
12
        global __debug_print
 
13
        global errorInfo
 
14
        global rpc_svc
 
15
        source ./include.tcl
 
16
 
 
17
        puts "Rpc005: RPC server handle sharing"
 
18
        if { [string compare $rpc_server "localhost"] == 0 } {
 
19
               set dpid [exec $util_path/$rpc_svc \
 
20
                   -h $rpc_testdir &]
 
21
        } else {
 
22
               set dpid [exec rsh $rpc_server $rpc_path/$rpc_svc \
 
23
                   -h $rpc_testdir &]
 
24
        }
 
25
        puts "\tRpc005.a: Started server, pid $dpid"
 
26
 
 
27
        tclsleep 2
 
28
        remote_cleanup $rpc_server $rpc_testdir $testdir
 
29
        puts "\tRpc005.b: Creating environment"
 
30
 
 
31
        set testfile "rpc005.db"
 
32
        set testfile1 "rpc005a.db"
 
33
        set subdb1 "subdb1"
 
34
        set subdb2 "subdb2"
 
35
        set home [file tail $rpc_testdir]
 
36
 
 
37
        set env [eval {berkdb_env -create -mode 0644 -home $home \
 
38
            -server $rpc_server -txn}]
 
39
        error_check_good lock_env:open [is_valid_env $env] TRUE
 
40
 
 
41
        puts "\tRpc005.c: Compare identical and different configured envs"
 
42
        set env_ident [eval {berkdb_env -home $home \
 
43
            -server $rpc_server -txn}]
 
44
        error_check_good lock_env:open [is_valid_env $env_ident] TRUE
 
45
 
 
46
        set env_diff [eval {berkdb_env -home $home \
 
47
            -server $rpc_server -txn nosync}]
 
48
        error_check_good lock_env:open [is_valid_env $env_diff] TRUE
 
49
 
 
50
        error_check_good ident:id [$env rpcid] [$env_ident rpcid]
 
51
        error_check_bad diff:id [$env rpcid] [$env_diff rpcid]
 
52
 
 
53
        error_check_good envclose [$env_diff close] 0
 
54
        error_check_good envclose [$env_ident close] 0
 
55
 
 
56
        puts "\tRpc005.d: Opening a database"
 
57
        set db [eval {berkdb_open -auto_commit -create -btree -mode 0644} \
 
58
            -env $env $testfile]
 
59
        error_check_good dbopen [is_valid_db $db] TRUE
 
60
 
 
61
        puts "\tRpc005.e: Compare identical and different configured dbs"
 
62
        set db_ident [eval {berkdb_open -btree} -env $env $testfile]
 
63
        error_check_good dbopen [is_valid_db $db_ident] TRUE
 
64
 
 
65
        set db_diff [eval {berkdb_open -btree} -env $env -rdonly $testfile]
 
66
        error_check_good dbopen [is_valid_db $db_diff] TRUE
 
67
 
 
68
        set db_diff2 [eval {berkdb_open -btree} -env $env -rdonly $testfile]
 
69
        error_check_good dbopen [is_valid_db $db_diff2] TRUE
 
70
 
 
71
        error_check_good ident:id [$db rpcid] [$db_ident rpcid]
 
72
        error_check_bad diff:id [$db rpcid] [$db_diff rpcid]
 
73
        error_check_good ident2:id [$db_diff rpcid] [$db_diff2 rpcid]
 
74
 
 
75
        error_check_good db_close [$db_ident close] 0
 
76
        error_check_good db_close [$db_diff close] 0
 
77
        error_check_good db_close [$db_diff2 close] 0
 
78
        error_check_good db_close [$db close] 0
 
79
 
 
80
        puts "\tRpc005.f: Compare with a database and subdatabases"
 
81
        set db [eval {berkdb_open -auto_commit -create -btree -mode 0644} \
 
82
            -env $env $testfile1 $subdb1]
 
83
        error_check_good dbopen [is_valid_db $db] TRUE
 
84
        set dbid [$db rpcid]
 
85
 
 
86
        set db2 [eval {berkdb_open -auto_commit -create -btree -mode 0644} \
 
87
            -env $env $testfile1 $subdb2]
 
88
        error_check_good dbopen [is_valid_db $db2] TRUE
 
89
        set db2id [$db2 rpcid]
 
90
        error_check_bad 2subdb:id $dbid $db2id
 
91
 
 
92
        set db_ident [eval {berkdb_open -btree} -env $env $testfile1 $subdb1]
 
93
        error_check_good dbopen [is_valid_db $db_ident] TRUE
 
94
        set identid [$db_ident rpcid]
 
95
 
 
96
        set db_ident2 [eval {berkdb_open -btree} -env $env $testfile1 $subdb2]
 
97
        error_check_good dbopen [is_valid_db $db_ident2] TRUE
 
98
        set ident2id [$db_ident2 rpcid]
 
99
 
 
100
        set db_diff1 [eval {berkdb_open -btree} -env $env -rdonly \
 
101
            $testfile1 $subdb1]
 
102
        error_check_good dbopen [is_valid_db $db_diff1] TRUE
 
103
        set diff1id [$db_diff1 rpcid]
 
104
 
 
105
        set db_diff2 [eval {berkdb_open -btree} -env $env -rdonly \
 
106
            $testfile1 $subdb2]
 
107
        error_check_good dbopen [is_valid_db $db_diff2] TRUE
 
108
        set diff2id [$db_diff2 rpcid]
 
109
 
 
110
        set db_diff [eval {berkdb_open -unknown} -env $env -rdonly $testfile1]
 
111
        error_check_good dbopen [is_valid_db $db_diff] TRUE
 
112
        set diffid [$db_diff rpcid]
 
113
 
 
114
        set db_diff2a [eval {berkdb_open -btree} -env $env -rdonly \
 
115
            $testfile1 $subdb2]
 
116
        error_check_good dbopen [is_valid_db $db_diff2a] TRUE
 
117
        set diff2aid [$db_diff2a rpcid]
 
118
 
 
119
        error_check_good ident:id $dbid $identid
 
120
        error_check_good ident2:id $db2id $ident2id
 
121
        error_check_bad diff:id $dbid $diffid
 
122
        error_check_bad diff2:id $db2id $diffid
 
123
        error_check_bad diff3:id $diff2id $diffid
 
124
        error_check_bad diff4:id $diff1id $diffid
 
125
        error_check_good diff2a:id $diff2id $diff2aid
 
126
 
 
127
        error_check_good db_close [$db_ident close] 0
 
128
        error_check_good db_close [$db_ident2 close] 0
 
129
        error_check_good db_close [$db_diff close] 0
 
130
        error_check_good db_close [$db_diff1 close] 0
 
131
        error_check_good db_close [$db_diff2 close] 0
 
132
        error_check_good db_close [$db_diff2a close] 0
 
133
        error_check_good db_close [$db2 close] 0
 
134
        error_check_good db_close [$db close] 0
 
135
        error_check_good env_close [$env close] 0
 
136
        tclkill $dpid
 
137
}