SQLite: Checklist For SQLite 3.7.7
Check compiler warnings seen on the following builds:
-
Linux GCC using options -Wall -Wextra
-
OpenBSD GCC using options -Wall
-
Windows VC++
Verify that documentation files are up-to-date:
-
Latest release on the index.html page
-
Release announcement in changes.in
-
Release accouncement in news.html
-
No unresolved hyperlinks in the documentation build
-
The compile-time options are all up-to-date (compile.html)
-
Database footprint is up-to-date (features.html)
-
Test metrics are up-to-date (testing.html)
-
Check new/changed documentation for spelling and gramatical mistakes
-
Verify that this checklist agrees with planning documents
Review the differences between the release candidate and one or
more prior releases to verify:
-
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
Verify SQLite compiles cleanly with all OMIT, ENABLE, and DISABLE
options:
-
tclsh ../tool/omittest.tcl -skip_run
Run the following tests and verify output
for platform Linux x86:
-
tclsh releasetest.tcl
-
tclsh th3make cov.rc
(verify 100% branch test coverage)
-
tclsh fulltest.tcl fast.rc test.rc
-
tclsh th3make fast-ex.rc
-
tclsh th3make cov.rc -DHAVE_LOCALTIME_R=1 (verify 100% coverage)
Run the following tests and verify output
for platform Linux x86_64:
-
tclsh releasetest.tcl
-
tclsh fulltest.tcl fast.rc test.rc
-
tclsh th3make memdebug.rc
-
tclsh th3make test-ex.rc
Run the following tests and verify output
for platform Mac OS-X x86:
-
tclsh releasetest.tcl
-
tclsh fulltest.tcl fast.rc test.rc
Run the following tests and verify output
for platform Max OS-X PPC:
-
tclsh th3make -Os min.rc
Run the following tests and verify output
for platform Win32:
-
make fulltest
-
th3make test.rc
-
th3make fast.rc
Run the following tests and verify output
for platform Win64:
-
make fulltest
-
th3make test.rc (compiled using VC++)
-
th3make fast.rc
Run the following tests and verify output
for platform Android:
-
th3make -Os min.rc
Run the following tests and verify output
for platform OpenBSD x86:
-
make test
-
th3make -Os min.rc
On one or more platforms of the tester's choice:
-
th3make alignment2.rc test.rc
Run test suites on various compilers and at various optimization
settings for each compiler and verify that identical results are
obtained on each run. This checklist item is designed to verify
that SQLite code does not use C code constructs that are
undefined or implementation defined. In particular, make sure the
code works the same with and without the -ftrapv option on
GCC. What other compilers and/or options can we list here?
Clang? LLVM?
Verify that everything still works with SQLITE_MAX_ATTACHED in the
50 to 60 range.
Update the amalgamation build for sqllogictest. Recompile and
run the entire test suite in verification mode. Verify that there
are no errors. Check-in the new amalgamation build in the
sqllogictest Fossil repository.
The veryquick.test TCL tests run under valgrind with no
unexplained errors or warnings. Note that some tests deliberately
reference memory that has previously been freed which will cause
valgrind warnings. Those tests are clearly marked.
Run TH3 tests tclsh th3make -Os min.rc under valgrind with
no unexplained errors or warnings.
Some TH3 tests deliberately do things that valgrind will complain about.
Those tests are clearly marked.
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.
Build a library from the amalgamation using both SQLITE_ENABLE_FTS3 and
SQLITE_ENABLE_RTREE and verify that no internal symbols
are exported.
Update the SQLite amalgamation that is built into Fossil.
Recompile and run a complete test.
Update the SQLite amalgamation that is built into the public
Firefox sources. Recompile and verify that the new SQLite is
being used (by checking the version mark in the header of one of
the Firefox database files) and that Firefox still works correctly
and efficiently.
Copy the SQLite amalgamation into CEROD. Compile CEROD and run the
test scripts in the test/ subdirectory. Verify correct output.
Copy the SQLite amalgamation into SEE. Compile and test all five
variations of SEE using a command similar to
tclsh th3make see.rc min.rc -Os -DSQLITE_DEBUG -DSQLITE_MEMDEBUG,
with or without the optional switches. Test controllers "test.rc"
and "fast.rc" can be substituted for "min.rc"; each should be used
at least once.
-
see.c
-
see-aes128-ofb.c
-
see-aes256-ofb.c
-
see-rc4.c
-
see-aes128-ccm.c
Run the following ZIPVFS tests on at least one platform each:
-
testfixture ../zipvfs/test/zipvfs.test
(See test/README.txt in the ZIPVFS source tree for details.)
-
th3make zipvfs.rc test.rc
-
th3make zipvfs.rc memdebug.rc
-
th3make zipvfs.rc min.rc (Run under Valgrind with no unexplained errors)
Build the amalgamation autoconf tarball. On Linux and Mac OS-X,
unpack that tarball in a temporary directory and verify that it builds
correctly.
Build the TEA archive. On Linux and Mac OS-X, unpack that TEA
archive into a temporary directory and verify that it builds
correctly.
Run performance tests comparing the new SQLite release against the
previous version. Verify no performance regressions.
-
The TCL speed*.test scripts
-
The TH3 speed tests
-
sqlite3 sqlite.fossil .dump >speed-c.sql
fossil timeline -R sqlite.fossil -n 300 -sqltrace 2>>speed-c.sql
fossil rebuild sqlite.fossil -sqltrace 2>>speed-c.sql
Verify that the amalgamation builds are byte-for-byte identical on all
workstation platforms.
Verify that databases (including FTS3 and RTREE databases),
rollback journals, and WAL files
created by the release candidate are
readable and writeable by historical versions of SQLite (as long
as no unsupported features are used) and vice versa.
Verify that databases, rollback journals, and WAL files
are portable across
-
32/64 bit platforms, and
-
little/big-endian platforms.
Build and verify correct operation of sqlite3_analyzer on:
-
Linux
-
MacOSX
-
Win32
Run the CLI tests found under the tool subfolder in the main source tree
and verify correct output.
All changes in trunk have been merged into each of the following branches
and those branches have been tested using TCL and TH3.
-
sessions
-
apple-osx
Verify that all branches that are no longer active have been closed.
Verify that the bug response checklist has been
completed for all bugs found since the previous release.
Verify that the new feature checklist has been
completed for all enhancements made since the previous release.