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

MySQL数据库

开发平台:

Visual C++

  1. # See the file LICENSE for redistribution information.
  2. #
  3. # Copyright (c) 2000
  4. # Sleepycat Software.  All rights reserved.
  5. #
  6. # $Id: test077.tcl,v 1.4 2000/08/25 14:21:58 sue Exp $
  7. #
  8. # DB Test 77: Test of DB_GET_RECNO [#1206].
  9. proc test077 { method { nkeys 1000 } { pagesize 512 } { tnum 77 } args } {
  10. source ./include.tcl
  11. global alphabet
  12. set omethod [convert_method $method]
  13. set args [convert_args $method $args]
  14. puts "Test0$tnum: Test of DB_GET_RECNO."
  15. if { [is_rbtree $method] != 1 } {
  16. puts "tTest0$tnum: Skipping for method $method."
  17. return
  18. }
  19. set data $alphabet
  20. set eindex [lsearch -exact $args "-env"]
  21. if { $eindex == -1 } {
  22. set testfile $testdir/test0$tnum.db
  23. set env NULL
  24. } else {
  25. set testfile test0$tnum.db
  26. incr eindex
  27. set env [lindex $args $eindex]
  28. }
  29. cleanup $testdir $env
  30. set db [eval {berkdb_open -create -truncate -mode 0644
  31.     -pagesize $pagesize} $omethod $args {$testfile}]
  32. error_check_good db_open [is_valid_db $db] TRUE
  33. puts "tTest0$tnum.a: Populating database."
  34. for { set i 1 } { $i <= $nkeys } { incr i } {
  35. set key [format %5d $i]
  36. error_check_good db_put($key) [$db put $key $data] 0
  37. }
  38. puts "tTest0$tnum.b: Verifying record numbers."
  39. set dbc [$db cursor]
  40. error_check_good dbc_open [is_valid_cursor $dbc $db] TRUE
  41. set i 1
  42. for { set dbt [$dbc get -first] } 
  43.     { [string length $dbt] != 0 } 
  44.     { set dbt [$dbc get -next] } {
  45. set recno [$dbc get -get_recno]
  46. set keynum [expr [lindex [lindex $dbt 0] 0]]
  47. # Verify that i, the number that is the key, and recno
  48. # are all equal.
  49. error_check_good key($i) $keynum $i
  50. error_check_good recno($i) $recno $i
  51. incr i
  52. }
  53. error_check_good dbc_close [$dbc close] 0
  54. error_check_good db_close [$db close] 0
  55. }