From 54df2afaa61c6a03cbb4a33c9b90fa572b6d07b8 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 17 Dec 2016 21:28:53 -0800 Subject: Berkeley DB 4.8 with rust build script for linux. --- db-4.8.30/test/env013.tcl | 84 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 db-4.8.30/test/env013.tcl (limited to 'db-4.8.30/test/env013.tcl') diff --git a/db-4.8.30/test/env013.tcl b/db-4.8.30/test/env013.tcl new file mode 100644 index 0000000..2c47f34 --- /dev/null +++ b/db-4.8.30/test/env013.tcl @@ -0,0 +1,84 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2005-2009 Oracle. All rights reserved. +# +# $Id$ +# +# TEST env013 +# TEST Test of basic functionality of fileid_reset. +# TEST +# TEST Create a database in an env. Copy it to a new file within +# TEST the same env. Reset the file id and make sure it has changed. +proc env013 { } { + source ./include.tcl + global util_path + + puts "Env013: Test fileid_reset." + + set testfile A.db + set dupfile B.db + set nentries 500 + set filenames "A B C D E" + + foreach lorder { 1234 4321 } { + puts "\tEnv013.a: Creating env." + env_cleanup $testdir + set env [berkdb_env -create -home $testdir -txn] + error_check_good dbenv [is_valid_env $env] TRUE + + # Open database A, populate and close. + puts "\tEnv013.b: Creating database with lorder $lorder." + foreach filename $filenames { + set db [eval {berkdb_open \ + -pagesize 8192 -env $env -auto_commit \ + -btree -create -mode 0644 $testfile $filename} ] + error_check_good dbopen [is_valid_db $db] TRUE + set t [$env txn] + error_check_good txn [is_valid_txn $t $env] TRUE + for { set i 0 } { $i < $nentries } { incr i } { + set key KEY.$i + set data DATA.$i + error_check_good\ + db_put [$db put -txn $t $key $data] 0 + } + error_check_good txn_commit [$t commit] 0 + error_check_good db_close [$db close] 0 + } + + # Copy database file A to database file B for fileid testing. + puts "\tEnv013.c: Copy database." + file copy -force $testdir/$testfile $testdir/$dupfile + + # Reset B's fileid and confirm the ID has changed. + puts "\tEnv013.d: Resetting file id for copied database." + error_check_good fileid_reset [$env id_reset $dupfile] 0 + set orig_id [getfileid $testdir/$testfile] + puts "\tEnv013.d: orig: $orig_id" + set new_id [getfileid $testdir/$dupfile] + puts "\tEnv013.d: new: $new_id" + error_check_bad id_changed $orig_id $new_id + + # Verify and open B. + puts "\tEnv013.e: Verify and open database copy." + error_check_good verify [verify_dir $testdir "\tEnv013.e: "] 0 + set db [eval {berkdb_open} \ + -env $env -auto_commit -btree -mode 0644 -rdonly $dupfile] + error_check_good dup_open [is_valid_db $db] TRUE + + # Clean up. + error_check_good db_close [$db close] 0 + error_check_good env_close [$env close] 0 + } +} + +# Get file id number, identified as "uid" in db_stat. +proc getfileid { db } { + global util_path + + set ret [exec $util_path/db_dump -da $db] + set uidstart [string first "uid:" $ret] + set uidend [string first "\tminkey:" $ret] + set uid [string range $ret $uidstart $uidend] + set uid [string trimright $uid] + return $uid +} -- cgit v1.2.3