@@ -186,7 +186,7 @@ USE_AMALGAMATION = @USE_AMALGAMATION@
186186#
187187LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
188188 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 \
190190 expr.lo fault.lo fkey.lo \
191191 fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \
192192 fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \
@@ -233,6 +233,7 @@ SRC = \
233233 $(TOP ) /src/complete.c \
234234 $(TOP ) /src/ctime.c \
235235 $(TOP ) /src/date.c \
236+ $(TOP ) /src/dbstat.c \
236237 $(TOP ) /src/delete.c \
237238 $(TOP ) /src/expr.c \
238239 $(TOP ) /src/fault.c \
@@ -275,6 +276,7 @@ SRC = \
275276 $(TOP ) /src/pcache.h \
276277 $(TOP ) /src/pcache1.c \
277278 $(TOP ) /src/pragma.c \
279+ $(TOP ) /src/pragma.h \
278280 $(TOP ) /src/prepare.c \
279281 $(TOP ) /src/printf.c \
280282 $(TOP ) /src/random.c \
@@ -306,6 +308,7 @@ SRC = \
306308 $(TOP ) /src/vdbetrace.c \
307309 $(TOP ) /src/vdbeInt.h \
308310 $(TOP ) /src/vtab.c \
311+ $(TOP ) /src/vxworks.h \
309312 $(TOP ) /src/wal.c \
310313 $(TOP ) /src/wal.h \
311314 $(TOP ) /src/walker.c \
@@ -407,7 +410,6 @@ TESTSRC = \
407410 $(TOP ) /src/test_server.c \
408411 $(TOP ) /src/test_superlock.c \
409412 $(TOP ) /src/test_syscall.c \
410- $(TOP ) /src/test_stat.c \
411413 $(TOP ) /src/test_tclvar.c \
412414 $(TOP ) /src/test_thread.c \
413415 $(TOP ) /src/test_vfs.c \
@@ -441,6 +443,7 @@ TESTSRC2 = \
441443 $(TOP ) /src/build.c \
442444 $(TOP ) /src/ctime.c \
443445 $(TOP ) /src/date.c \
446+ $(TOP ) /src/dbstat.c \
444447 $(TOP ) /src/expr.c \
445448 $(TOP ) /src/func.c \
446449 $(TOP ) /src/insert.c \
@@ -494,12 +497,14 @@ HDR = \
494497 $(TOP ) /src/pager.h \
495498 $(TOP ) /src/pcache.h \
496499 parse.h \
500+ $(TOP ) /src/pragma.h \
497501 sqlite3.h \
498502 $(TOP ) /src/sqlite3ext.h \
499503 $(TOP ) /src/sqliteInt.h \
500504 $(TOP ) /src/sqliteLimit.h \
501505 $(TOP ) /src/vdbe.h \
502506 $(TOP ) /src/vdbeInt.h \
507+ $(TOP ) /src/vxworks.h \
503508 $(TOP ) /src/whereInt.h \
504509 config.h
505510
@@ -552,15 +557,29 @@ sqlcipher$(TEXE): $(TOP)/src/shell.c libsqlcipher.la sqlite3.h
552557 -o $@ $(TOP ) /src/shell.c libsqlcipher.la \
553558 $(LIBREADLINE ) $(TLIBS ) -rpath " $( libdir) "
554559
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
556567 $(LTLINK ) -o $@ -I. $(TOP ) /mptest/mptest.c sqlite3.c \
557568 $(TLIBS ) -rpath " $( libdir) "
558569
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+
564583
565584# This target creates a directory named "tsrc" and fills it with
566585# copies of all of the C source code and header files needed to
@@ -667,6 +686,9 @@ ctime.lo: $(TOP)/src/ctime.c $(HDR)
667686date.lo : $(TOP ) /src/date.c $(HDR )
668687 $(LTCOMPILE ) $(TEMP_STORE ) -c $(TOP ) /src/date.c
669688
689+ dbstat.lo : $(TOP ) /src/dbstat.c $(HDR )
690+ $(LTCOMPILE ) $(TEMP_STORE ) -c $(TOP ) /src/dbstat.c
691+
670692delete.lo : $(TOP ) /src/delete.c $(HDR )
671693 $(LTCOMPILE ) $(TEMP_STORE ) -c $(TOP ) /src/delete.c
672694
@@ -966,39 +988,48 @@ testfixture$(TEXE): $(TESTFIXTURE_SRC)
966988 -o $@ $(TESTFIXTURE_SRC ) $(LIBTCL ) $(TLIBS )
967989
968990# A very detailed test running most or all test cases
969- fulltest : testfixture$(TEXE ) sqlcipher$(TEXE )
991+ fulltest : testfixture$(TEXE ) sqlcipher$(TEXE ) fuzztest
970992 ./testfixture$(TEXE ) $(TOP ) /test/all.test
971993
972994# Really really long testing
973- soaktest : testfixture$(TEXE ) sqlcipher$(TEXE )
995+ soaktest : testfixture$(TEXE ) sqlcipher$(TEXE ) fuzzoomtest
974996 ./testfixture$(TEXE ) $(TOP ) /test/all.test -soak=1
975997
976998# Do extra testing but not aeverything.
977999fulltestonly : testfixture$(TEXE ) sqlcipher$(TEXE )
9781000 ./testfixture$(TEXE ) $(TOP ) /test/full.test
9791001
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+
9801009# This is the common case. Run many tests but not those that take
9811010# a really long time.
9821011#
983- test : testfixture$(TEXE ) sqlcipher$(TEXE )
1012+ test : testfixture$(TEXE ) sqlcipher$(TEXE ) fuzztest
9841013 ./testfixture$(TEXE ) $(TOP ) /test/veryquick.test
9851014
9861015# Run a test using valgrind. This can take a really long time
9871016# because valgrind is so much slower than a native machine.
9881017#
989- valgrindtest : testfixture$(TEXE ) sqlite3$(TEXE )
1018+ valgrindtest : testfixture$(TEXE ) sqlite3$(TEXE ) fuzzershell$(TEXE )
1019+ valgrind -v ./fuzzershell$(TEXE ) -f $(TOP ) /test/fuzzdata1.txt
9901020 OMIT_MISUSE=1 valgrind -v ./testfixture$(TEXE ) $(TOP ) /test/permutations.test valgrind
9911021
9921022# A very fast test that checks basic sanity. The name comes from
9931023# the 60s-era electronics testing: "Turn it on and see if smoke
9941024# comes out."
9951025#
996- smoketest : testfixture$(TEXE )
1026+ smoketest : testfixture$(TEXE ) fuzzershell $( TEXE )
9971027 ./testfixture$(TEXE ) $(TOP ) /test/main.test
9981028
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
10001030 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 >> $@
10021033 echo " static const char *tclsh_main_loop(void){" >> $@
10031034 echo " static const char *zMainloop = " >> $@
10041035 $(NAWK ) -f $(TOP ) /tool/tostr.awk $(TOP ) /tool/spaceanal.tcl >> $@
@@ -1028,7 +1059,7 @@ LogEst$(TEXE): $(TOP)/tool/logest.c sqlite3.h
10281059wordcount$(TEXE ) : $(TOP ) /test/wordcount.c sqlite3.c
10291060 $(LTLINK ) -o $@ $(TOP ) /test/wordcount.c sqlite3.c $(TLIBS )
10301061
1031- speedtest1$(TEXE ) : $(TOP ) /test/wordcount .c sqlite3.lo
1062+ speedtest1$(TEXE ) : $(TOP ) /test/speedtest1 .c sqlite3.lo
10321063 $(LTLINK ) -o $@ $(TOP ) /test/speedtest1.c sqlite3.lo $(TLIBS )
10331064
10341065# 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
10801111 $(INSTALL ) -m 0644 sqlcipher.pc $(DESTDIR )$(pkgconfigdir )
10811112
10821113pkgIndex.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]' > $@
10841115tcl_install : lib_install libtclsqlite3.la pkgIndex.tcl
10851116 $(INSTALL ) -d $(DESTDIR )$(TCLLIBDIR )
10861117 $(LTINSTALL ) libtclsqlite3.la $(DESTDIR )$(TCLLIBDIR )
0 commit comments