| OLD | NEW | 
 | (Empty) | 
|    1 #!/usr/bin/tclsh |  | 
|    2 # |  | 
|    3 # Usage: |  | 
|    4 # |  | 
|    5 #    tclsh soak1.tcl local-makefile.mk ?target? ?scenario? |  | 
|    6 # |  | 
|    7 # This generates many variations on local-makefile.mk (by modifing |  | 
|    8 # the OPT = lines) and runs them will fulltest, one by one.  The |  | 
|    9 # constructed makefiles are named "soak1.mk". |  | 
|   10 # |  | 
|   11 # If ?target? is provided, that is the makefile target that is run. |  | 
|   12 # The default is "fulltest" |  | 
|   13 # |  | 
|   14 # If ?scenario? is provided, it is the name of a single scenario to |  | 
|   15 # be run.   All other scenarios are skipped. |  | 
|   16 # |  | 
|   17 set localmake [lindex $argv 0] |  | 
|   18 set target [lindex $argv 1] |  | 
|   19 set scene [lindex $argv 2] |  | 
|   20 if {$target==""} {set target fulltest} |  | 
|   21 if {$scene==""} {set scene all} |  | 
|   22  |  | 
|   23 set in [open $localmake] |  | 
|   24 set maketxt [read $in] |  | 
|   25 close $in |  | 
|   26 regsub -all {\\\n} $maketxt {} maketxt |  | 
|   27 #set makefilename "soak1-[expr {int(rand()*1000000000)}].mk" |  | 
|   28 set makefilename "soak1.mk" |  | 
|   29  |  | 
|   30 # Generate a makefile |  | 
|   31 # |  | 
|   32 proc generate_makefile {pattern} { |  | 
|   33   global makefilename maketxt |  | 
|   34   set out [open $makefilename w] |  | 
|   35   set seen_opt 0 |  | 
|   36   foreach line [split $maketxt \n] { |  | 
|   37     if {[regexp {^ *#? *OPTS[ =+]} $line]} { |  | 
|   38       if {!$seen_opt} { |  | 
|   39          puts $out "OPTS += -DSQLITE_NO_SYNC=1" |  | 
|   40          foreach x $pattern { |  | 
|   41            puts $out "OPTS += -D$x" |  | 
|   42          } |  | 
|   43          set seen_opt 1 |  | 
|   44       } |  | 
|   45     } else { |  | 
|   46       puts $out $line |  | 
|   47     } |  | 
|   48   } |  | 
|   49   close $out |  | 
|   50 } |  | 
|   51  |  | 
|   52 # Run a test |  | 
|   53 # |  | 
|   54 proc scenario {id title pattern} { |  | 
|   55   global makefilename target scene |  | 
|   56   if {$scene!="all" && $scene!=$id && $scene!=$title} return |  | 
|   57   puts "**************** $title ***************" |  | 
|   58   generate_makefile $pattern |  | 
|   59   exec make -f $makefilename clean >@stdout 2>@stdout |  | 
|   60   exec make -f $makefilename $target >@stdout 2>@stdout |  | 
|   61 } |  | 
|   62  |  | 
|   63 ############################################################################### |  | 
|   64 # Add new scenarios here |  | 
|   65 # |  | 
|   66 scenario 0 {Default} {} |  | 
|   67 scenario 1 {Debug} { |  | 
|   68   SQLITE_DEBUG=1 |  | 
|   69   SQLITE_MEMDEBUG=1 |  | 
|   70 } |  | 
|   71 scenario 2 {Everything} { |  | 
|   72   SQLITE_DEBUG=1 |  | 
|   73   SQLITE_MEMDEBUG=1 |  | 
|   74   SQLITE_ENABLE_MEMORY_MANAGEMENT=1 |  | 
|   75   SQLITE_ENABLE_COLUMN_METADATA=1 |  | 
|   76   SQLITE_ENABLE_LOAD_EXTENSION=1 HAVE_DLOPEN=1 |  | 
|   77   SQLITE_ENABLE_MEMORY_MANAGEMENT=1 |  | 
|   78 } |  | 
|   79 scenario 3 {Customer-1} { |  | 
|   80   SQLITE_DEBUG=1 SQLITE_MEMDEBUG=1 |  | 
|   81   SQLITE_THREADSAFE=1 SQLITE_OS_UNIX=1 |  | 
|   82   SQLITE_DISABLE_LFS=1 |  | 
|   83   SQLITE_DEFAULT_AUTOVACUUM=1 |  | 
|   84   SQLITE_DEFAULT_PAGE_SIZE=1024 |  | 
|   85   SQLITE_MAX_PAGE_SIZE=4096 |  | 
|   86   SQLITE_DEFAULT_CACHE_SIZE=64 |  | 
|   87   SQLITE_DEFAULT_TEMP_CACHE_SIZE=32 |  | 
|   88   SQLITE_TEMP_STORE=3 |  | 
|   89   SQLITE_OMIT_PROGRESS_CALLBACK=1 |  | 
|   90   SQLITE_OMIT_LOAD_EXTENSION=1 |  | 
|   91   SQLITE_OMIT_VIRTUALTABLE=1 |  | 
|   92   SQLITE_ENABLE_IOTRACE=1 |  | 
|   93 } |  | 
|   94 scenario 4 {Small-Cache} { |  | 
|   95   SQLITE_DEBUG=1 SQLITE_MEMDEBUG=1 |  | 
|   96   SQLITE_THREADSAFE=1 SQLITE_OS_UNIX=1 |  | 
|   97   SQLITE_DEFAULT_AUTOVACUUM=1 |  | 
|   98   SQLITE_DEFAULT_PAGE_SIZE=1024 |  | 
|   99   SQLITE_MAX_PAGE_SIZE=2048 |  | 
|  100   SQLITE_DEFAULT_CACHE_SIZE=13 |  | 
|  101   SQLITE_DEFAULT_TEMP_CACHE_SIZE=11 |  | 
|  102   SQLITE_TEMP_STORE=1 |  | 
|  103 } |  | 
| OLD | NEW |