2011-09-13 17:48:33 +00:00
|
|
|
# See the file LICENSE for redistribution information.
|
|
|
|
#
|
2012-11-14 20:13:24 +00:00
|
|
|
# Copyright (c) 2010, 2012 Oracle and/or its affiliates. All rights reserved.
|
2011-09-13 17:48:33 +00:00
|
|
|
#
|
|
|
|
# $Id$
|
|
|
|
#
|
|
|
|
# TEST env019
|
|
|
|
# TEST Test that stats are correctly set and reported when
|
|
|
|
# TEST an env is accessed from a second process.
|
|
|
|
|
|
|
|
proc env019 { } {
|
|
|
|
source ./include.tcl
|
|
|
|
|
|
|
|
puts "Env019: Test stats when env is joined from a second process."
|
|
|
|
|
|
|
|
# Set up test cases.
|
|
|
|
# The first two elements are the flag and value for the original
|
|
|
|
# env. The third and fourth elements are the flag and value for
|
|
|
|
# the second process.
|
|
|
|
#
|
|
|
|
set testcases {
|
|
|
|
{ "-cachesize" "{0 1048576 1}" "-cachesize" "{0 2097152 1}" }
|
|
|
|
{ "-cachesize" "{0 2097152 1}" "-cachesize" "{0 1048576 1}" }
|
|
|
|
{ "-cachesize" "{0 2097152 1}" "-cachesize" "{0 2097152 1}" }
|
|
|
|
{ "-cachesize" "{0 1048576 1}" {} {} }
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach case $testcases {
|
|
|
|
|
|
|
|
env_cleanup $testdir
|
|
|
|
|
|
|
|
# Extract the values
|
|
|
|
set flag1 [ lindex $case 0 ]
|
|
|
|
set value1 [ lindex $case 1 ]
|
|
|
|
set flag2 [ lindex $case 2 ]
|
|
|
|
set value2 [ lindex $case 3 ]
|
|
|
|
|
|
|
|
# Set up the original env.
|
|
|
|
set e [eval {berkdb_env -create -home $testdir} $flag1 $value1 ]
|
|
|
|
error_check_good dbenv [is_valid_env $e] TRUE
|
|
|
|
|
|
|
|
# Start up a second process to join the env.
|
|
|
|
puts "$tclsh_path $test_path/wrap.tcl env019script.tcl\
|
|
|
|
$testdir/env019.log $flag2 $value2 &"
|
|
|
|
set pid [exec $tclsh_path $test_path/wrap.tcl env019script.tcl\
|
|
|
|
$testdir/env019.log $flag2 $value2 &]
|
|
|
|
|
|
|
|
watch_procs $pid 5
|
|
|
|
|
|
|
|
# Read the value observed by the second process.
|
|
|
|
set db [eval berkdb_open -env $e -btree values.db]
|
|
|
|
set get_gbytes [lindex [lindex [$db get gbytes] 0] 1]
|
|
|
|
set get_bytes [lindex [lindex [$db get bytes] 0] 1]
|
|
|
|
set get_ncache [lindex [lindex [$db get ncache] 0] 1]
|
|
|
|
|
|
|
|
# Now get the answer from memp_stat.
|
|
|
|
set set_gbytes [stat_field $e mpool_stat "Cache size (gbytes)"]
|
|
|
|
set set_bytes [stat_field $e mpool_stat "Cache size (bytes)"]
|
|
|
|
set set_ncache [stat_field $e mpool_stat "Number of caches"]
|
|
|
|
|
|
|
|
error_check_good gbytes [string equal $get_gbytes $set_gbytes] 1
|
|
|
|
error_check_good bytes [string equal $get_bytes $set_bytes] 1
|
|
|
|
error_check_good ncache [string equal $get_ncache $set_ncache] 1
|
|
|
|
error_check_good db_close [$db close] 0
|
|
|
|
error_check_good env_close [$e close] 0
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|