@@ -186,7 +186,7 @@ USE_AMALGAMATION = @USE_AMALGAMATION@
186
186
#
187
187
LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
188
188
backup.lo bitvec.lo btmutex.lo btree.lo build.lo \
189
- callback.lo complete.lo ctime.lo date.lo delete.lo \
189
+ callback.lo complete.lo ctime.lo date.lo dbstat.lo delete.lo \
190
190
expr.lo fault.lo fkey.lo \
191
191
fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \
192
192
fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \
@@ -233,6 +233,7 @@ SRC = \
233
233
$(TOP ) /src/complete.c \
234
234
$(TOP ) /src/ctime.c \
235
235
$(TOP ) /src/date.c \
236
+ $(TOP ) /src/dbstat.c \
236
237
$(TOP ) /src/delete.c \
237
238
$(TOP ) /src/expr.c \
238
239
$(TOP ) /src/fault.c \
@@ -275,6 +276,7 @@ SRC = \
275
276
$(TOP ) /src/pcache.h \
276
277
$(TOP ) /src/pcache1.c \
277
278
$(TOP ) /src/pragma.c \
279
+ $(TOP ) /src/pragma.h \
278
280
$(TOP ) /src/prepare.c \
279
281
$(TOP ) /src/printf.c \
280
282
$(TOP ) /src/random.c \
@@ -306,6 +308,7 @@ SRC = \
306
308
$(TOP ) /src/vdbetrace.c \
307
309
$(TOP ) /src/vdbeInt.h \
308
310
$(TOP ) /src/vtab.c \
311
+ $(TOP ) /src/vxworks.h \
309
312
$(TOP ) /src/wal.c \
310
313
$(TOP ) /src/wal.h \
311
314
$(TOP ) /src/walker.c \
@@ -407,7 +410,6 @@ TESTSRC = \
407
410
$(TOP ) /src/test_server.c \
408
411
$(TOP ) /src/test_superlock.c \
409
412
$(TOP ) /src/test_syscall.c \
410
- $(TOP ) /src/test_stat.c \
411
413
$(TOP ) /src/test_tclvar.c \
412
414
$(TOP ) /src/test_thread.c \
413
415
$(TOP ) /src/test_vfs.c \
@@ -441,6 +443,7 @@ TESTSRC2 = \
441
443
$(TOP ) /src/build.c \
442
444
$(TOP ) /src/ctime.c \
443
445
$(TOP ) /src/date.c \
446
+ $(TOP ) /src/dbstat.c \
444
447
$(TOP ) /src/expr.c \
445
448
$(TOP ) /src/func.c \
446
449
$(TOP ) /src/insert.c \
@@ -494,12 +497,14 @@ HDR = \
494
497
$(TOP ) /src/pager.h \
495
498
$(TOP ) /src/pcache.h \
496
499
parse.h \
500
+ $(TOP ) /src/pragma.h \
497
501
sqlite3.h \
498
502
$(TOP ) /src/sqlite3ext.h \
499
503
$(TOP ) /src/sqliteInt.h \
500
504
$(TOP ) /src/sqliteLimit.h \
501
505
$(TOP ) /src/vdbe.h \
502
506
$(TOP ) /src/vdbeInt.h \
507
+ $(TOP ) /src/vxworks.h \
503
508
$(TOP ) /src/whereInt.h \
504
509
config.h
505
510
@@ -552,15 +557,29 @@ sqlcipher$(TEXE): $(TOP)/src/shell.c libsqlcipher.la sqlite3.h
552
557
-o $@ $(TOP ) /src/shell.c libsqlcipher.la \
553
558
$(LIBREADLINE ) $(TLIBS ) -rpath " $( libdir) "
554
559
555
- mptester$(EXE ) : sqlite3.c $(TOP ) /mptest/mptest.c
560
+ sqldiff$(TEXE ) : $(TOP ) /tool/sqldiff.c sqlite3.c sqlite3.h
561
+ $(LTLINK ) -o $@ $(TOP ) /tool/sqldiff.c sqlite3.c $(TLIBS )
562
+
563
+ fuzzershell$(TEXE ) : $(TOP ) /tool/fuzzershell.c sqlite3.c sqlite3.h
564
+ $(LTLINK ) -o $@ $(TOP ) /tool/fuzzershell.c sqlite3.c $(TLIBS )
565
+
566
+ mptester$(TEXE ) : sqlite3.c $(TOP ) /mptest/mptest.c
556
567
$(LTLINK ) -o $@ -I. $(TOP ) /mptest/mptest.c sqlite3.c \
557
568
$(TLIBS ) -rpath " $( libdir) "
558
569
559
- mptest : mptester$(EXE )
560
- rm -f mptest1.db
561
- ./mptester$(EXE ) mptest1.db $(TOP ) /mptest/crash01.test
562
- rm -f mptest2.db
563
- ./mptester$(EXE ) mptest2.db $(TOP ) /mptest/multiwrite01.test
570
+ MPTEST1 =./mptester$(TEXE ) mptest.db $(TOP ) /mptest/crash01.test --repeat 20
571
+ MPTEST2 =./mptester$(TEXE ) mptest.db $(TOP ) /mptest/multiwrite01.test --repeat 20
572
+ mptest : mptester$(TEXE )
573
+ rm -f mptest.db
574
+ $(MPTEST1 ) --journalmode DELETE
575
+ $(MPTEST2 ) --journalmode WAL
576
+ $(MPTEST1 ) --journalmode WAL
577
+ $(MPTEST2 ) --journalmode PERSIST
578
+ $(MPTEST1 ) --journalmode PERSIST
579
+ $(MPTEST2 ) --journalmode TRUNCATE
580
+ $(MPTEST1 ) --journalmode TRUNCATE
581
+ $(MPTEST2 ) --journalmode DELETE
582
+
564
583
565
584
# This target creates a directory named "tsrc" and fills it with
566
585
# copies of all of the C source code and header files needed to
@@ -667,6 +686,9 @@ ctime.lo: $(TOP)/src/ctime.c $(HDR)
667
686
date.lo : $(TOP ) /src/date.c $(HDR )
668
687
$(LTCOMPILE ) $(TEMP_STORE ) -c $(TOP ) /src/date.c
669
688
689
+ dbstat.lo : $(TOP ) /src/dbstat.c $(HDR )
690
+ $(LTCOMPILE ) $(TEMP_STORE ) -c $(TOP ) /src/dbstat.c
691
+
670
692
delete.lo : $(TOP ) /src/delete.c $(HDR )
671
693
$(LTCOMPILE ) $(TEMP_STORE ) -c $(TOP ) /src/delete.c
672
694
@@ -966,39 +988,48 @@ testfixture$(TEXE): $(TESTFIXTURE_SRC)
966
988
-o $@ $(TESTFIXTURE_SRC ) $(LIBTCL ) $(TLIBS )
967
989
968
990
# A very detailed test running most or all test cases
969
- fulltest : testfixture$(TEXE ) sqlcipher$(TEXE )
991
+ fulltest : testfixture$(TEXE ) sqlcipher$(TEXE ) fuzztest
970
992
./testfixture$(TEXE ) $(TOP ) /test/all.test
971
993
972
994
# Really really long testing
973
- soaktest : testfixture$(TEXE ) sqlcipher$(TEXE )
995
+ soaktest : testfixture$(TEXE ) sqlcipher$(TEXE ) fuzzoomtest
974
996
./testfixture$(TEXE ) $(TOP ) /test/all.test -soak=1
975
997
976
998
# Do extra testing but not aeverything.
977
999
fulltestonly : testfixture$(TEXE ) sqlcipher$(TEXE )
978
1000
./testfixture$(TEXE ) $(TOP ) /test/full.test
979
1001
1002
+ # Fuzz testing
1003
+ fuzztest : fuzzershell$(TEXE )
1004
+ ./fuzzershell$(TEXE ) $(TOP ) /test/fuzzdata1.txt $(TOP ) /test/fuzzdata2.txt
1005
+
1006
+ fuzzoomtest : fuzzershell$(TEXE )
1007
+ ./fuzzershell$(TEXE ) -f $(TOP ) /test/fuzzdata1.txt --oom
1008
+
980
1009
# This is the common case. Run many tests but not those that take
981
1010
# a really long time.
982
1011
#
983
- test : testfixture$(TEXE ) sqlcipher$(TEXE )
1012
+ test : testfixture$(TEXE ) sqlcipher$(TEXE ) fuzztest
984
1013
./testfixture$(TEXE ) $(TOP ) /test/veryquick.test
985
1014
986
1015
# Run a test using valgrind. This can take a really long time
987
1016
# because valgrind is so much slower than a native machine.
988
1017
#
989
- valgrindtest : testfixture$(TEXE ) sqlite3$(TEXE )
1018
+ valgrindtest : testfixture$(TEXE ) sqlite3$(TEXE ) fuzzershell$(TEXE )
1019
+ valgrind -v ./fuzzershell$(TEXE ) -f $(TOP ) /test/fuzzdata1.txt
990
1020
OMIT_MISUSE=1 valgrind -v ./testfixture$(TEXE ) $(TOP ) /test/permutations.test valgrind
991
1021
992
1022
# A very fast test that checks basic sanity. The name comes from
993
1023
# the 60s-era electronics testing: "Turn it on and see if smoke
994
1024
# comes out."
995
1025
#
996
- smoketest : testfixture$(TEXE )
1026
+ smoketest : testfixture$(TEXE ) fuzzershell $( TEXE )
997
1027
./testfixture$(TEXE ) $(TOP ) /test/main.test
998
1028
999
- sqlite3_analyzer.c : sqlite3.c $(TOP ) /src/test_stat.c $( TOP ) /src/ tclsqlite.c $(TOP ) /tool/spaceanal.tcl
1029
+ sqlite3_analyzer.c : sqlite3.c $(TOP ) /src/tclsqlite.c $(TOP ) /tool/spaceanal.tcl
1000
1030
echo " #define TCLSH 2" > $@
1001
- cat sqlite3.c $(TOP ) /src/test_stat.c $(TOP ) /src/tclsqlite.c >> $@
1031
+ echo " #define SQLITE_ENABLE_DBSTAT_VTAB" >> $@
1032
+ cat sqlite3.c $(TOP ) /src/tclsqlite.c >> $@
1002
1033
echo " static const char *tclsh_main_loop(void){" >> $@
1003
1034
echo " static const char *zMainloop = " >> $@
1004
1035
$(NAWK ) -f $(TOP ) /tool/tostr.awk $(TOP ) /tool/spaceanal.tcl >> $@
@@ -1028,7 +1059,7 @@ LogEst$(TEXE): $(TOP)/tool/logest.c sqlite3.h
1028
1059
wordcount$(TEXE ) : $(TOP ) /test/wordcount.c sqlite3.c
1029
1060
$(LTLINK ) -o $@ $(TOP ) /test/wordcount.c sqlite3.c $(TLIBS )
1030
1061
1031
- speedtest1$(TEXE ) : $(TOP ) /test/wordcount .c sqlite3.lo
1062
+ speedtest1$(TEXE ) : $(TOP ) /test/speedtest1 .c sqlite3.lo
1032
1063
$(LTLINK ) -o $@ $(TOP ) /test/speedtest1.c sqlite3.lo $(TLIBS )
1033
1064
1034
1065
# This target will fail if the SQLite amalgamation contains any exported
@@ -1080,7 +1111,7 @@ install: sqlcipher$(BEXE) lib_install sqlite3.h sqlcipher.pc ${HAVE_TCL:1=tcl_in
1080
1111
$(INSTALL ) -m 0644 sqlcipher.pc $(DESTDIR )$(pkgconfigdir )
1081
1112
1082
1113
pkgIndex.tcl :
1083
- echo ' package ifneeded sqlite3 $(RELEASE) [list load $(TCLLIBDIR)/libtclsqlite3.so sqlite3]' > $@
1114
+ echo ' package ifneeded sqlite3 $(RELEASE) [list load $(TCLLIBDIR)/libtclsqlite3$(SHLIB_SUFFIX) sqlite3]' > $@
1084
1115
tcl_install : lib_install libtclsqlite3.la pkgIndex.tcl
1085
1116
$(INSTALL ) -d $(DESTDIR )$(TCLLIBDIR )
1086
1117
$(LTINSTALL ) libtclsqlite3.la $(DESTDIR )$(TCLLIBDIR )
0 commit comments