1# See the file LICENSE for redistribution information. 2# 3# Copyright (c) 1999-2009 Oracle. All rights reserved. 4# 5# $Id$ 6# 7# TEST env008 8# TEST Test environments and subdirectories. 9proc env008 { } { 10 global errorInfo 11 global errorCode 12 13 source ./include.tcl 14 15 env_cleanup $testdir 16 17 set subdir 1/1 18 set subdir1 1/2 19 file mkdir $testdir/$subdir $testdir/$subdir1 20 set testfile $subdir/env.db 21 22 puts "Env008: Test of environments and subdirectories." 23 24 puts "\tEnv008.a: Create env and db." 25 set env [berkdb_env -create -mode 0644 -home $testdir -txn] 26 error_check_good env [is_valid_env $env] TRUE 27 28 puts "\tEnv008.b: Remove db in subdir." 29 env008_db $env $testfile 30 error_check_good dbremove:$testfile \ 31 [berkdb dbremove -env $env $testfile] 0 32 33 # 34 # Rather than remaking the db every time for the renames 35 # just move around the new file name to another new file 36 # name. 37 # 38 puts "\tEnv008.c: Rename db in subdir." 39 env008_db $env $testfile 40 set newfile $subdir/new.db 41 error_check_good dbrename:$testfile/.. \ 42 [berkdb dbrename -env $env $testfile $newfile] 0 43 set testfile $newfile 44 45 puts "\tEnv008.d: Rename db to parent dir." 46 set newfile $subdir/../new.db 47 error_check_good dbrename:$testfile/.. \ 48 [berkdb dbrename -env $env $testfile $newfile] 0 49 set testfile $newfile 50 51 puts "\tEnv008.e: Rename db to child dir." 52 set newfile $subdir/env.db 53 error_check_good dbrename:$testfile/.. \ 54 [berkdb dbrename -env $env $testfile $newfile] 0 55 set testfile $newfile 56 57 puts "\tEnv008.f: Rename db to another dir." 58 set newfile $subdir1/env.db 59 error_check_good dbrename:$testfile/.. \ 60 [berkdb dbrename -env $env $testfile $newfile] 0 61 62 error_check_good envclose [$env close] 0 63 puts "\tEnv008 complete." 64} 65 66proc env008_db { env testfile } { 67 set db [berkdb_open -env $env -create -btree $testfile] 68 error_check_good dbopen [is_valid_db $db] TRUE 69 set ret [$db put key data] 70 error_check_good dbput $ret 0 71 error_check_good dbclose [$db close] 0 72} 73