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

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: rsrc002.tcl,v 11.11 2000/11/29 15:01:06 sue Exp $
  7. #
  8. # Recno backing file test #2: test of set_re_delim.
  9. # Specify a backing file with colon-delimited records,
  10. # and make sure they are correctly interpreted.
  11. proc rsrc002 { } {
  12. source ./include.tcl
  13. puts "Rsrc002: Alternate variable-length record delimiters."
  14. # We run this test essentially twice, once with a db file
  15. # and once without (an in-memory database).
  16. foreach testfile { "$testdir/rsrc002.db" "" } {
  17. cleanup $testdir NULL
  18. # Create the starting files
  19. set oid1 [open $testdir/rsrc.txt w]
  20. set oid2 [open $testdir/check.txt w]
  21. puts -nonewline $oid1 "ostrich:emu:kiwi:moa:cassowary:rhea:"
  22. puts -nonewline $oid2 "ostrich:emu:kiwi:penguin:cassowary:rhea:"
  23. close $oid1
  24. close $oid2
  25. if { $testfile == "" } {
  26. puts "Rsrc002: Testing with in-memory database."
  27. } else {
  28. puts "Rsrc002: Testing with disk-backed database."
  29. }
  30. puts "tRsrc002.a: Read file, verify correctness."
  31. set db [eval {berkdb_open -create -mode 0644 -delim 58 
  32.     -recno -source $testdir/rsrc.txt} $testfile]
  33. error_check_good dbopen [is_valid_db $db] TRUE
  34. # Read the last record; replace it (but we won't change it).
  35. # Then close the file and diff the two files.
  36. set txn ""
  37. set dbc [eval {$db cursor} $txn]
  38. error_check_good db_cursor [is_valid_cursor $dbc $db] TRUE
  39. set rec [$dbc get -first]
  40. error_check_good get_first $rec [list [list 1 "ostrich"]]
  41. set rec [$dbc get -next]
  42. error_check_good get_next $rec [list [list 2 "emu"]]
  43. puts "tRsrc002.b: Write record, verify correctness."
  44. eval {$dbc get -set 4}
  45. set ret [$dbc put -current "penguin"]
  46. error_check_good dbc_put $ret 0
  47. error_check_good dbc_close [$dbc close] 0
  48. error_check_good db_close [$db close] 0
  49. error_check_good 
  50.     Rsrc002:diff($testdir/rsrc.txt,$testdir/check.txt) 
  51.     [filecmp $testdir/rsrc.txt $testdir/check.txt] 0
  52. }
  53. }