diff --git a/Makefile.in b/Makefile.in index ded1687d34..8952866dc6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -535,6 +535,10 @@ FUZZDATA = \ $(TOP)/test/fuzzdata2.db \ $(TOP)/test/fuzzdata3.db +# Standard options to testfixture +# +TESTOPTS = --verbose=file --output=test-out.txt + # This is the default Makefile target. The objects listed here # are what get build when you type just "make" with no arguments. # @@ -993,11 +997,11 @@ testfixture$(TEXE): $(TESTFIXTURE_SRC) # A very detailed test running most or all test cases fulltest: $(TESTPROGS) fuzztest - ./testfixture$(TEXE) $(TOP)/test/all.test + ./testfixture$(TEXE) $(TOP)/test/all.test $(TESTOPTS) # Really really long testing soaktest: $(TESTPROGS) - ./testfixture$(TEXE) $(TOP)/test/all.test -soak=1 + ./testfixture$(TEXE) $(TOP)/test/all.test -soak=1 $(TESTOPTS) # Do extra testing but not everything. fulltestonly: $(TESTPROGS) @@ -1010,24 +1014,29 @@ fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) valgrind ./fuzzcheck$(TEXE) --cell-size-check --quiet $(FUZZDATA) -# This is the common case. Run many tests but not those that take -# a really long time. +# Minimal testing that runs in less than 3 minutes +# +quicktest: ./testfixture$(TEXE) + ./testfixture$(TEXE) $(TOP)/test/extraquick.test $(TESTOPTS) + +# This is the common case. Run many tests that do not take too long, +# including fuzzcheck, sqlite3_analyzer, and sqldiff tests. # test: $(TESTPROGS) fuzztest - ./testfixture$(TEXE) $(TOP)/test/veryquick.test + ./testfixture$(TEXE) $(TOP)/test/veryquick.test $(TESTOPTS) # Run a test using valgrind. This can take a really long time # because valgrind is so much slower than a native machine. # valgrindtest: $(TESTPROGS) valgrindfuzz - OMIT_MISUSE=1 valgrind -v ./testfixture$(TEXE) $(TOP)/test/permutations.test valgrind + OMIT_MISUSE=1 valgrind -v ./testfixture$(TEXE) $(TOP)/test/permutations.test valgrind $(TESTOPTS) # A very fast test that checks basic sanity. The name comes from # the 60s-era electronics testing: "Turn it on and see if smoke # comes out." # smoketest: $(TESTPROGS) fuzzcheck$(TEXE) - ./testfixture$(TEXE) $(TOP)/test/main.test + ./testfixture$(TEXE) $(TOP)/test/main.test $(TESTOPTS) sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl echo "#define TCLSH 2" > $@ diff --git a/Makefile.msc b/Makefile.msc index c3272de0de..f29f66cce3 100644 --- a/Makefile.msc +++ b/Makefile.msc @@ -1203,6 +1203,9 @@ FUZZDATA = \ $(TOP)\test\fuzzdata2.db \ $(TOP)\test\fuzzdata3.db +# Standard options to testfixture +# +TESTOPTS = --verbose=file --output=test-out.txt # This is the default Makefile target. The objects listed here # are what get build when you type just "make" with no arguments. @@ -1677,28 +1680,36 @@ testfixture.exe: $(TESTFIXTURE_SRC) $(LIBRESOBJS) $(HDR) /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) extensiontest: testfixture.exe testloadext.dll - .\testfixture.exe $(TOP)\test\loadext.test + .\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS) fulltest: $(TESTPROGS) fuzztest - .\testfixture.exe $(TOP)\test\all.test + .\testfixture.exe $(TOP)\test\all.test $(TESTOPTS) soaktest: $(TESTPROGS) - .\testfixture.exe $(TOP)\test\all.test -soak=1 + .\testfixture.exe $(TOP)\test\all.test -soak=1 $(TESTOPTS) fulltestonly: $(TESTPROGS) fuzztest .\testfixture.exe $(TOP)\test\full.test queryplantest: testfixture.exe sqlite3.exe - .\testfixture.exe $(TOP)\test\permutations.test queryplanner + .\testfixture.exe $(TOP)\test\permutations.test queryplanner $(TESTOPTS) fuzztest: fuzzcheck.exe .\fuzzcheck.exe $(FUZZDATA) +# Minimal testing that runs in less than 3 minutes (on a fast machine) +# +quicktest: .\testfixture.exe + .\testfixture.exe $(TOP)\test\extraquick.test $(TESTOPTS) + +# This is the common case. Run many tests that do not take too long, +# including fuzzcheck, sqlite3_analyzer, and sqldiff tests. +# test: $(TESTPROGS) fuzztest - .\testfixture.exe $(TOP)\test\veryquick.test + .\testfixture.exe $(TOP)\test\veryquick.test $(TESTOPTS) smoketest: $(TESTPROGS) - .\testfixture.exe $(TOP)\test\main.test + .\testfixture.exe $(TOP)\test\main.test $(TESTOPTS) sqlite3_analyzer.c: $(SQLITE3C) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl echo #define TCLSH 2 > $@ diff --git a/main.mk b/main.mk index b76972a9ed..3131386f3a 100644 --- a/main.mk +++ b/main.mk @@ -416,6 +416,10 @@ FUZZDATA = \ $(TOP)/test/fuzzdata2.db \ $(TOP)/test/fuzzdata3.db +# Standard options to testfixture +# +TESTOPTS = --verbose=file --output=test-out.txt + # This is the default Makefile target. The objects listed here # are what get build when you type just "make" with no arguments. # @@ -668,16 +672,16 @@ fts3-testfixture$(EXE): sqlite3.c fts3amal.c $(TESTSRC) $(TOP)/src/tclsqlite.c -o testfixture$(EXE) $(LIBTCL) $(THREADLIB) fulltest: $(TESTPROGS) fuzztest - ./testfixture$(EXE) $(TOP)/test/all.test + ./testfixture$(EXE) $(TOP)/test/all.test $(TESTOPTS) soaktest: $(TESTPROGS) - ./testfixture$(EXE) $(TOP)/test/all.test -soak=1 + ./testfixture$(EXE) $(TOP)/test/all.test -soak=1 $(TESTOPTS) fulltestonly: $(TESTPROGS) fuzztest - ./testfixture$(EXE) $(TOP)/test/full.test + ./testfixture$(EXE) $(TOP)/test/full.test $(TESTOPTS) queryplantest: testfixture$(EXE) sqlite3$(EXE) - ./testfixture$(EXE) $(TOP)/test/permutations.test queryplanner + ./testfixture$(EXE) $(TOP)/test/permutations.test queryplanner $(TESTOPTS) fuzztest: fuzzcheck$(EXE) $(FUZZDATA) ./fuzzcheck$(EXE) $(FUZZDATA) @@ -685,21 +689,31 @@ fuzztest: fuzzcheck$(EXE) $(FUZZDATA) valgrindfuzz: fuzzcheck$(EXE) $(FUZZDATA) valgrind ./fuzzcheck$(EXE) --cell-size-check --quiet $(FUZZDATA) +# A very quick test using only testfixture and omitting all the slower +# tests. Designed to run in under 3 minutes on a workstation. +# +quicktest: ./testfixture$(EXE) + ./testfixture$(EXE) $(TOP)/test/extraquick.test $(TESTOPTS) + +# The default test case. Runs most of the faster standard TCL tests, +# and fuzz tests, and sqlite3_analyzer and sqldiff tests. +# test: $(TESTPROGS) fuzztest - ./testfixture$(EXE) $(TOP)/test/veryquick.test + ./testfixture$(EXE) $(TOP)/test/veryquick.test $(TESTOPTS) # Run a test using valgrind. This can take a really long time # because valgrind is so much slower than a native machine. # valgrindtest: $(TESTPROGS) valgrindfuzz - OMIT_MISUSE=1 valgrind -v ./testfixture$(EXE) $(TOP)/test/permutations.test valgrind + OMIT_MISUSE=1 valgrind -v \ + ./testfixture$(EXE) $(TOP)/test/permutations.test valgrind $(TESTOPTS) # A very fast test that checks basic sanity. The name comes from # the 60s-era electronics testing: "Turn it on and see if smoke # comes out." # smoketest: $(TESTPROGS) fuzzcheck$(EXE) - ./testfixture$(EXE) $(TOP)/test/main.test + ./testfixture$(EXE) $(TOP)/test/main.test $(TESTOPTS) # The next two rules are used to support the "threadtest" target. Building # threadtest runs a few thread-safety tests that are implemented in C. This diff --git a/manifest b/manifest index 5da0c00dd9..a38aca8867 100644 --- a/manifest +++ b/manifest @@ -1,9 +1,9 @@ -C Avoid\spassing\sconstraints\sthat\sare\sunusable\sdue\sto\sLEFT\sor\sCROSS\sjoins\sto\svirtual\stable\sxBestIndex()\smethods. -D 2015-06-10T14:27:40.648 +C "test"\stargets\son\sall\smakefiles\suse\s--verbose=file\s--output=test-out.txt.\nAdd\sthe\snew\s"quicktest"\starget\sto\sall\smakefiles\s-\sdesigned\sto\srun\sin\sunder\nthree\sminutes.\s\sThe\s--quick\soption\son\sreleasetest.tcl\snow\suses\squicktest. +D 2015-06-10T18:53:09.696 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f -F Makefile.in 580e006530fab67ccd34926ce2eda66d326af60f +F Makefile.in 1063c58075b7400d93326b0eb332b48a54f53025 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 -F Makefile.msc 5438dc167466f51349ab0c4497aef547d0c9352c +F Makefile.msc 5a8418c81f736dfa953c809af1a48398017b3610 F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858 F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 F VERSION ce0ae95abd7121c534f6917c1c8f2b70d9acd4db @@ -171,7 +171,7 @@ F ext/userauth/userauth.c 5fa3bdb492f481bbc1709fc83c91ebd13460c69e F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 -F main.mk 033741a45df95c577814914b13d182a0b6c7dc89 +F main.mk 68f86c21505d6b66765a13c193f00a53dde6a212 F mkopcodec.awk c2ff431854d702cdd2d779c9c0d1f58fa16fa4ea F mkopcodeh.awk d5e22023b5238985bb54a72d33e0ac71fe4f8a32 F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83 @@ -357,7 +357,7 @@ F test/analyzeC.test 555a6cc388b9818b6eda6df816f01ce0a75d3a93 F test/analyzeD.test 08f9d0bee4e118a66fff3a32d02dbe0ee0a2b594 F test/analyzeE.test 8684e8ac5722fb97c251887ad97e5d496a98af1d F test/analyzeF.test 7ccd7a04f7d3061bde1a8a4dacc4792edccf6bf2 -F test/analyzer1.test e3bccac3be49382050464952998a631bf51e3ce1 +F test/analyzer1.test 498e2ff4b62740c2751c3a2f8b744fe26689fae9 F test/async.test 1d0e056ba1bb9729283a0f22718d3a25e82c277b F test/async2.test c0a9bd20816d7d6a2ceca7b8c03d3d69c28ffb8b F test/async3.test d73a062002376d7edc1fe3edff493edbec1fc2f7 @@ -526,6 +526,7 @@ F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7 F test/exists.test 8f7b27b61c2fbe5822f0a1f899c715d14e416e30 F test/expr.test 79c3e7502d9e571553b85f0ecc8ff2ac7d0e4931 F test/extension01.test 00d13cec817f331a687a243e0e5a2d87b0e358c9 +F test/extraquick.test cb254400bd42bfb777ff675356aabf3287978f79 F test/fallocate.test 3e979af17dfa7e5e9dda5eba1a696c04fa9d47f7 F test/filectrl.test 14fa712e42c4cb791e09dfd58a6a03efb47ef13a F test/filefmt.test cb34663f126cbc2d358af552dcaf5c72769b0146 @@ -824,7 +825,7 @@ F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305 F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025 F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff -F test/permutations.test 32e2b82e0dfbe5c6b6b38a5c1f4cac194298ad4e +F test/permutations.test 6b0f339a4d5f00041555a986dde8fbe8f54c25bc F test/pragma.test be7195f0aa72bdb8a512133e9640ac40f15b57a2 F test/pragma2.test f624a496a95ee878e81e59961eade66d5c00c028 F test/pragma3.test 6f849ccffeee7e496d2f2b5e74152306c0b8757c @@ -843,7 +844,7 @@ F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df F test/rdonly.test 64e2696c322e3538df0b1ed624e21f9a23ed9ff8 F test/regexp1.test 497ea812f264d12b6198d6e50a76be4a1973a9d8 F test/reindex.test 44edd3966b474468b823d481eafef0c305022254 -F test/releasetest.tcl 3e906a8bbd047b8e1f035984fbdc96df4caaea47 +F test/releasetest.tcl 2aaffa548a8f8d10053b20bcf68a1b5a01081e51 F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb F test/rollback.test 458fe73eb3ffdfdf9f6ba3e9b7350a6220414dea F test/rollback2.test fc14cf6d1a2b250d2735ef16124b971bce152f14 @@ -929,7 +930,7 @@ F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa F test/speed4p.test 0e51908951677de5a969b723e03a27a1c45db38b F test/speedtest1.c 9f1b745c24886cced3f70ffc666300152a39013c F test/spellfix.test 24f676831acddd2f4056a598fd731a72c6311f49 -F test/sqldiff1.test e5ecfe95b3a2ff6380f0db6ea8bec246b675e122 +F test/sqldiff1.test 8f6bc7c6a5b3585d350d779c6078869ba402f8f5 F test/sqllimits1.test e05786eaed7950ff6a2d00031d001d8a26131e68 F test/stat.test 8de91498c99f5298b303f70f1d1f3b9557af91bf F test/statfault.test f525a7bf633e50afd027700e9a486090684b1ac1 @@ -1285,7 +1286,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P f7b2c70362f10ee0347c1d2318918ffefa53243d a34cd71c8aafaece04a2332a127e9b8e99c1403c -R 83db81ff2fb6c9dcf1dbb41c52657424 -U dan -Z 293899bbe176179f6b2abcd42b5d0831 +P 7b446771cadedafbe8924ad0658adc2597816dc7 +R e13907780a1cb22e147b44d8ea4a5351 +U drh +Z 0da5f15a574d2a2ef40a9dda668b3442 diff --git a/manifest.uuid b/manifest.uuid index ca59bdd454..3037113ee1 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7b446771cadedafbe8924ad0658adc2597816dc7 \ No newline at end of file +6ddef2ad35ceb5822fc14c65bc7c6a2662edb63c \ No newline at end of file diff --git a/test/analyzer1.test b/test/analyzer1.test index 7da564ea2b..ac46704fba 100644 --- a/test/analyzer1.test +++ b/test/analyzer1.test @@ -24,6 +24,11 @@ if {$tcl_platform(platform)=="windows"} { } else { set PROG "./sqlite3_analyzer" } +if {![file exe $PROG]} { + puts "analyzer1 cannot run because $PROG is not available" + finish_test + return +} db close forcedelete test.db test.db-journal test.db-wal sqlite3 db test.db diff --git a/test/extraquick.test b/test/extraquick.test new file mode 100644 index 0000000000..f453564e7f --- /dev/null +++ b/test/extraquick.test @@ -0,0 +1,16 @@ +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file runs most of the tests run by veryquick.test except for those +# that take a long time. +# + +set testdir [file dirname $argv0] +source $testdir/permutations.test + +run_test_suite extraquick + +finish_test diff --git a/test/permutations.test b/test/permutations.test index 4b3ac6481b..01779ff50f 100644 --- a/test/permutations.test +++ b/test/permutations.test @@ -96,7 +96,7 @@ if {$::tcl_platform(platform)!="unix"} { set alltests [test_set $alltests -exclude { all.test async.test quick.test veryquick.test memleak.test permutations.test soak.test fts3.test - mallocAll.test rtree.test full.test + mallocAll.test rtree.test full.test extraquick.test }] set allquicktests [test_set $alltests -exclude { @@ -146,11 +146,22 @@ if {[info exists ::env(TEST_FAILURE)]} { lappend ::testsuitelist xxx test_suite "veryquick" -prefix "" -description { - "Very" quick test suite. Runs in less than 5 minutes on a workstation. + "Very" quick test suite. Runs in minutes on a workstation. This test suite is the same as the "quick" tests, except that some files that test malloc and IO errors are omitted. } -files [ - test_set $allquicktests -exclude *malloc* *ioerr* *fault* + test_set $allquicktests -exclude *malloc* *ioerr* *fault* *bigfile* +] + +test_suite "extraquick" -prefix "" -description { + "Extra" quick test suite. Runs in a few minutes on a workstation. + This test suite is the same as the "veryquick" tests, except that + slower tests are omitted. +} -files [ + test_set $allquicktests -exclude *malloc* *ioerr* *fault* *bigfile* \ + wal3.test fts4merge* sort2.test mmap1.test walcrash* \ + percentile.test where8m.test walcksum.test savepoint3.test \ + fuzzer1.test fuzzer3.test fts3expr3.test ] test_suite "mmap" -prefix "mm-" -description { diff --git a/test/releasetest.tcl b/test/releasetest.tcl index a120ddf336..6e475c9d29 100644 --- a/test/releasetest.tcl +++ b/test/releasetest.tcl @@ -547,7 +547,10 @@ proc process_options {argv} { puts " --srcdir $::SRCDIR" puts " --platform [list $platform]" puts " --config [list $config]" - if {$::QUICK} {puts " --quick"} + if {$::QUICK} { + if {$::QUICK==1} {puts " --quick"} + if {$::QUICK==2} {puts " --veryquick"} + } if {$::MSVC} {puts " --msvc"} if {$::BUILDONLY} {puts " --buildonly"} if {$::DRYRUN} {puts " --dryrun"} @@ -645,7 +648,7 @@ proc main {argv} { } if {$target ne "checksymbols"} { switch -- $::QUICK { - 1 {set target test} + 1 {set target quicktest} 2 {set target smoketest} } if {$::BUILDONLY} { diff --git a/test/sqldiff1.test b/test/sqldiff1.test index 723b7a5e13..3201fb3654 100644 --- a/test/sqldiff1.test +++ b/test/sqldiff1.test @@ -19,6 +19,11 @@ if {$tcl_platform(platform)=="windows"} { } else { set PROG "./sqldiff" } +if {![file exe $PROG]} { + puts "sqldiff cannot run because $PROG is not available" + finish_test + return +} db close forcedelete test.db test2.db sqlite3 db test.db