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/rep042script.tcl | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 db-4.8.30/test/rep042script.tcl (limited to 'db-4.8.30/test/rep042script.tcl') diff --git a/db-4.8.30/test/rep042script.tcl b/db-4.8.30/test/rep042script.tcl new file mode 100644 index 0000000..7a7e341 --- /dev/null +++ b/db-4.8.30/test/rep042script.tcl @@ -0,0 +1,78 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2003-2009 Oracle. All rights reserved. +# +# $Id$ +# +# Rep042 script - concurrency with updates. + +# Usage: repscript masterdir sleepval dbname +# masterdir: master env directory +# sleepval: sleep value (in secs) to send to env test_check +# dbname: name of database to use +# op: operation: one of del or truncate +# +source ./include.tcl +source $test_path/reputils.tcl + +set usage "repscript masterdir sleepval dbname op" + +# Verify usage +if { $argc != 4 } { + puts stderr "FAIL:[timestamp] Usage: $usage" + exit +} + +# Initialize arguments +set masterdir [ lindex $argv 0 ] +set sleepval [ lindex $argv 1 ] +set dbname [lindex $argv 2] +set op [lindex $argv 3] + +# Join the queue env. We assume the rep test convention of +# placing the messages in $testdir/MSGQUEUEDIR. +set queueenv [eval berkdb_env -home $testdir/MSGQUEUEDIR] +error_check_good script_qenv_open [is_valid_env $queueenv] TRUE + +# We need to set up our own machids. +# Add 1 for master env id, and 2 for the clientenv id. +# +repladd 1 +repladd 2 + +# Join the master env. +set ma_cmd "berkdb_env_noerr -home $masterdir \ + -txn -rep_master -rep_transport \[list 1 replsend\]" +# set ma_cmd "berkdb_env_noerr -home $masterdir \ +# -verbose {rep on} -errfile /dev/stderr \ +# -txn -rep_master -rep_transport \[list 1 replsend\]" +set masterenv [eval $ma_cmd] +error_check_good script_menv_open [is_valid_env $masterenv] TRUE + +puts "Master open" +set db [eval "berkdb_open -auto_commit -env $masterenv $dbname"] +error_check_good dbopen [is_valid_db $db] TRUE + +# Make it so that the process sleeps in the middle of a delete. +$masterenv test check $sleepval + +# Create marker file +set marker [open $masterdir/marker.db w] +close $marker + +if { $op == "del" } { + # Just delete record 1 - we know that one is in there. + set stat [catch {$db del 1} ret] + puts "Stat: $stat" + puts "Ret: $ret" +} elseif { $op == "truncate" } { + set stat [catch {$db truncate} ret] + puts "Stat: $stat" + puts "Ret: $ret" +} else { + puts "Stat: FAIL: invalid operation specified" +} +# Close the envs +error_check_good script_db_close [$db close] 0 +error_check_good script_master_close [$masterenv close] 0 +puts "\tRepscript completed successfully" -- cgit v1.2.3