1
# See the file LICENSE for redistribution information.
3
# Copyright (c) 1999-2002
4
# Sleepycat Software. All rights reserved.
6
# $Id: update.tcl,v 11.11 2002/01/11 15:53:58 bostic Exp $
10
set update_dir "$test_path/update_test"
16
foreach version [glob $update_dir/*] {
17
regexp \[^\/\]*$ $version version
18
foreach method [glob $update_dir/$version/*] {
19
regexp \[^\/\]*$ $method method
20
foreach file [glob $update_dir/$version/$method/*] {
21
regexp (\[^\/\]*)\.tar\.gz$ $file dummy name
22
foreach endianness {"le" "be"} {
24
$version $method $name $endianness"
25
set ret [catch {_update $update_dir $testdir $version $method $name $endianness 1 1} message]
35
proc _update { source_dir temp_dir \
36
version method file endianness do_db_load_test do_update_test } {
40
cleanup $temp_dir NULL
43
"gzcat $source_dir/$version/$method/$file.tar.gz | (cd $temp_dir && tar xf -)"
45
if { $do_db_load_test } {
47
{exec $util_path/db_load -f "$temp_dir/$file.dump" \
48
"$temp_dir/update.db"} message]
50
"Update load: $version $method $file $message" $ret 0
53
{exec $util_path/db_dump -f "$temp_dir/update.dump" \
54
"$temp_dir/update.db"} message]
56
"Update dump: $version $method $file $message" $ret 0
58
error_check_good "Update diff.1.1: $version $method $file" \
59
[filecmp "$temp_dir/$file.dump" "$temp_dir/update.dump"] 0
61
"Update diff.1.2: $version $method $file" $ret ""
64
if { $do_update_test } {
66
{berkdb open -update "$temp_dir/$file-$endianness.db"} db]
68
if { ![is_substr $errorInfo "version upgrade"] } {
69
set fnl [string first "\n" $errorInfo]
71
[string range $errorInfo 0 [expr $fnl - 1]]
75
error_check_good dbopen [is_valid_db $db] TRUE
76
error_check_good dbclose [$db close] 0
79
{exec $util_path/db_dump -f \
80
"$temp_dir/update.dump" \
81
"$temp_dir/$file-$endianness.db"} message]
82
error_check_good "Update\
83
dump: $version $method $file $message" $ret 0
86
"Update diff.2: $version $method $file" \
87
[filecmp "$temp_dir/$file.dump" \
88
"$temp_dir/update.dump"] 0
90
"Update diff.2: $version $method $file" $ret ""