1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Make sure code *compiles* with each OMIT and ENABLE option. Mostly changes to test modules.

FossilOrigin-Name: 7cc515edc9cade2bc6c74699b3e4153bf2b74ebb
This commit is contained in:
shaneh
2011-02-09 19:55:20 +00:00
parent ecac670a8b
commit bb201344cf
10 changed files with 163 additions and 83 deletions

0
configure vendored Executable file → Normal file
View File

0
install-sh Executable file → Normal file
View File

View File

@@ -1,5 +1,5 @@
C Do\snot\sreport\scorruption\sif\sthe\sthe\sdb\ssize\sheader\sfield\sis\sgreater\sthan\sthe\sfile\ssize\son\sdisk\sunless\sthe\stwo\schange-counter\sheader\sfields\sare\sidentical.\sFix\sfor\sticket\s[89b8c9ac54]. C Make\ssure\scode\s*compiles*\swith\seach\sOMIT\sand\sENABLE\soption.\s\sMostly\schanges\sto\stest\smodules.
D 2011-02-09T18:19:20.526 D 2011-02-09T19:55:20
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 27701a1653595a1f2187dc61c8117e00a6c1d50f F Makefile.in 27701a1653595a1f2187dc61c8117e00a6c1d50f
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -22,7 +22,7 @@ F art/src_logo.gif 9341ef09f0e53cd44c0c9b6fc3c16f7f3d6c2ad9
F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977 F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977
F config.h.in 868fdb48c028421a203470e15c69ada15b9ba673 F config.h.in 868fdb48c028421a203470e15c69ada15b9ba673
F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55 F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55
F configure c38c1947db7ed4adaed2affcb09cea9d3acd5a9a x F configure c38c1947db7ed4adaed2affcb09cea9d3acd5a9a
F configure.ac 87a3c71bbe9c925381c154413eea7f3cdc397244 F configure.ac 87a3c71bbe9c925381c154413eea7f3cdc397244
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538 F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538
@@ -98,7 +98,7 @@ F ext/rtree/rtree_util.tcl 06aab2ed5b826545bf215fff90ecb9255a8647ea
F ext/rtree/sqlite3rtree.h 1af0899c63a688e272d69d8e746f24e76f10a3f0 F ext/rtree/sqlite3rtree.h 1af0899c63a688e272d69d8e746f24e76f10a3f0
F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024 F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F main.mk 54190fab7cdba523e311c274c95ea480f32abfb5 F main.mk 54190fab7cdba523e311c274c95ea480f32abfb5
F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
@@ -129,7 +129,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
F src/ctime.c 7deec4534f3b5a0c3b4a4cbadf809d321f64f9c4 F src/ctime.c 7deec4534f3b5a0c3b4a4cbadf809d321f64f9c4
F src/date.c 1548fdac51377e4e7833251de878b4058c148e1b F src/date.c 1548fdac51377e4e7833251de878b4058c148e1b
F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd
F src/expr.c 1810f3056b11de99cc10e24629edf00e5fbd3a75 F src/expr.c 9b02a6dc3c7b97be01619674abebb59ed8830f1d
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c 17950a28f28b23e8ad3feaac5fc88c324d2f600a F src/fkey.c 17950a28f28b23e8ad3feaac5fc88c324d2f600a
F src/func.c cb41f614edc43b00bfeb030f9768e80eaff47edd F src/func.c cb41f614edc43b00bfeb030f9768e80eaff47edd
@@ -183,8 +183,8 @@ F src/sqliteInt.h 4290fff17fabc6e07fc4338233df0e39e6350ca1
F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44 F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44
F src/status.c 4997380fbb915426fef9e500b4872e79c99267fc F src/status.c 4997380fbb915426fef9e500b4872e79c99267fc
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
F src/tclsqlite.c 549859dc2c143f3deb6a92636a2d27973652c164 F src/tclsqlite.c 879bf8a23d99fc0e99d9177fe1b48896bc796d65
F src/test1.c ddbfff546e22e5c31204c973fdd805a4eda3e208 F src/test1.c 9020310c7617234b33fd1c3064f89524db25f290
F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31 F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31
F src/test3.c 056093cfef69ff4227a6bdb9108564dc7f45e4bc F src/test3.c 056093cfef69ff4227a6bdb9108564dc7f45e4bc
F src/test4.c 0528360b5025688002a5feb6be906ddce52eaaee F src/test4.c 0528360b5025688002a5feb6be906ddce52eaaee
@@ -200,7 +200,7 @@ F src/test_btree.c 47cd771250f09cdc6e12dda5bc71bc0b3abc96e2
F src/test_config.c 9f025a7f3686c94e82dc6d6bd3cbf0f89cd67487 F src/test_config.c 9f025a7f3686c94e82dc6d6bd3cbf0f89cd67487
F src/test_demovfs.c 0aed671636735116fc872c5b03706fd5612488b5 F src/test_demovfs.c 0aed671636735116fc872c5b03706fd5612488b5
F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20 F src/test_func.c cbdec5cededa0761daedde5baf06004a9bf416b5
F src/test_hexio.c 1237f000ec7a491009b1233f5c626ea71bce1ea2 F src/test_hexio.c 1237f000ec7a491009b1233f5c626ea71bce1ea2
F src/test_init.c 5d624ffd0409d424cf9adbfe1f056b200270077c F src/test_init.c 5d624ffd0409d424cf9adbfe1f056b200270077c
F src/test_intarray.c d879bbf8e4ce085ab966d1f3c896a7c8b4f5fc99 F src/test_intarray.c d879bbf8e4ce085ab966d1f3c896a7c8b4f5fc99
@@ -208,7 +208,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
F src/test_journal.c 785edd54f963aefb3c1628124170a56697c68c70 F src/test_journal.c 785edd54f963aefb3c1628124170a56697c68c70
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
F src/test_malloc.c fd6188b1501c0010fb4241ddc9f0d5ac402c688d F src/test_malloc.c fd6188b1501c0010fb4241ddc9f0d5ac402c688d
F src/test_multiplex.c 5990431a852aa21c9a67da748f23d2cf1e21f8fc F src/test_multiplex.c 655cb3b663f87db7d3d2427ea127c9daacae4abc
F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e
F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec
F src/test_osinst.c f408c6a181f2fb04c56273afd5c3e1e82f60392c F src/test_osinst.c f408c6a181f2fb04c56273afd5c3e1e82f60392c
@@ -886,7 +886,7 @@ F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c.tcl cf44512a48112b1ba09590548660a5a6877afdb3 F tool/mksqlite3c.tcl cf44512a48112b1ba09590548660a5a6877afdb3
F tool/mksqlite3h.tcl d76c226a5e8e1f3b5f6593bcabe5e98b3b1ec9ff F tool/mksqlite3h.tcl d76c226a5e8e1f3b5f6593bcabe5e98b3b1ec9ff
F tool/mksqlite3internalh.tcl 7b43894e21bcb1bb39e11547ce7e38a063357e87 F tool/mksqlite3internalh.tcl 7b43894e21bcb1bb39e11547ce7e38a063357e87
F tool/omittest.tcl 27d6f6e3b1e95aeb26a1c140e6eb57771c6d794a F tool/omittest.tcl 71c6f21afa2df91dd299ed317d5751fb628795fe
F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
F tool/restore_jrnl.tcl 6957a34f8f1f0f8285e07536225ec3b292a9024a F tool/restore_jrnl.tcl 6957a34f8f1f0f8285e07536225ec3b292a9024a
F tool/shell1.test f608a009b04c490fd360c5ded458a6f98b4e7ec4 F tool/shell1.test f608a009b04c490fd360c5ded458a6f98b4e7ec4
@@ -906,7 +906,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 38b7cb33c55c1498618721b3a11a35559b755fb2 P 00c4596f0b270120848ab8d06dcdec7813a9a315
R c96c132b43022b566b312ce11044abe1 R 49290511d1319608c18e9f8e70116a97
U dan U shaneh
Z 97626d5db63dee29501d14b760c6105d Z 9431f3ee59a677605bc0096e96d777c4

