summaryrefslogtreecommitdiff
path: root/bdb/test/recd010.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'bdb/test/recd010.tcl')
-rw-r--r--bdb/test/recd010.tcl72
1 files changed, 47 insertions, 25 deletions
diff --git a/bdb/test/recd010.tcl b/bdb/test/recd010.tcl
index 4fd1aefbb60..2549e03a2c0 100644
--- a/bdb/test/recd010.tcl
+++ b/bdb/test/recd010.tcl
@@ -1,20 +1,15 @@
# See the file LICENSE for redistribution information.
#
-# Copyright (c) 1999, 2000
+# Copyright (c) 1999-2002
# Sleepycat Software. All rights reserved.
#
-# $Id: recd010.tcl,v 1.14 2000/12/11 17:24:55 sue Exp $
+# $Id: recd010.tcl,v 1.19 2002/03/15 19:05:07 sue Exp $
#
-# Recovery Test 10.
-# Test stability of btree duplicates across btree off-page dup splits
-# and reverse splits and across recovery.
+# TEST recd010
+# TEST Test stability of btree duplicates across btree off-page dup splits
+# TEST and reverse splits and across recovery.
proc recd010 { method {select 0} args} {
- global fixed_len
- global kvals
- global kvals_dups
- source ./include.tcl
-
- if { [is_dbtree $method] != 1 && [is_ddbtree $method] != 1} {
+ if { [is_btree $method] != 1 } {
puts "Recd010 skipping for method $method."
return
}
@@ -24,11 +19,24 @@ proc recd010 { method {select 0} args} {
puts "Recd010: skipping for specific pagesizes"
return
}
+ set largs $args
+ append largs " -dup "
+ recd010_main $method $select $largs
+ append largs " -dupsort "
+ recd010_main $method $select $largs
+}
- set opts [convert_args $method $args]
+proc recd010_main { method select largs } {
+ global fixed_len
+ global kvals
+ global kvals_dups
+ source ./include.tcl
+
+
+ set opts [convert_args $method $largs]
set method [convert_method $method]
- puts "\tRecd010 ($opts): Test duplicates across splits and recovery"
+ puts "Recd010 ($opts): Test duplicates across splits and recovery"
set testfile recd010.db
env_cleanup $testdir
@@ -41,10 +49,10 @@ proc recd010 { method {select 0} args} {
set data "data"
set key "recd010_key"
- puts "\tRecd010.a: Create $method environment and database."
+ puts "\tRecd010.a: Create environment and database."
set flags "-create -txn -home $testdir"
- set env_cmd "berkdb env $flags"
+ set env_cmd "berkdb_env $flags"
set dbenv [eval $env_cmd]
error_check_good dbenv [is_valid_env $dbenv] TRUE
@@ -69,17 +77,17 @@ proc recd010 { method {select 0} args} {
return
}
set rlist {
- { {recd010_split DB TXNID 1 $method 2 $mkeys}
+ { {recd010_split DB TXNID 1 2 $mkeys}
"Recd010.c: btree split 2 large dups"}
- { {recd010_split DB TXNID 0 $method 2 $mkeys}
+ { {recd010_split DB TXNID 0 2 $mkeys}
"Recd010.d: btree reverse split 2 large dups"}
- { {recd010_split DB TXNID 1 $method 10 $mkeys}
+ { {recd010_split DB TXNID 1 10 $mkeys}
"Recd010.e: btree split 10 dups"}
- { {recd010_split DB TXNID 0 $method 10 $mkeys}
+ { {recd010_split DB TXNID 0 10 $mkeys}
"Recd010.f: btree reverse split 10 dups"}
- { {recd010_split DB TXNID 1 $method 100 $mkeys}
+ { {recd010_split DB TXNID 1 100 $mkeys}
"Recd010.g: btree split 100 dups"}
- { {recd010_split DB TXNID 0 $method 100 $mkeys}
+ { {recd010_split DB TXNID 0 100 $mkeys}
"Recd010.h: btree reverse split 100 dups"}
}
@@ -100,7 +108,7 @@ proc recd010 { method {select 0} args} {
op_recover commit $testdir $env_cmd $testfile $cmd $msg
recd010_check $testdir $testfile $opts commit $reverse $firstkeys
}
- puts "\tRecd010.e: Verify db_printlog can read logfile"
+ puts "\tRecd010.i: Verify db_printlog can read logfile"
set tmpfile $testdir/printlog.out
set stat [catch {exec $util_path/db_printlog -h $testdir \
> $tmpfile} ret]
@@ -178,7 +186,14 @@ proc recd010_check { tdir testfile opts op reverse origdups } {
for {set d [$dbc get -set $key$ki]} { [llength $d] != 0 } {
set d [$dbc get -nextdup]} {
set thisdata [lindex [lindex $d 0] 1]
- error_check_good dup_check $thisdata $data$datacnt
+ if { $datacnt < 10 } {
+ set pdata $data.$ki.00$datacnt
+ } elseif { $datacnt < 100 } {
+ set pdata $data.$ki.0$datacnt
+ } else {
+ set pdata $data.$ki.$datacnt
+ }
+ error_check_good dup_check $thisdata $pdata
incr datacnt
}
error_check_good dup_count $datacnt $numdups
@@ -202,7 +217,7 @@ proc recd010_check { tdir testfile opts op reverse origdups } {
error_check_good db_close [$db close] 0
}
-proc recd010_split { db txn split method nkeys mkeys } {
+proc recd010_split { db txn split nkeys mkeys } {
global errorCode
global kvals
global kvals_dups
@@ -220,7 +235,14 @@ proc recd010_split { db txn split method nkeys mkeys } {
"\tRecd010_split: Add $nkeys keys, with $numdups duplicates each to force split."
for {set k 0} { $k < $nkeys } { incr k } {
for {set i 0} { $i < $numdups } { incr i } {
- set ret [$db put -txn $txn $key$k $data$i]
+ if { $i < 10 } {
+ set pdata $data.$k.00$i
+ } elseif { $i < 100 } {
+ set pdata $data.$k.0$i
+ } else {
+ set pdata $data.$k.$i
+ }
+ set ret [$db put -txn $txn $key$k $pdata]
error_check_good dbput:more $ret 0
}
}