Remove proprietary information from the releasetest.tcl script and add it
to the public repository. FossilOrigin-Name: e1d4a87e4e195b3a217f6d8a15d6beceb7c22a53
This commit is contained in:
parent
4ce7488075
commit
96110deb6a
24
manifest
24
manifest
@ -1,5 +1,8 @@
|
||||
C Add\stest\sfile\se_select.test.
|
||||
D 2010-09-04T18:52:30
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
C Remove\sproprietary\sinformation\sfrom\sthe\sreleasetest.tcl\sscript\sand\sadd\sit\nto\sthe\spublic\srepository.
|
||||
D 2010-09-06T18:44:14
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in c599a15d268b1db2aeadea19df2adc3bf2eb6bee
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -569,6 +572,8 @@ F test/randexpr1.tcl 40dec52119ed3a2b8b2a773bce24b63a3a746459
|
||||
F test/randexpr1.test 1084050991e9ba22c1c10edd8d84673b501cc25a
|
||||
F test/rdonly.test c267d050a1d9a6a321de502b737daf28821a518d
|
||||
F test/reindex.test 44edd3966b474468b823d481eafef0c305022254
|
||||
F test/releasetest.mk 2eced2f9ae701fd0a29e714a241760503ccba25a
|
||||
F test/releasetest.tcl 138b6fb0c5054114903a8d9862130f7f6aa9cf35
|
||||
F test/rollback.test 1a83118ea6db4e7d8c10eaa63871b5e90502ffdc
|
||||
F test/rowhash.test 0bc1d31415e4575d10cacf31e1a66b5cc0f8be81
|
||||
F test/rowid.test e58e0acef38b527ed1b0b70d3ada588f804af287
|
||||
@ -854,7 +859,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||
P f06c7b1973d64a6a1a1db2b44df2a4eb0ece0077
|
||||
R ff12553912aafce92749cd560cb5ebc9
|
||||
U dan
|
||||
Z a3043953a2e784f32d9ae6b144aa3d3f
|
||||
P 8b9d8c226e5d95584c1e61a796dc23b780a300cb
|
||||
R 98dea5240f80f8174c5125044e6828fb
|
||||
U drh
|
||||
Z 0392d0f0caa40596afb3d46f32529306
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFMhTaBoxKgR168RlERAn1UAJwNSxNdDB4M8CdfcOLn13Q/PByDLwCfTCOc
|
||||
2twVoGYmMf1gW4MdyOjJ5f0=
|
||||
=zO5S
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -1 +1 @@
|
||||
8b9d8c226e5d95584c1e61a796dc23b780a300cb
|
||||
e1d4a87e4e195b3a217f6d8a15d6beceb7c22a53
|
14
test/releasetest.mk
Normal file
14
test/releasetest.mk
Normal file
@ -0,0 +1,14 @@
|
||||
########################################################
|
||||
TOP=/home/drh/sqlite/sqlite
|
||||
|
||||
TCL_FLAGS=-I/home/drh/tcltk/86linux
|
||||
LIBTCL=/home/drh/tcltk/86linux/libtcl8.6.a -lm -ldl -lpthread
|
||||
|
||||
BCC = gcc
|
||||
TCC = gcc -ansi -g $(CFLAGS)
|
||||
NAWK = awk
|
||||
AR = ar cr
|
||||
RANLIB = ranlib
|
||||
THREADLIB = -lpthread -ldl -lz
|
||||
include $(TOP)/main.mk
|
||||
########################################################
|
310
test/releasetest.tcl
Normal file
310
test/releasetest.tcl
Normal file
@ -0,0 +1,310 @@
|
||||
|
||||
set rcsid {$Id: $}
|
||||
|
||||
# Documentation for this script. This may be output to stderr
|
||||
# if the script is invoked incorrectly. See the [process_options]
|
||||
# proc below.
|
||||
#
|
||||
set ::USAGE_MESSAGE {
|
||||
This Tcl script is used to test the various configurations required
|
||||
before releasing a new version. Supported command line options (all
|
||||
optional) are:
|
||||
|
||||
-makefile PATH-TO-MAKEFILE (default "releasetest.mk")
|
||||
-platform PLATFORM (see below)
|
||||
-quick BOOLEAN (default "0")
|
||||
|
||||
The default value for -makefile is "./releasetest.mk".
|
||||
|
||||
The script determines the default value for -platform using the
|
||||
$tcl_platform(os) and $tcl_platform(machine) variables. Supported
|
||||
platforms are "Linux-x86", "Linux-x86_64" and "Darwin-i386".
|
||||
|
||||
If the -quick option is set to true, then the "veryquick.test" script
|
||||
is run for all compilation configurations. Otherwise, sometimes "all.test"
|
||||
is run, sometimes "veryquick.test".
|
||||
|
||||
Almost any SQLite makefile (except those generated by configure - see below)
|
||||
should work. The following properties are required:
|
||||
|
||||
* The makefile should support the "fulltest" target.
|
||||
* The makefile should support the variable "OPTS" as a way to pass
|
||||
options from the make command line to lemon and the C compiler.
|
||||
|
||||
More precisely, the following invocation must be supported:
|
||||
|
||||
make -f $::MAKEFILE fulltest OPTS="-DSQLITE_SECURE_DELETE=1 -DSQLITE_DEBUG=1"
|
||||
|
||||
Makefiles generated by the sqlite configure program cannot be used as
|
||||
they do not respect the OPTS variable.
|
||||
|
||||
Example Makefile contents:
|
||||
|
||||
########################################################
|
||||
TOP=/home/dan/work/sqlite/sqlite
|
||||
|
||||
TCL_FLAGS=-I/home/dan/tcl/include
|
||||
LIBTCL=-L/home/dan/tcl/lib -ltcl
|
||||
|
||||
BCC = gcc
|
||||
TCC = gcc -ansi -g $(CFLAGS)
|
||||
NAWK = awk
|
||||
AR = ar cr
|
||||
RANLIB = ranlib
|
||||
THREADLIB = -lpthread -ldl
|
||||
include $(TOP)/main.mk
|
||||
########################################################
|
||||
}
|
||||
|
||||
array set ::Configs {
|
||||
"Default" {
|
||||
-O2
|
||||
}
|
||||
"Unlock-Notify" {
|
||||
-O2
|
||||
-DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
-DSQLITE_THREADSAFE
|
||||
-DOS_UNIX
|
||||
-DSQLITE_TCL_DEFAULT_FULLMUTEX=1
|
||||
}
|
||||
"Secure-Delete" {
|
||||
-O2
|
||||
-DSQLITE_SECURE_DELETE=1
|
||||
-DSQLITE_SOUNDEX=1
|
||||
}
|
||||
"Update-Delete-Limit" {
|
||||
-O2
|
||||
-DSQLITE_DEFAULT_FILE_FORMAT=4
|
||||
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1
|
||||
}
|
||||
"Debug-One" {
|
||||
-O2
|
||||
-DSQLITE_DEBUG=1
|
||||
-DSQLITE_MEMDEBUG=1
|
||||
-DSQLITE_MUTEX_NOOP=1
|
||||
-DSQLITE_TCL_DEFAULT_FULLMUTEX=1
|
||||
-DSQLITE_ENABLE_FTS3=1
|
||||
-DSQLITE_ENABLE_RTREE=1
|
||||
-DSQLITE_ENABLE_MEMSYS5=1
|
||||
-DSQLITE_ENABLE_MEMSYS3=1
|
||||
-DSQLITE_ENABLE_COLUMN_METADATA=1
|
||||
}
|
||||
"Memory-Leak" {
|
||||
-O2
|
||||
-DSQLITE_DEBUG=1
|
||||
-DSQLITE_MEMDEBUG=1
|
||||
-DSQLITE_OMIT_LOOKASIDE=1
|
||||
-DSQLITE_ENABLE_ASYNCIO=1
|
||||
-DSQLITE_TCL_DEFAULT_FULLMUTEX=1
|
||||
}
|
||||
"Device-One" {
|
||||
-O2
|
||||
-DSQLITE_DEBUG=1
|
||||
-DSQLITE_ENABLE_MEMORY_MANAGEMENT=1
|
||||
-DSQLITE_DISABLE_LFS=1
|
||||
-DSQLITE_DEFAULT_AUTOVACUUM=1
|
||||
-DSQLITE_DEFAULT_PAGE_SIZE=1024
|
||||
-DSQLITE_MAX_PAGE_SIZE=4096
|
||||
-DSQLITE_DEFAULT_CACHE_SIZE=64
|
||||
-DSQLITE_DEFAULT_TEMP_CACHE_SIZE=32
|
||||
-DSQLITE_TEMP_STORE=3
|
||||
-DSQLITE_OMIT_PROGRESS_CALLBACK=1
|
||||
-DSQLITE_OMIT_LOAD_EXTENSION=1
|
||||
-DSQLITE_OMIT_VIRTUALTABLE=1
|
||||
-DSQLITE_ENABLE_IOTRACE=1
|
||||
-DSQLITE_ENABLE_ATOMIC_WRITE=1
|
||||
}
|
||||
"Locking-Style" {
|
||||
-O2
|
||||
-DSQLITE_ENABLE_LOCKING_STYLE=1
|
||||
}
|
||||
"OS-X" {
|
||||
-DSQLITE_ENABLE_LOCKING_STYLE=1
|
||||
-DSQLITE_TCL_DEFAULT_FULLMUTEX=1
|
||||
}
|
||||
"Extra-Robustness" {
|
||||
-DSQLITE_ENABLE_OVERSIZE_CELL_CHECK=1
|
||||
}
|
||||
"Coverage" {
|
||||
-O0
|
||||
-fprofile-arcs
|
||||
-ftest-coverage
|
||||
-DSQLITE_COVERAGE_TEST=1
|
||||
}
|
||||
}
|
||||
|
||||
array set ::Platforms {
|
||||
Linux-x86_64 {
|
||||
"Secure-Delete" test
|
||||
"Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test"
|
||||
"Device-One" fulltest
|
||||
"Update-Delete-Limit" test
|
||||
"Debug-One" test
|
||||
"Extra-Robustness" test
|
||||
"Memory-Leak" fulltest
|
||||
"Default" test
|
||||
}
|
||||
Linux-i686 {
|
||||
"Default" test
|
||||
"Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test"
|
||||
"Device-One" fulltest
|
||||
}
|
||||
Darwin-i386 {
|
||||
"OS-X" test
|
||||
"Locking-Style" fulltest
|
||||
}
|
||||
}
|
||||
|
||||
# End of configuration section.
|
||||
#########################################################################
|
||||
#########################################################################
|
||||
|
||||
foreach {key value} [array get ::Platforms] {
|
||||
foreach {v t} $value {
|
||||
if {0==[info exists ::Configs($v)]} {
|
||||
puts stderr "No such configuration: \"$v\""
|
||||
exit -1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proc run_test_suite {name testtarget config} {
|
||||
|
||||
# Tcl variable $opts is used to build up the value used to set the
|
||||
# OPTS Makefile variable. Variable $cflags holds the value for
|
||||
# CFLAGS. The makefile will pass OPTS to both gcc and lemon, but
|
||||
# CFLAGS is only passed to gcc.
|
||||
#
|
||||
set cflags ""
|
||||
set opts ""
|
||||
foreach arg $config {
|
||||
if {[string match -D* $arg]} {
|
||||
lappend opts $arg
|
||||
} else {
|
||||
lappend cflags $arg
|
||||
}
|
||||
}
|
||||
|
||||
set cflags [join $cflags " "]
|
||||
set opts [join $opts " "]
|
||||
append opts " -DSQLITE_NO_SYNC=1 -DHAVE_USLEEP"
|
||||
|
||||
# Set the sub-directory to use.
|
||||
#
|
||||
set dir [string tolower [string map {- _ " " _} $name]]
|
||||
|
||||
if {$::tcl_platform(platform)=="windows"} {
|
||||
append opts " -DSQLITE_OS_WIN=1"
|
||||
} elseif {$::tcl_platform(platform)=="os2"} {
|
||||
append opts " -DSQLITE_OS_OS2=1"
|
||||
} else {
|
||||
append opts " -DSQLITE_OS_UNIX=1"
|
||||
}
|
||||
|
||||
# Run the test.
|
||||
#
|
||||
set makefile [file normalize $::MAKEFILE]
|
||||
file mkdir $dir
|
||||
puts -nonewline "Testing configuration \"$name\" (logfile=$dir/test.log)..."
|
||||
flush stdout
|
||||
|
||||
set makecmd [concat \
|
||||
[list exec make -C $dir -f $makefile clean] \
|
||||
$testtarget \
|
||||
[list CFLAGS=$cflags OPTS=$opts >& $dir/test.log] \
|
||||
]
|
||||
set rc [catch $makecmd]
|
||||
|
||||
if {$rc} {
|
||||
puts " FAILED."
|
||||
} else {
|
||||
puts "Ok."
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# This proc processes the command line options passed to this script.
|
||||
# Currently the only option supported is "-makefile", default
|
||||
# "releasetest.mk". Set the ::MAKEFILE variable to the value of this
|
||||
# option.
|
||||
#
|
||||
proc process_options {argv} {
|
||||
set ::MAKEFILE releasetest.mk ;# Default value
|
||||
set ::QUICK 0 ;# Default value
|
||||
set platform $::tcl_platform(os)-$::tcl_platform(machine)
|
||||
|
||||
for {set i 0} {$i < [llength $argv]} {incr i} {
|
||||
switch -- [lindex $argv $i] {
|
||||
-makefile {
|
||||
incr i
|
||||
set ::MAKEFILE [lindex $argv $i]
|
||||
}
|
||||
|
||||
-platform {
|
||||
incr i
|
||||
set platform [lindex $argv $i]
|
||||
}
|
||||
|
||||
-quick {
|
||||
incr i
|
||||
set ::QUICK [lindex $argv $i]
|
||||
}
|
||||
|
||||
default {
|
||||
puts stderr ""
|
||||
puts stderr [string trim $::USAGE_MESSAGE]
|
||||
exit -1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set ::MAKEFILE [file normalize $::MAKEFILE]
|
||||
|
||||
if {0==[info exists ::Platforms($platform)]} {
|
||||
puts "Unknown platform: $platform"
|
||||
puts -nonewline "Set the -platform option to "
|
||||
set print [list]
|
||||
foreach p [array names ::Platforms] {
|
||||
lappend print "\"$p\""
|
||||
}
|
||||
lset print end "or [lindex $print end]"
|
||||
puts "[join $print {, }]."
|
||||
exit
|
||||
}
|
||||
|
||||
set ::CONFIGLIST $::Platforms($platform)
|
||||
puts "Running the following configurations for $platform:"
|
||||
puts " [string trim $::CONFIGLIST]"
|
||||
}
|
||||
|
||||
# Main routine.
|
||||
#
|
||||
proc main {argv} {
|
||||
|
||||
# Process any command line options.
|
||||
process_options $argv
|
||||
|
||||
foreach {zConfig target} $::CONFIGLIST {
|
||||
if {$::QUICK} {set target test}
|
||||
set config_options $::Configs($zConfig)
|
||||
|
||||
run_test_suite $zConfig $target $config_options
|
||||
|
||||
# If the configuration included the SQLITE_DEBUG option, then remove
|
||||
# it and run veryquick.test. If it did not include the SQLITE_DEBUG option
|
||||
# add it and run veryquick.test.
|
||||
set debug_idx [lsearch -glob $config_options -DSQLITE_DEBUG*]
|
||||
if {$debug_idx < 0} {
|
||||
run_test_suite "${zConfig}_debug" test [
|
||||
concat $config_options -DSQLITE_DEBUG=1
|
||||
]
|
||||
} else {
|
||||
run_test_suite "${zConfig}_ndebug" test [
|
||||
lreplace $config_options $debug_idx $debug_idx
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
main $argv
|
Loading…
x
Reference in New Issue
Block a user