View File

@@ -1 +1 @@
00c4596f0b270120848ab8d06dcdec7813a9a315 7cc515edc9cade2bc6c74699b3e4153bf2b74ebb

View File

@@ -3251,6 +3251,7 @@ void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
exprCodeBetween(pParse, pExpr, dest, 1, jumpIfNull); exprCodeBetween(pParse, pExpr, dest, 1, jumpIfNull);
break; break;
} }
#ifndef SQLITE_OMIT_SUBQUERY
case TK_IN: { case TK_IN: {
int destIfFalse = sqlite3VdbeMakeLabel(v); int destIfFalse = sqlite3VdbeMakeLabel(v);
int destIfNull = jumpIfNull ? dest : destIfFalse; int destIfNull = jumpIfNull ? dest : destIfFalse;
@@ -3259,6 +3260,7 @@ void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
sqlite3VdbeResolveLabel(v, destIfFalse); sqlite3VdbeResolveLabel(v, destIfFalse);
break; break;
} }
#endif
default: { default: {
r1 = sqlite3ExprCodeTemp(pParse, pExpr, &regFree1); r1 = sqlite3ExprCodeTemp(pParse, pExpr, &regFree1);
sqlite3VdbeAddOp3(v, OP_If, r1, dest, jumpIfNull!=0); sqlite3VdbeAddOp3(v, OP_If, r1, dest, jumpIfNull!=0);
@@ -3392,6 +3394,7 @@ void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
exprCodeBetween(pParse, pExpr, dest, 0, jumpIfNull); exprCodeBetween(pParse, pExpr, dest, 0, jumpIfNull);
break; break;
} }
#ifndef SQLITE_OMIT_SUBQUERY
case TK_IN: { case TK_IN: {
if( jumpIfNull ){ if( jumpIfNull ){
sqlite3ExprCodeIN(pParse, pExpr, dest, dest); sqlite3ExprCodeIN(pParse, pExpr, dest, dest);
@@ -3402,6 +3405,7 @@ void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
} }
break; break;
} }
#endif
default: { default: {
r1 = sqlite3ExprCodeTemp(pParse, pExpr, &regFree1); r1 = sqlite3ExprCodeTemp(pParse, pExpr, &regFree1);
sqlite3VdbeAddOp3(v, OP_IfNot, r1, dest, jumpIfNull!=0); sqlite3VdbeAddOp3(v, OP_IfNot, r1, dest, jumpIfNull!=0);

View File

@@ -2468,7 +2468,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
}else{ }else{
pDb->zProfile = 0; pDb->zProfile = 0;
} }
#ifndef SQLITE_OMIT_TRACE #if !defined(SQLITE_OMIT_TRACE) && !defined(SQLITE_OMIT_FLOATING_POINT)
if( pDb->zProfile ){ if( pDb->zProfile ){
pDb->interp = interp; pDb->interp = interp;
sqlite3_profile(pDb->db, DbProfileHandler, pDb); sqlite3_profile(pDb->db, DbProfileHandler, pDb);
@@ -2652,7 +2652,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
}else{ }else{
pDb->zTrace = 0; pDb->zTrace = 0;
} }
#ifndef SQLITE_OMIT_TRACE #if !defined(SQLITE_OMIT_TRACE) && !defined(SQLITE_OMIT_FLOATING_POINT)
if( pDb->zTrace ){ if( pDb->zTrace ){
pDb->interp = interp; pDb->interp = interp;
sqlite3_trace(pDb->db, DbTraceHandler, pDb); sqlite3_trace(pDb->db, DbTraceHandler, pDb);

View File

@@ -5641,7 +5641,9 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
{ "sqlite3_wal_checkpoint", test_wal_checkpoint, 0 }, { "sqlite3_wal_checkpoint", test_wal_checkpoint, 0 },
{ "sqlite3_wal_checkpoint_v2",test_wal_checkpoint_v2, 0 }, { "sqlite3_wal_checkpoint_v2",test_wal_checkpoint_v2, 0 },
{ "test_sqlite3_log", test_sqlite3_log, 0 }, { "test_sqlite3_log", test_sqlite3_log, 0 },
#ifndef SQLITE_OMIT_EXPLAIN
{ "print_explain_query_plan", test_print_eqp, 0 }, { "print_explain_query_plan", test_print_eqp, 0 },
#endif
}; };
static int bitmask_size = sizeof(Bitmask)*8; static int bitmask_size = sizeof(Bitmask)*8;
int i; int i;

