diff options
Diffstat (limited to 'bdb/test/env001.tcl')
-rw-r--r-- | bdb/test/env001.tcl | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/bdb/test/env001.tcl b/bdb/test/env001.tcl deleted file mode 100644 index 781029f6a5c..00000000000 --- a/bdb/test/env001.tcl +++ /dev/null @@ -1,154 +0,0 @@ -# See the file LICENSE for redistribution information. -# -# Copyright (c) 1999-2002 -# Sleepycat Software. All rights reserved. -# -# $Id: env001.tcl,v 11.26 2002/05/08 19:01:43 margo Exp $ -# -# TEST env001 -# TEST Test of env remove interface (formerly env_remove). -proc env001 { } { - global errorInfo - global errorCode - - source ./include.tcl - - set testfile $testdir/env.db - set t1 $testdir/t1 - - puts "Env001: Test of environment remove interface." - env_cleanup $testdir - - # Try opening without Create flag should error - puts "\tEnv001.a: Open without create (should fail)." - catch {set env [berkdb_env_noerr -home $testdir]} ret - error_check_good env:fail [is_substr $ret "no such file"] 1 - - # Now try opening with create - puts "\tEnv001.b: Open with create." - set env [berkdb_env -create -mode 0644 -home $testdir] - error_check_bad env:$testdir $env NULL - error_check_good env:$testdir [is_substr $env "env"] 1 - - # Make sure that close works. - puts "\tEnv001.c: Verify close." - error_check_good env:close:$env [$env close] 0 - - # Make sure we can reopen -- this doesn't work on Windows - # because if there is only one opener, the region disappears - # when it is closed. We can't do a second opener, because - # that will fail on HP-UX. - puts "\tEnv001.d: Remove on closed environments." - if { $is_windows_test != 1 } { - puts "\t\tEnv001.d.1: Verify re-open." - set env [berkdb_env -home $testdir] - error_check_bad env:$testdir $env NULL - error_check_good env:$testdir [is_substr $env "env"] 1 - - # remove environment - puts "\t\tEnv001.d.2: Close environment." - error_check_good env:close [$env close] 0 - puts "\t\tEnv001.d.3: Try remove with force (should succeed)." - error_check_good \ - envremove [berkdb envremove -force -home $testdir] 0 - } - - if { $is_windows_test != 1 && $is_hp_test != 1 } { - puts "\tEnv001.e: Remove on open environments." - puts "\t\tEnv001.e.1: Env is open by single proc,\ - remove no force." - set env [berkdb_env -create -mode 0644 -home $testdir] - error_check_bad env:$testdir $env NULL - error_check_good env:$testdir [is_substr $env "env"] 1 - set stat [catch {berkdb envremove -home $testdir} ret] - error_check_good env:remove $stat 1 - error_check_good env:close [$env close] 0 - } - - puts \ - "\t\tEnv001.e.2: Env is open by single proc, remove with force." - # Now that envremove doesn't do a close, this won't work on Windows. - if { $is_windows_test != 1 && $is_hp_test != 1} { - set env [berkdb_env_noerr -create -mode 0644 -home $testdir] - error_check_bad env:$testdir $env NULL - error_check_good env:$testdir [is_substr $env "env"] 1 - set stat [catch {berkdb envremove -force -home $testdir} ret] - error_check_good env:remove(force) $ret 0 - # - # Even though the underlying env is gone, we need to close - # the handle. - # - set stat [catch {$env close} ret] - error_check_bad env:close_after_remove $stat 0 - error_check_good env:close_after_remove \ - [is_substr $ret "recovery"] 1 - } - - puts "\t\tEnv001.e.3: Env is open by 2 procs, remove no force." - # should fail - set env [berkdb_env -create -mode 0644 -home $testdir] - error_check_bad env:$testdir $env NULL - error_check_good env:$testdir [is_substr $env "env"] 1 - - set f1 [open |$tclsh_path r+] - puts $f1 "source $test_path/test.tcl" - - set remote_env [send_cmd $f1 "berkdb_env_noerr -home $testdir"] - error_check_good remote:env_open [is_valid_env $remote_env] TRUE - # First close our env, but leave remote open - error_check_good env:close [$env close] 0 - catch {berkdb envremove -home $testdir} ret - error_check_good envremove:2procs:noforce [is_substr $errorCode EBUSY] 1 - # - # even though it failed, $env is no longer valid, so remove it in - # the remote process - set remote_close [send_cmd $f1 "$remote_env close"] - error_check_good remote_close $remote_close 0 - - # exit remote process - set err [catch { close $f1 } result] - error_check_good close_remote_process $err 0 - - puts "\t\tEnv001.e.4: Env is open by 2 procs, remove with force." - # You cannot do this on windows because you can't remove files that - # are open, so we skip this test for Windows. On UNIX, it should - # succeed - if { $is_windows_test != 1 && $is_hp_test != 1 } { - set env [berkdb_env_noerr -create -mode 0644 -home $testdir] - error_check_bad env:$testdir $env NULL - error_check_good env:$testdir [is_substr $env "env"] 1 - set f1 [open |$tclsh_path r+] - puts $f1 "source $test_path/test.tcl" - - set remote_env [send_cmd $f1 "berkdb_env -home $testdir"] - error_check_good remote:env_open [is_valid_env $remote_env] TRUE - - catch {berkdb envremove -force -home $testdir} ret - error_check_good envremove:2procs:force $ret 0 - # - # We still need to close our handle. - # - set stat [catch {$env close} ret] - error_check_bad env:close_after_error $stat 0 - error_check_good env:close_after_error \ - [is_substr $ret recovery] 1 - - # Close down remote process - set err [catch { close $f1 } result] - error_check_good close_remote_process $err 0 - } - - # Try opening in a different dir - puts "\tEnv001.f: Try opening env in another directory." - if { [file exists $testdir/NEWDIR] != 1 } { - file mkdir $testdir/NEWDIR - } - set eflags "-create -home $testdir/NEWDIR -mode 0644" - set env [eval {berkdb_env} $eflags] - error_check_bad env:open $env NULL - error_check_good env:close [$env close] 0 - error_check_good berkdb:envremove \ - [berkdb envremove -home $testdir/NEWDIR] 0 - - puts "\tEnv001 complete." -} |