all.test
来自「最新的sqlite3.6.2源代码」· TEST 代码 · 共 150 行
TEST
150 行
# 2001 September 15## 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 runs all tests.## $Id: all.test,v 1.57 2008/07/14 15:11:20 drh Exp $set testdir [file dirname $argv0]source $testdir/tester.tclrename finish_test really_finish_testproc finish_test {} { # no-op}if {[file exists ./sqlite_test_count]} { set COUNT [exec cat ./sqlite_test_count]} else { set COUNT 3}if {[llength $argv]>0} { foreach {name value} $argv { switch -- $name { -count { set COUNT $value } -quick { set ISQUICK $value } -soak { set SOAKTEST $value } default { puts stderr "Unknown option: $name" exit } } }}set argv {}# LeakList will hold a list of the number of unfreed mallocs after# each round of the test. This number should be constant. If it# grows, it may mean there is a memory leak in the library.#set LeakList {}set EXCLUDE {}lappend EXCLUDE all.test ;# This filelappend EXCLUDE async.testlappend EXCLUDE crash.test ;# Run seperately later.lappend EXCLUDE crash2.test ;# Run seperately later.lappend EXCLUDE quick.test ;# Alternate test driver scriptlappend EXCLUDE veryquick.test ;# Alternate test driver scriptlappend EXCLUDE malloc.test ;# Run seperately later.lappend EXCLUDE misuse.test ;# Run seperately later.lappend EXCLUDE memleak.test ;# Alternate test driver scriptlappend EXCLUDE permutations.test ;# Run seperately later.lappend EXCLUDE fuzz.testlappend EXCLUDE soak.test ;# Takes a very long time (default 1 hr)lappend EXCLUDE fts3.test ;# Wrapper for muliple fts3*.testslappend EXCLUDE mallocAll.test ;# Wrapper for running all malloc tests# Files to include in the test. If this list is empty then everything# that is not in the EXCLUDE list is run.#set INCLUDE {}for {set Counter 0} {$Counter<$COUNT && $nErr==0} {incr Counter} { if {$Counter%2} { set ::SETUP_SQL {PRAGMA default_synchronous=off;} } else { catch {unset ::SETUP_SQL} } foreach testfile [lsort -dictionary [glob $testdir/*.test]] { set tail [file tail $testfile] if {[lsearch -exact $EXCLUDE $tail]>=0} continue if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue reset_prng_state source $testfile catch {db close} if {$sqlite_open_file_count>0} { puts "$tail did not close all files: $sqlite_open_file_count" incr nErr lappend ::failList $tail set sqlite_open_file_count 0 } } if {[info exists Leak]} { lappend LeakList $Leak }}set argv allsource $testdir/permutations.testset argv ""# Do one last test to look for a memory leak in the library. This will# only work if SQLite is compiled with the -DSQLITE_DEBUG=1 flag.#if {$LeakList!=""} { puts -nonewline memory-leak-test... incr ::nTest foreach x $LeakList { if {$x!=[lindex $LeakList 0]} { puts " failed!" puts "Expected: all values to be the same" puts " Got: $LeakList" incr ::nErr lappend ::failList memory-leak-test break } } puts " Ok"}# Run the crashtest only on unix and only once. If the library does not# always create auto-vacuum databases, also run autovacuum_crash.test.#if {$::tcl_platform(platform)=="unix"} { source $testdir/crash.test source $testdir/crash2.test ifcapable !default_autovacuum { set argv autovacuum_crash source $testdir/permutations.test set argv "" }}# Run the malloc tests and the misuse test after memory leak detection.# Both tests leak memory. Currently, misuse.test also leaks a handful of# file descriptors. This is not considered a problem, but can cause tests# in malloc.test to fail. So set the open-file count to zero before running# malloc.test to get around this.#catch {source $testdir/misuse.test}set sqlite_open_file_count 0catch {source $testdir/malloc.test}catch {db close}set sqlite_open_file_count 0really_finish_test
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?