| Index: third_party/sqlite/test/manydb.test
|
| ===================================================================
|
| --- third_party/sqlite/test/manydb.test (revision 56608)
|
| +++ third_party/sqlite/test/manydb.test (working copy)
|
| @@ -1,102 +0,0 @@
|
| -# 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.4 2008/11/21 00:10:35 aswift Exp $
|
| -
|
| -set testdir [file dirname $argv0]
|
| -source $testdir/tester.tcl
|
| -
|
| -set N 300
|
| -# if we're using proxy locks, we use 5 filedescriptors for a db
|
| -# that is open and in the middle of writing changes, normally
|
| -# sqlite uses 3 (proxy locking adds the conch and the local lock)
|
| -set using_proxy 0
|
| -foreach {name value} [array get env SQLITE_FORCE_PROXY_LOCKING] {
|
| - set using_proxy value
|
| -}
|
| -set num_fd_per_openwrite_db 3
|
| -if {$using_proxy>0} {
|
| - set num_fd_per_openwrite_db 5
|
| -}
|
| -
|
| -# 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 / $num_fd_per_openwrite_db]
|
| -
|
| -# 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
|
|
|