summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/docs/testing.dox
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/docs/testing.dox')
-rw-r--r--src/third_party/wiredtiger/src/docs/testing.dox77
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>.
+
+ */