]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
"test" targets on all makefiles use --verbose=file --output=test-out.txt.
authordrh <drh@noemail.net>
Wed, 10 Jun 2015 18:53:09 +0000 (18:53 +0000)
committerdrh <drh@noemail.net>
Wed, 10 Jun 2015 18:53:09 +0000 (18:53 +0000)
Add the new "quicktest" target to all makefiles - designed to run in under
three minutes.  The --quick option on releasetest.tcl now uses quicktest.

FossilOrigin-Name: 6ddef2ad35ceb5822fc14c65bc7c6a2662edb63c

Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
test/analyzer1.test
test/extraquick.test [new file with mode: 0644]
test/permutations.test
test/releasetest.tcl
test/sqldiff1.test

index ded1687d342b58f8a2058f07d95da12519ceec89..8952866dc6296c0fe92fa2b22dfeb08fe23fbd72 100644 (file)
@@ -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" > $@
index c3272de0de21f1372ebf81a2382f736a1f9cf50e..f29f66cce3b0574eef29515a41d6bee31cb0b103 100644 (file)
@@ -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 b76972a9edfb893059f1288d705b7ef082f676ec..3131386f3a07eedca5698026fbd3c485077d8ffb 100644 (file)
--- 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
index 5da0c00dd917499d0db00a3a1a83de71e1f9cd57..a38aca8867498714f05d46c962823d73a39799d6 100644 (file)
--- 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
index ca59bdd454d6790bf47579e2658f788c8569719b..3037113ee14546adb89b0e59b0cddd7b6f80c911 100644 (file)
@@ -1 +1 @@
-7b446771cadedafbe8924ad0658adc2597816dc7
\ No newline at end of file
+6ddef2ad35ceb5822fc14c65bc7c6a2662edb63c
\ No newline at end of file
index 7da564ea2b9eee015626918dcdce84e52bdb953d..ac46704fbafe49e6400e9e56073debe63d62db9d 100644 (file)
@@ -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 (file)
index 0000000..f453564
--- /dev/null
@@ -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
index 4b3ac6481b4b779b9de8fbb346b615fdf627c7b0..01779ff50ff547f715eb0adb41442f4b6a6f3d8e 100644 (file)
@@ -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 {
index a120ddf336c4e134a4813ff4c6e82aba55d11a42..6e475c9d29e2de7ee4dddfd7c118ec3b3c34b3e4 100644 (file)
@@ -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} {
index 723b7a5e13f24d379445666add1722f3ee1b8dda..3201fb3654825c9f5477e969fd441c6327cf2579 100644 (file)
@@ -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