soak1.tcl

来自「最新的sqlite3.6.2源代码」· TCL 代码 · 共 104 行

TCL
104
字号
#!/usr/bin/tclsh## Usage:##    tclsh soak1.tcl local-makefile.mk ?target? ?scenario?## This generates many variations on local-makefile.mk (by modifing# the OPT = lines) and runs them will fulltest, one by one.  The# constructed makefiles are named "soak1.mk".## If ?target? is provided, that is the makefile target that is run.# The default is "fulltest"## If ?scenario? is provided, it is the name of a single scenario to# be run.   All other scenarios are skipped.#set localmake [lindex $argv 0]set target [lindex $argv 1]set scene [lindex $argv 2]if {$target==""} {set target fulltest}if {$scene==""} {set scene all}set in [open $localmake]set maketxt [read $in]close $inregsub -all {\\\n} $maketxt {} maketxt#set makefilename "soak1-[expr {int(rand()*1000000000)}].mk"set makefilename "soak1.mk"# Generate a makefile#proc generate_makefile {pattern} {  global makefilename maketxt  set out [open $makefilename w]  set seen_opt 0  foreach line [split $maketxt \n] {    if {[regexp {^ *#? *OPTS[ =+]} $line]} {      if {!$seen_opt} {         puts $out "OPTS += -DSQLITE_NO_SYNC=1"         foreach x $pattern {           puts $out "OPTS += -D$x"         }         set seen_opt 1      }    } else {      puts $out $line    }  }  close $out}# Run a test#proc scenario {id title pattern} {  global makefilename target scene  if {$scene!="all" && $scene!=$id && $scene!=$title} return  puts "**************** $title ***************"  generate_makefile $pattern  exec make -f $makefilename clean >@stdout 2>@stdout  exec make -f $makefilename $target >@stdout 2>@stdout}################################################################################ Add new scenarios here#scenario 0 {Default} {}scenario 1 {Debug} {  SQLITE_DEBUG=1  SQLITE_MEMDEBUG=1}scenario 2 {Everything} {  SQLITE_DEBUG=1  SQLITE_MEMDEBUG=1  SQLITE_ENABLE_MEMORY_MANAGEMENT=1  SQLITE_ENABLE_COLUMN_METADATA=1  SQLITE_ENABLE_LOAD_EXTENSION=1 HAVE_DLOPEN=1  SQLITE_ENABLE_MEMORY_MANAGEMENT=1}scenario 3 {Customer-1} {  SQLITE_DEBUG=1 SQLITE_MEMDEBUG=1  SQLITE_THREADSAFE=1 SQLITE_OS_UNIX=1  SQLITE_DISABLE_LFS=1  SQLITE_DEFAULT_AUTOVACUUM=1  SQLITE_DEFAULT_PAGE_SIZE=1024  SQLITE_MAX_PAGE_SIZE=4096  SQLITE_DEFAULT_CACHE_SIZE=64  SQLITE_DEFAULT_TEMP_CACHE_SIZE=32  SQLITE_TEMP_STORE=3  SQLITE_OMIT_PROGRESS_CALLBACK=1  SQLITE_OMIT_LOAD_EXTENSION=1  SQLITE_OMIT_VIRTUALTABLE=1  SQLITE_ENABLE_IOTRACE=1}scenario 4 {Small-Cache} {  SQLITE_DEBUG=1 SQLITE_MEMDEBUG=1  SQLITE_THREADSAFE=1 SQLITE_OS_UNIX=1  SQLITE_DEFAULT_AUTOVACUUM=1  SQLITE_DEFAULT_PAGE_SIZE=1024  SQLITE_MAX_PAGE_SIZE=2048  SQLITE_DEFAULT_CACHE_SIZE=13  SQLITE_DEFAULT_TEMP_CACHE_SIZE=11  SQLITE_TEMP_STORE=1}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?