From e36d23a85ebff914d74bb541558c2b6082b78edb Mon Sep 17 00:00:00 2001 From: dan miller Date: Sat, 20 Oct 2007 02:49:29 +0000 Subject: sqlite source (unix build) added to libraries --- .../sqlite/unix/sqlite-3.5.1/test/manydb.test | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 libraries/sqlite/unix/sqlite-3.5.1/test/manydb.test (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/manydb.test') diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/manydb.test b/libraries/sqlite/unix/sqlite-3.5.1/test/manydb.test new file mode 100644 index 0000000..9af5465 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/manydb.test @@ -0,0 +1,91 @@ +# 2005 October 3 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file implements regression tests for SQLite library. +# +# This file implements tests the ability of the library to open +# many different databases at the same time without leaking memory. +# +# $Id: manydb.test,v 1.3 2006/01/11 01:08:34 drh Exp $ + +set testdir [file dirname $argv0] +source $testdir/tester.tcl + +set N 300 + +# First test how many file descriptors are available for use. To open a +# database for writing SQLite requires 3 file descriptors (the database, the +# journal and the directory). +set filehandles {} +catch { + for {set i 0} {$i<($N * 3)} {incr i} { + lappend filehandles [open testfile.1 w] + } +} +foreach fd $filehandles { + close $fd +} +catch { + file delete -force testfile.1 +} +set N [expr $i / 3] + +# Create a bunch of random database names +# +unset -nocomplain dbname +unset -nocomplain used +for {set i 0} {$i<$N} {incr i} { + while 1 { + set name test-[format %08x [expr {int(rand()*0x7fffffff)}]].db + if {[info exists used($name)]} continue + set dbname($i) $name + set used($name) $i + break + } +} + +# Create a bunch of databases +# +for {set i 0} {$i<$N} {incr i} { + do_test manydb-1.$i { + sqlite3 db$i $dbname($i) + execsql { + CREATE TABLE t1(a,b); + BEGIN; + INSERT INTO t1 VALUES(1,2); + } db$i + } {} +} + +# Finish the transactions +# +for {set i 0} {$i<$N} {incr i} { + do_test manydb-2.$i { + execsql { + COMMIT; + SELECT * FROM t1; + } db$i + } {1 2} +} + + +# Close the databases and erase the files. +# +for {set i 0} {$i<$N} {incr i} { + do_test manydb-3.$i { + db$i close + file delete -force $dbname($i) + } {} +} + + + + +finish_test -- cgit v1.1