- Compiler warning checks.
- Linux GCC -Wall -Wextra (the tool/warnings.sh script)
- Mac GCC -Wall -Wextra (the tool/warnings.sh script)
- OpenBSD GCC using options -Wall
- Windows MSVC Win32 /W3
- Windows MSVC Win64 /W3
- sh tool/warnings-clang.sh
- Documentation checks:
- Latest release on the index.html page
- Release announcement in changes.in
- Release accouncement in news.html
- No unresolved hyperlinks in the documentation build
- Requirements marks are up-to-date in both documentation and source code
- The compile-time options are all up-to-date (compile.html)
- Check new/changed documentation for spelling and gramatical mistakes
- Source code change review. "fossil diff --from version-3.8.7 --to branch-3.8.7"
- No stray changes
- All significant changes are mentioned in the "changes" log of the documentation
- New code complies with style guidelines
- New code complies with design rules
- Comments have been updated to reflect code changes
- Variables and functions have been renamed to reflect changes in their use
- Check all calls to sqlite3OsRead() and sqlite3OsWrite() to ensure that offset computations are 64-bit clean.
- Check all calls to memory allocation routines to ensure that size computations are 64-bit clean. Suggested regular expression for search: /(Re|M)alloc[FORZa-z]*(/
- Verify that source code contains no tabs and that surplus whitespace has been removed.
- Verify that the list of APIs exposed via the extension header is up-to-date (sqlite3ext.h)
- OMIT, ENABLE, and DISABLE options:
- tclsh ../tool/omittest.tcl -skip_run -target libsqlite3.a
- Tests for platform Linux x86_64:
- tclsh th3make cov.rc (verify 100% branch test coverage)
- tclsh th3make cov.rc -DHAVE_MALLOC_H -DHAVE_MALLOC_USABLE_SIZE (verify 100% branch test coverage)
- tclsh th3make cov.rc -DSQLITE_ENABLE_STAT4 (verify 100% branch test coverage)
- tclsh releasetest.tcl
- tclsh fulltest.tcl fast.rc test.rc
- tclsh th3make memdebug.rc
- tclsh th3make test-ex.rc
- tclsh th3make test.rc CC=clang
- tclsh th3make fast.rc CC=clang
- ./mptester x.db mptest/crash01.test
- ./mptester x.db mptest/multiwrite01.test
- Tests for 32-bit x86 Linux
- tclsh th3make test.rc -m32
- tclsh th3make test.rc CC=clang -m32
- tclsh th3make quick.rc -m32
- Tests for platform Linux ARM (BeagleBoard)
- tclsh th3make min.rc
- Recompile and test Fossil
- Tests for platform Mac OS-X x86:
- tclsh releasetest.tcl
- tclsh fulltest.tcl min.rc
- tclsh th3make fast.rc CC=clang
- ./mptester x.db mptest/crash01.test
- ./mptester x.db mptest/multiwrite01.test
- Tests for platform Win32/64:
- make fulltestonly
- th3make test.rc
- th3make fast.rc
- Verify that EXEs and DLLs generated using MSVC contain the correct version number, product name, description, and copyright as resources.
- th3make msvc.rc test.rc /RTC1
- mptester x.db mptest/crash01.test
- mptester x.db mptest/multiwrite01.test
- nmake /f makefile.msc DEBUG=2 test
- Tests for platform Android:
- th3make quick.rc
- Tests for platform OpenBSD x86:
- make test
- Tests for platform Solaris Sparc:
- th3make fast.rc
- Other test performed on any available platform:
- th3make alignment2.rc test.rc
- th3make test.rc -DHAVE_LOCALTIME_R
- th3make test.rc -DSQLITE_THREADSAFE=0
- th3make test.rc -ftrapv
- OPTS=-DSQLITE_SMALL_STACK make sqlite3.c; th3make test.rc -DSQLITE_SMALL_STACK
- th3make test.rc CC=clang -fsanitize=undefined
- th3make test.rc -DSQLITE_MAX_ATTACHED=125
- th3make quick.rc -valgrind
- th3make quick.rc -DSQLITE_ENABLE_STAT4 -valgrind
- th3make quick.rc -DHAVE_MALLOC_H -DHAVE_MALLOC_USABLE_SIZE -valgrind
- valgrind testfixture permutations.test valgrind
- th3make quick.rc -DSQLITE_TRACE_SIZE_LIMIT=15
- th3make quick.rc -funsigned-char
- th3make quick.rc -fsigned-char
- th3make quick.rc -DSQLITE_ENABLE_MEMSYS5 -DTH3_LOWMEM
- th3make quick.rc -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS4
- th3make quick.rc -DSQLITE_TEST_REALLOC_STRESS
- th3make test.rc ../th3private/*.test
- ./configure; make fulltest
- Sqllogictest:
- Checked in latest SQLite amalgamation
- No compiler warnings
- run-all.sh with no errors
- Build using the configure/make in main source tree.
- Make sure that autoconf has been run to update the configure script.
- Run "make test" to verify that the build works.
- Verify the correct version numbers have been installed.
- Verify that the --disable-amalgamation option to configure works.
- Works on Linux
- Exported symbol checks: tool/symbols.sh
- No private symbols exported. (This is also checked by releasetest.tcl)
- No undesirable library dependencies
- No private symbols exported in MinGW (check using tool/symbols-mingw.sh)
- No undesirable library dependencies on MinGW
- Fossil updated to use the latest SQLite.
- No compiler warnings
- Used on active websites with no issues
- Firefox recompiled using lastest SQLite.
- No SQLite compiler warnings
- Active use with no issues noted
- CEROD tests in the test/ subdirectory.
- SEE tests using TH3:
- see.c
- ZIPVFS tests:
- testfixture ../zipvfs/test/zipvfs.test (See test/README.txt in the ZIPVFS source tree for details.)
- th3make zipvfs.rc test.rc
- NX-Devkit compiles and runs "tclsh th3make test.rc nx_compress.o" without error.
- Amalgamation autoconf tarball.
- Builds
- Works on Linux
- Works on Mac
- Run performance tests comparing the new SQLite release against the previous release.
- The speedtest1 program
- Run "make wordcount; bash run-wordcount.bash $OPTIONS" with options:
- bash run-wordcount.sh sqlite3.c
- bash run-wordcount.sh sqlite3.c --cachesize 5 --nosync
- Verify that the amalgamation builds are byte-for-byte identical on all workstation platforms.
- linux
- mac
- openbsd
- windows native mingw
- windows nmake
- sparc solaris using autoconf
- Build and verify correct operation of sqlite3_analyzer on:
- Linux
- Mac
- Win32
- Verify that the sqlite3-all.c build target works and that the resulting sqlite3-all.c file and its include files (sqlite3-?.c) compile and run the same as the single-file amalgamation.