diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/docs/testing.dox')
-rw-r--r-- | src/third_party/wiredtiger/src/docs/testing.dox | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/src/docs/testing.dox b/src/third_party/wiredtiger/src/docs/testing.dox new file mode 100644 index 00000000000..7d454d54212 --- /dev/null +++ b/src/third_party/wiredtiger/src/docs/testing.dox @@ -0,0 +1,77 @@ +/*! +@page testing WiredTiger testing + +WiredTiger uses a combination of several different tools and test +programs for testing WiredTiger. + +WiredTiger testing is done automatically using the <a +href="http://jenkins-ci.org/">Jenkins</a> continuous integration testing +framework. This allows us to be confident we don't introduce problems +in a non-standard configuration, or performance regressions. + +@section test_suite Unit Test Suite + +WiredTiger's primary functionality and regression testing is done in a +Python unit test suite (found in the source tree under \c test/suite). + +The WiredTiger Python test suite includes approximately 10,000 separate +tests which are run on all platforms supported by WiredTiger. Each test +is intended to test a single operation in a reproducible way, making it +easy to diagnose errors. The test suite runs multiple test cases in +parallel, allowing it to be run in a relatively short period of time. + +The WiredTiger unit test suite includes tests that cover: +- WiredTiger functionality (for example, cursors, transactions and recovery), +- Combinations of WiredTiger's configuration settings and APIs, +- Bug regression tests. + +The WiredTiger Python test suite is built using the WiredTiger Python +API and the Python unittest functionality (the test suite requires at +least Python version 2.6). + +The WiredTiger test suite automatically runs as part of every commit +into the WiredTiger GitHub source tree. + +@section testing_performance Performance Testing + +Performance testing is primarily done using the \c bench/wtperf utility. +A variety of database configurations are run based on the scripts in \c +bench/wtperf/runners. + +WiredTiger performance tests are automatically run as part of each +commit into the \c develop branch of the WiredTiger GitHub source tree +and compared against previous runs to detect performance regressions. + +@section testing_stress Stress Testing + +Stress testing is primarily done using the \c test/format utility. This +test program randomly configures a database and then runs some number +of randomly selected operations, using some number of randomly selected +threads, on that database. WiredTiger stress testing is run continuously +on the WiredTiger GitHub \c develop branch. + +@section testing_threads Concurrency testing + +Concurrency testing is primarily done using the \c test/format utility. +Additionally, the \c test/thread and \c test/fops test utilities test +specific heavily threaded operations. WiredTiger concurrency testing +is run continuously on the WiredTiger GitHub \c develop branch. + +@section testing_static Static analysis + +WiredTiger static analysis is done using three tools: + +- The <a href="https://www.coverity.com/">Coverity, +Inc.</a>software analysis tool; current results and historic defect +reports are available at <a +href="https://scan.coverity.com/projects/1018">Coverity's WiredTiger +page</a>. + +- The Gimpel Software <a +href="http://www.gimpel.com/html/flex.htm">FlexeLint</a> implementation +of the UNIX lint tool. + +- The University of Illinois LLVM project's <a +href="http://clang-analyzer.llvm.org/">Clang Static Analyzer</a>. + + */ |