View File

@@ -149,8 +149,13 @@ static void test_destructor_count(
** arguments. It returns the text value returned by the sqlite3_errmsg16() ** arguments. It returns the text value returned by the sqlite3_errmsg16()
** API function. ** API function.
*/ */
#ifndef SQLITE_OMIT_BUILTIN_TEST
void sqlite3BeginBenignMalloc(void); void sqlite3BeginBenignMalloc(void);
void sqlite3EndBenignMalloc(void); void sqlite3EndBenignMalloc(void);
#else
#define sqlite3BeginBenignMalloc()
#define sqlite3EndBenignMalloc()
#endif
static void test_agg_errmsg16_step(sqlite3_context *a, int b,sqlite3_value **c){ static void test_agg_errmsg16_step(sqlite3_context *a, int b,sqlite3_value **c){
} }
static void test_agg_errmsg16_final(sqlite3_context *ctx){ static void test_agg_errmsg16_final(sqlite3_context *ctx){

View File

@@ -24,6 +24,20 @@
#include <assert.h> #include <assert.h>
#include "sqliteInt.h" #include "sqliteInt.h"
/*
** For a build without mutexes, no-op the mutex calls.
*/
#if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE==0
#define sqlite3_mutex_alloc(X) ((sqlite3_mutex*)8)
#define sqlite3_mutex_free(X)
#define sqlite3_mutex_enter(X)
#define sqlite3_mutex_try(X) SQLITE_OK
#define sqlite3_mutex_leave(X)
#define sqlite3_mutex_held(X) ((void)(X),1)
#define sqlite3_mutex_notheld(X) ((void)(X),1)
#endif /* SQLITE_THREADSAFE==0 */
/************************ Shim Definitions ******************************/ /************************ Shim Definitions ******************************/
/* This is the limit on the chunk size. It may be changed by calling /* This is the limit on the chunk size. It may be changed by calling
@@ -64,7 +78,7 @@ typedef struct multiplexConn multiplexConn;
*/ */
struct multiplexGroup { struct multiplexGroup {
sqlite3_file **pReal; /* Handles to each chunk */ sqlite3_file **pReal; /* Handles to each chunk */
char *bOpen; /* 0 if chunk not opened */ char *bOpen; /* array of bools - 0 if chunk not opened */
char *zName; /* Base filename of this group */ char *zName; /* Base filename of this group */
int nName; /* Length of base filename */ int nName; /* Length of base filename */
int flags; /* Flags used for original opening */ int flags; /* Flags used for original opening */

View File

@@ -8,10 +8,12 @@ This Tcl script is used to test the various compile time options
available for omitting code (the SQLITE_OMIT_xxx options). It available for omitting code (the SQLITE_OMIT_xxx options). It
should be invoked as follows: should be invoked as follows:
<script> ?-makefile PATH-TO-MAKEFILE? <script> ?-makefile PATH-TO-MAKEFILE? ?-skip_run?
The default value for ::MAKEFILE is "../Makefile.linux.gcc". The default value for ::MAKEFILE is "../Makefile.linux.gcc".
If -skip_run option is given then only the compile part is attempted.
This script builds the testfixture program and runs the SQLite test suite This script builds the testfixture program and runs the SQLite test suite
once with each SQLITE_OMIT_ option defined and then once with all options once with each SQLITE_OMIT_ option defined and then once with all options
defined together. Each run is performed in a seperate directory created defined together. Each run is performed in a seperate directory created
@@ -46,10 +48,12 @@ they do not respect the OPTS variable.
# #
# #
proc run_quick_test {dir omit_symbol_list} { proc run_quick_test {dir omit_symbol_list} {
set target "testfixture"
# Compile the value of the OPTS Makefile variable. # Compile the value of the OPTS Makefile variable.
set opts "-DSQLITE_MEMDEBUG -DSQLITE_DEBUG -DSQLITE_NO_SYNC" set opts "-DSQLITE_MEMDEBUG -DSQLITE_DEBUG -DSQLITE_NO_SYNC"
if {$::tcl_platform(platform)=="windows"} { if {$::tcl_platform(platform)=="windows"} {
append opts " -DSQLITE_OS_WIN=1" append opts " -DSQLITE_OS_WIN=1"
set target "testfixture.exe"
} elseif {$::tcl_platform(platform)=="os2"} { } elseif {$::tcl_platform(platform)=="os2"} {
append opts " -DSQLITE_OS_OS2=1" append opts " -DSQLITE_OS_OS2=1"
} else { } else {
@@ -69,7 +73,7 @@ catch {
file copy -force ./libtool $dir file copy -force ./libtool $dir
} }
set rc [catch { set rc [catch {
exec make -C $dir -f $::MAKEFILE testfixture OPTS=$opts >& $dir/build.log exec make -C $dir -f $::MAKEFILE $target OPTS=$opts >& $dir/build.log
}] }]
if {$rc} { if {$rc} {
puts "No good. See $dir/build.log." puts "No good. See $dir/build.log."
@@ -91,16 +95,20 @@ catch {
close $wr close $wr
} }
# Run the test suite. if {$::SKIP_RUN} {
puts -nonewline "Testing $dir..." puts "Skip testing $dir."
flush stdout
set rc [catch {
exec make -C $dir -f $::MAKEFILE test OPTS=$opts >& $dir/test.log
}]
if {$rc} {
puts "No good. See $dir/test.log."
} else { } else {
puts "Ok" # Run the test suite.
puts -nonewline "Testing $dir..."
flush stdout
set rc [catch {
exec make -C $dir -f $::MAKEFILE test OPTS=$opts >& $dir/test.log
}]
if {$rc} {
puts "No good. See $dir/test.log."
} else {
puts "Ok"
}
} }
} }
@@ -112,10 +120,12 @@ catch {
# #
proc process_options {argv} { proc process_options {argv} {
if {$::tcl_platform(platform)=="windows" || $::tcl_platform(platform)=="os2"} { if {$::tcl_platform(platform)=="windows" || $::tcl_platform(platform)=="os2"} {
set ::MAKEFILE ../Makefile ;# Default value set ::MAKEFILE ./Makefile ;# Default value
} else { } else {
set ::MAKEFILE ../Makefile.linux-gcc ;# Default value set ::MAKEFILE ./Makefile.linux-gcc ;# Default value
} }
set ::SKIP_RUN 0 ;# Default to attempt test
for {set i 0} {$i < [llength $argv]} {incr i} { for {set i 0} {$i < [llength $argv]} {incr i} {
switch -- [lindex $argv $i] { switch -- [lindex $argv $i] {
-makefile { -makefile {
@@ -123,6 +133,11 @@ proc process_options {argv} {
set ::MAKEFILE [lindex $argv $i] set ::MAKEFILE [lindex $argv $i]
} }
-skip_run {
incr i
set ::SKIP_RUN 1
}
default { default {
puts stderr [string trim $::USAGE_MESSAGE] puts stderr [string trim $::USAGE_MESSAGE]
exit -1 exit -1
@@ -137,56 +152,89 @@ proc process_options {argv} {
proc main {argv} { proc main {argv} {
# List of SQLITE_OMIT_XXX symbols supported by SQLite. # List of SQLITE_OMIT_XXX symbols supported by SQLite.
set ::SYMBOLS [list \ set ::OMIT_SYMBOLS [list \
SQLITE_OMIT_ALTERTABLE \ SQLITE_OMIT_ALTERTABLE \
SQLITE_OMIT_ANALYZE \ SQLITE_OMIT_ANALYZE \
SQLITE_OMIT_ATTACH \ SQLITE_OMIT_ATTACH \
SQLITE_OMIT_AUTHORIZATION \ SQLITE_OMIT_AUTHORIZATION \
SQLITE_OMIT_AUTOINCREMENT \ SQLITE_OMIT_AUTOINCREMENT \
SQLITE_OMIT_AUTOINIT \ SQLITE_OMIT_AUTOINIT \
SQLITE_OMIT_AUTOVACUUM \ SQLITE_OMIT_AUTOMATIC_INDEX \
SQLITE_OMIT_BETWEEN_OPTIMIZATION \ SQLITE_OMIT_AUTORESET \
SQLITE_OMIT_BLOB_LITERAL \ SQLITE_OMIT_AUTOVACUUM \
SQLITE_OMIT_BUILTIN_TEST \ SQLITE_OMIT_BETWEEN_OPTIMIZATION \
SQLITE_OMIT_CAST \ SQLITE_OMIT_BLOB_LITERAL \
SQLITE_OMIT_CHECK \ SQLITE_OMIT_BTREECOUNT \
SQLITE_OMIT_COMPLETE \ SQLITE_OMIT_BUILTIN_TEST \
SQLITE_OMIT_COMPOUND_SELECT \ SQLITE_OMIT_CAST \
SQLITE_OMIT_CONFLICT_CLAUSE \ SQLITE_OMIT_CHECK \
SQLITE_OMIT_DATETIME_FUNCS \ SQLITE_OMIT_COMPILEOPTION_DIAGS \
SQLITE_OMIT_DECLTYPE \ SQLITE_OMIT_COMPLETE \
off_SQLITE_OMIT_DISKIO \ SQLITE_OMIT_COMPOUND_SELECT \
SQLITE_OMIT_EXPLAIN \ SQLITE_OMIT_DATETIME_FUNCS \
SQLITE_OMIT_FLAG_PRAGMAS \ SQLITE_OMIT_DECLTYPE \
SQLITE_OMIT_FLOATING_POINT \ SQLITE_OMIT_DEPRECATED \
SQLITE_OMIT_FOREIGN_KEY \ xxxSQLITE_OMIT_DISKIO \
SQLITE_OMIT_GET_TABLE \ SQLITE_OMIT_EXPLAIN \
SQLITE_OMIT_GLOBALRECOVER \ SQLITE_OMIT_FLAG_PRAGMAS \
SQLITE_OMIT_INCRBLOB \ SQLITE_OMIT_FLOATING_POINT \
SQLITE_OMIT_INTEGRITY_CHECK \ SQLITE_OMIT_FOREIGN_KEY \
SQLITE_OMIT_LIKE_OPTIMIZATION \ SQLITE_OMIT_GET_TABLE \
SQLITE_OMIT_LOAD_EXTENSION \ SQLITE_OMIT_INCRBLOB \
SQLITE_OMIT_LOCALTIME \ SQLITE_OMIT_INTEGRITY_CHECK \
SQLITE_OMIT_MEMORYDB \ SQLITE_OMIT_LIKE_OPTIMIZATION \
SQLITE_OMIT_OR_OPTIMIZATION \ SQLITE_OMIT_LOAD_EXTENSION \
SQLITE_OMIT_PAGER_PRAGMAS \ SQLITE_OMIT_LOCALTIME \
SQLITE_OMIT_PRAGMA \ SQLITE_OMIT_LOOKASIDE \
SQLITE_OMIT_PROGRESS_CALLBACK \ SQLITE_OMIT_MEMORYDB \
SQLITE_OMIT_QUICKBALANCE \ SQLITE_OMIT_OR_OPTIMIZATION \
SQLITE_OMIT_REINDEX \ SQLITE_OMIT_PAGER_PRAGMAS \
SQLITE_OMIT_SCHEMA_PRAGMAS \ SQLITE_OMIT_PRAGMA \
SQLITE_OMIT_PROGRESS_CALLBACK \
SQLITE_OMIT_QUICKBALANCE \
SQLITE_OMIT_REINDEX \
SQLITE_OMIT_SCHEMA_PRAGMAS \
SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS \ SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS \
SQLITE_OMIT_SHARED_CACHE \ SQLITE_OMIT_SHARED_CACHE \
SQLITE_OMIT_SUBQUERY \ SQLITE_OMIT_SUBQUERY \
SQLITE_OMIT_TCL_VARIABLE \ SQLITE_OMIT_TCL_VARIABLE \
SQLITE_OMIT_TEMPDB \ SQLITE_OMIT_TEMPDB \
SQLITE_OMIT_TRACE \ SQLITE_OMIT_TRACE \
SQLITE_OMIT_TRIGGER \ SQLITE_OMIT_TRIGGER \
SQLITE_OMIT_UTF16 \ SQLITE_OMIT_TRUNCATE_OPTIMIZATION \
SQLITE_OMIT_VACUUM \ SQLITE_OMIT_UTF16 \
SQLITE_OMIT_VIEW \ SQLITE_OMIT_VACUUM \
SQLITE_OMIT_VIRTUALTABLE \ SQLITE_OMIT_VIEW \
SQLITE_OMIT_XFER_OPT \ SQLITE_OMIT_VIRTUALTABLE \
SQLITE_OMIT_WAL \
SQLITE_OMIT_WSD \
SQLITE_OMIT_XFER_OPT \
]
set ::ENABLE_SYMBOLS [list \
SQLITE_DISABLE_DIRSYNC \
SQLITE_DISABLE_LFS \
SQLITE_ENABLE_ATOMIC_WRITE \
xxxSQLITE_ENABLE_CEROD \
SQLITE_ENABLE_COLUMN_METADATA \
SQLITE_ENABLE_EXPENSIVE_ASSERT \
xxxSQLITE_ENABLE_FTS1 \
xxxSQLITE_ENABLE_FTS2 \
SQLITE_ENABLE_FTS3 \
SQLITE_ENABLE_FTS3_PARENTHESIS \
SQLITE_ENABLE_FTS4 \
xxxSQLITE_ENABLE_ICU \
SQLITE_ENABLE_IOTRACE \
SQLITE_ENABLE_LOAD_EXTENSION \
SQLITE_ENABLE_LOCKING_STYLE \
SQLITE_ENABLE_MEMORY_MANAGEMENT \
SQLITE_ENABLE_MEMSYS3 \
SQLITE_ENABLE_MEMSYS5 \
SQLITE_ENABLE_OVERSIZE_CELL_CHECK \
SQLITE_ENABLE_RTREE \
SQLITE_ENABLE_STAT2 \
SQLITE_ENABLE_UNLOCK_NOTIFY \
SQLITE_ENABLE_UPDATE_DELETE_LIMIT \
] ]
# Process any command line options. # Process any command line options.
@@ -197,7 +245,7 @@ proc main {argv} {
# and the latter is currently incompatible with the test suite (this should # and the latter is currently incompatible with the test suite (this should
# be fixed, but it will be a lot of work). # be fixed, but it will be a lot of work).
set allsyms [list] set allsyms [list]
foreach s $::SYMBOLS { foreach s $::OMIT_SYMBOLS {
if {$s!="SQLITE_OMIT_FLOATING_POINT" && $s!="SQLITE_OMIT_PRAGMA"} { if {$s!="SQLITE_OMIT_FLOATING_POINT" && $s!="SQLITE_OMIT_PRAGMA"} {
lappend allsyms $s lappend allsyms $s
} }
@@ -207,7 +255,14 @@ proc main {argv} {
# Now try one quick.test with each of the OMIT symbols defined. Included # Now try one quick.test with each of the OMIT symbols defined. Included
# are the OMIT_FLOATING_POINT and OMIT_PRAGMA symbols, even though we # are the OMIT_FLOATING_POINT and OMIT_PRAGMA symbols, even though we
# know they will fail. It's good to be reminded of this from time to time. # know they will fail. It's good to be reminded of this from time to time.
foreach sym $::SYMBOLS { foreach sym $::OMIT_SYMBOLS {
set dirname "test_[string range $sym 7 end]"
run_quick_test $dirname $sym
}
# Try the ENABLE/DISABLE symbols one at a time.
# We don't do them all at once since some are conflicting.
foreach sym $::ENABLE_SYMBOLS {
set dirname "test_[string range $sym 7 end]" set dirname "test_[string range $sym 7 end]"
run_quick_test $dirname $sym run_quick_test $dirname $sym
} }