<h2class="title"><aid="testport"></a>Chapter3.Testing and Certifying the Port</h2>
</div>
</div>
</div>
<divclass="toc">
<p>
<b>Table of Contents</b>
</p>
<dl>
<dt>
<spanclass="sect1">
<ahref="testport.html#testtypes">Types of Tests for Berkeley DB</a>
</span>
</dt>
<dt>
<spanclass="sect1">
<ahref="modifytest.html">Modifying the Tests</a>
</span>
</dt>
<dt>
<spanclass="sect1">
<ahref="testrun.html">Running the Tests</a>
</span>
</dt>
<dt>
<spanclass="sect1">
<ahref="testreview.html">Reviewing the Results of the Tests</a>
</span>
</dt>
<dt>
<spanclass="sect1">
<ahref="sourceintegrate.html">Integrating Changes into the Berkeley DB Source Code</a>
</span>
</dt>
<dt>
<spanclass="sect1">
<ahref="certport.html">Certifying a Port of Berkeley DB</a>
</span>
</dt>
</dl>
</div>
<p>
There are several different types of tests available for validating your
port of Berkeley DB as discussed in <aclass="xref"href="testport.html#testtypes"title="Types of Tests for Berkeley DB">Types of Tests for Berkeley DB</a>. Testing your port involves:
</p>
<divclass="itemizedlist">
<ultype="disc">
<li>
<p>
<aclass="xref"href="modifytest.html"title="Modifying the Tests">Modifying the Tests</a>
</p>
</li>
<li>
<p>
<aclass="xref"href="testrun.html"title="Running the Tests">Running the Tests</a>
</p>
</li>
<li>
<p>
<aclass="xref"href="testreview.html"title="Reviewing the Results of the Tests">Reviewing the Results of the Tests</a>
</p>
</li>
<li>
<p>
<aclass="xref"href="sourceintegrate.html"title="Integrating Changes into the Berkeley DB Source Code">Integrating Changes into the Berkeley DB Source Code</a>
</p>
</li>
<li>
<p>
<aclass="xref"href="certport.html"title="Certifying a Port of Berkeley DB">Certifying a Port of Berkeley DB</a>
</p>
</li>
</ul>
</div>
<divclass="sect1"lang="en"xml:lang="en">
<divclass="titlepage">
<div>
<div>
<h2class="title"style="clear: both"><aid="testtypes"></a>Types of Tests for Berkeley DB</h2>
</div>
</div>
</div>
<p>
There are two types of tests available for testing your port of Berkeley DB:
</p>
<divclass="itemizedlist">
<ultype="disc">
<li>
<p>The C Tests for Berkeley DB</p>
<p>
There are two types of C tests for Berkeley DB. Each of these is in its own directory:
</p>
<divclass="itemizedlist">
<ultype="circle">
<li>
<p>
<codeclass="literal">test_mutex</code>
contains files that test the use of mutexes in Berkeley DB.
</p>
</li>
<li>
<p>
<codeclass="literal">test_micro</code>
contains the C tests that exercise the most common code paths, but it is
not intended to be an exhaustive Test Suite. Additionally, it tests the
different versions of Berkeley DB (including the new port) against each
other. The <codeclass="literal">test_micro</code> tests can either be run in a shell or as simple C tests.
</p>
</li>
</ul>
</div>
</li>
<li>
<p>The Berkeley DB Test Suite</p>
<p>
The <codeclass="literal">test</code> directory contains the Berkeley DB Test Suite that tests all of the code in Berkeley DB. Using the Test Suite involves using Tool Command Language (Tcl) version 8.5 or later. Running the standard version of the Test Suite executes tests the major functionality of Berkeley DB. A more exhaustive version of the Test Suite runs all the tests several more times, testing encryption, replication, and different page sizes.