3 ms·
Read SQLite's FAQ on that. Given, most projects aren't as amazing as SQLite.
by qwertyuiop924 10y ago
Read SQLite's FAQ on that. Given, most projects aren't as amazing as SQLite.
- allendoerfer 10y agoI get some compiler warnings when I compile SQLite. Isn't this a problem? Doesn't it indicate poor code quality? Quality assurance in SQLite is done using full-coverage testing, not by compiler warnings or other static code analysis tools. In other words, we verify that SQLite actually gets the correct answer, not that it merely satisfies stylistic constraints. Most of the SQLite code base is devoted purely to testing. The SQLite test suite runs tens of thousands of separate test cases and many of those test cases are parameterized so that hundreds of millions of tests involving billions of SQL statements are run and evaluated for correctness prior to every release. The developers use code coverage tools to verify that all paths through the code are tested. Whenever a bug is found in SQLite, new test cases are written to exhibit the bug so that the bug cannot recur undetected in the future. During testing, the SQLite library is compiled with special instrumentation that allows the test scripts to simulate a wide variety of failures in order to verify that SQLite recovers correctly. Memory allocation is carefully tracked and no memory leaks occur, even following memory allocation failures. A custom VFS layer is used to simulate operating system crashes and power failures in order to ensure that transactions are atomic across these events. A mechanism for deliberately injecting I/O errors shows that SQLite is resilient to such malfunctions. (As an experiment, try inducing these kinds of errors on other SQL database engines and see what happens!) We also run SQLite using Valgrind on Linux and verify that it detects no problems. Some people say that we should eliminate all warnings because benign warnings mask real warnings that might arise in future changes. This is true enough. But in reply, the developers observe that all warnings have already been fixed in the builds used for SQLite development (various versions of GCC, MSVC, and clang). Compiler warnings usually only arise from compilers or compile-time options that the SQLite developers do not use themselves. https://www.sqlite.org/faq.html#q17 https://www.sqlite.org/faq.html#q17
- NotSammyHagar 10y agoThanks for posting that, very interesting. I don't think it's entirely fair. No one should care about warnings about style (spacing, case, etc), but much more commonly warnings about correctness are important.
- deleted 10y ago[deleted]
- tener 10y agoSQLite is indeed nothing short of amazing with regard to the testing they have.