env007.tcl
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # See the file LICENSE for redistribution information.
  2. #
  3. # Copyright (c) 1999, 2000
  4. # Sleepycat Software.  All rights reserved.
  5. #
  6. # $Id: env007.tcl,v 11.5 2000/08/25 14:21:50 sue Exp $
  7. #
  8. # Env Test 007
  9. # Test various config file options.
  10. # 1) Make sure command line option is respected
  11. # 2) Make sure that config file option is respected
  12. # 3) Make sure that if -both- DB_CONFIG and the set_<whatever>
  13. # method is used, only the file is respected.
  14. proc env007 { } {
  15. #   env007 is essentially just a small driver that runs
  16. # env007_body twice.  First, it supplies a "set" argument
  17. # to use with environment opens, and the second time it sets
  18. # DB_CONFIG instead.
  19. #   Note that env007_body itself calls env007_run_test to run
  20. # the body of the actual test.
  21. source ./include.tcl
  22. puts "Env007: DB_CONFIG test."
  23. #
  24. # Test only those options we can easily check via stat
  25. #
  26. set rlist {
  27. { " -txn_max " "set_tx_max" "19" "31" "Env007.a: Txn Max"
  28.     "txn_stat" "Max Txns"}
  29. { " -lock_max " "set_lk_max" "19" "31" "Env007.b: Lock Max"
  30.     "lock_stat" "Max locks"}
  31. { " -log_buffer " "set_lg_bsize" "65536" "131072" "Env007.c: Log Bsize"
  32.     "log_stat" "Log record cache size"}
  33. { " -log_max " "set_lg_max" "8388608" "9437184" "Env007.d: Log Max"
  34.     "log_stat" "Maximum log file size"}
  35. }
  36. set e "berkdb env -create -mode 0644 -home $testdir -log -lock -txn "
  37. foreach item $rlist {
  38. set envarg [lindex $item 0]
  39. set configarg [lindex $item 1]
  40. set envval [lindex $item 2]
  41. set configval [lindex $item 3]
  42. set msg [lindex $item 4]
  43. set statcmd [lindex $item 5]
  44. set statstr [lindex $item 6]
  45. env_cleanup $testdir
  46. # First verify using just env args
  47. puts "t$msg Environment argument only"
  48. set env [eval $e $envarg $envval]
  49. error_check_good envopen:0 [is_valid_env $env] TRUE
  50. env007_check $env $statcmd $statstr $envval
  51. error_check_good envclose:0 [$env close] 0
  52. env_cleanup $testdir
  53. env007_make_config $configarg $configval
  54. #  verify using just config file
  55. puts "t$msg Config file only"
  56. set env [eval $e]
  57. error_check_good envopen:1 [is_valid_env $env] TRUE
  58. env007_check $env $statcmd $statstr $configval
  59. error_check_good envclose:1 [$env close] 0
  60. # First verify using just env args
  61. puts "t$msg Environment arg and config file"
  62. set env [eval $e $envarg $envval]
  63. error_check_good envopen:2 [is_valid_env $env] TRUE
  64. env007_check $env $statcmd $statstr $configval
  65. error_check_good envclose:2 [$env close] 0
  66. }
  67. }
  68. proc env007_check { env statcmd statstr testval } {
  69. set stat [$env $statcmd]
  70. set checked 0
  71. foreach statpair $stat {
  72. if {$checked == 1} {
  73. break
  74. }
  75. set statmsg [lindex $statpair 0]
  76. set statval [lindex $statpair 1]
  77. if {[is_substr $statmsg $statstr] != 0} {
  78. set checked 1
  79. error_check_good $statstr:ck $statval $testval
  80. }
  81. }
  82. error_check_good $statstr:test $checked 1
  83. }
  84. proc env007_make_config { carg cval } {
  85. global testdir
  86. set cid [open $testdir/DB_CONFIG w]
  87. puts $cid "$carg $cval"
  88. close $cid
  89. }