Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > eed130d744d27f25ed585ff318f1f4e2 > files > 13

ocaml-pa-monad-6.0-10.fc18.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="pa_monad.html">
<link rel="previous" href="Io.html">
<link rel="Up" href="pa_monad.html">
<link title="Index of types" rel=Appendix href="pa_monad_types.html">
<link title="Index of exceptions" rel=Appendix href="pa_monad_exceptions.html">
<link title="Index of values" rel=Appendix href="pa_monad_values.html">
<link title="Index of modules" rel=Appendix href="pa_monad_modules.html">
<link title="Pa_monad" rel="Chapter" href="Pa_monad.html">
<link title="Cc" rel="Chapter" href="Cc.html">
<link title="Exception" rel="Chapter" href="Exception.html">
<link title="Io" rel="Chapter" href="Io.html">
<link title="Utest" rel="Chapter" href="Utest.html"><title>Utest</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Io.html" title="Io">Previous</a>
&nbsp;<a class="up" href="pa_monad.html" title="Index">Up</a>
&nbsp;</div>
<h1>Module <a href="type_Utest.html">Utest</a></h1>
<pre><span class="keyword">module</span> Utest: <code class="code">sig</code> <a href="Utest.html">..</a> <code class="code">end</code></pre><div class="info">
<h3 id="3_SimpleUnitTestFramework">Simple Unit-Test Framework</h3>
<p>

    <code class="code">Utest</code> supplies a simple framework for performing unit-tests in an
    Extreme Programming style.  It has been influenced by Greg (Gnu
    REGression testing) and Maas-Maarten Zeeman's oUnit.<br>
</div>
<hr width="100%">
<pre><code><span id="TYPEexpected_test_outcome"><span class="keyword">type</span> <code class="type"></code>expected_test_outcome</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTexpected_test_outcome.ExpectPass"><span class="constructor">ExpectPass</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expect to pass the test.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTexpected_test_outcome.ExpectFail"><span class="constructor">ExpectFail</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expect to fail the test.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTexpected_test_outcome.ExpectException"><span class="constructor">ExpectException</span></span> <span class="keyword">of</span> <code class="type">exn</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expect that the given exception will be raised.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>

<div class="info">
The outcome of a test case as the writer of the test suite expects
    it to be.<br>
</div>

<pre><code><span id="TYPEtest_outcome"><span class="keyword">type</span> <code class="type"></code>test_outcome</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_outcome.Pass"><span class="constructor">Pass</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expected passing and we passed.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_outcome.Fail"><span class="constructor">Fail</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expected passing but we failed.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_outcome.UPass"><span class="constructor">UPass</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expected failing but we did succeed.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_outcome.XFail"><span class="constructor">XFail</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >We expected failed and we failed.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_outcome.Unresolved"><span class="constructor">Unresolved</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >An unexpected exception occurred.
                                            The argument is the exception's text,</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>

<div class="info">
The actual outcome of a test case after it has been run.<br>
</div>

<pre><code><span id="TYPEtest"><span class="keyword">type</span> <code class="type"></code>test</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest.TestCase"><span class="constructor">TestCase</span></span> <span class="keyword">of</span> <code class="type">string * <a href="Utest.html#TYPEexpected_test_outcome">expected_test_outcome</a> * (unit -> bool)</code></code></td>

</tr></table>

<div class="info">
A test itself.<br>
</div>

<pre><code><span id="TYPEtest_results"><span class="keyword">type</span> <code class="type"></code>test_results</span> = {</code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_results.total">total</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Total number of test cases attempted</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_results.passed">passed</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Number of passed tests</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_results.failed">failed</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Number of failed tests</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_results.upassed">upassed</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Number of unexpectedly passed tests</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_results.xfailed">xfailed</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Number of expectedly failed tests</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTtest_results.unresolved">unresolved</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Number of unresolved tests</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>
}

<div class="info">
Results of some tests.<br>
</div>

<pre><span id="VALtestcase"><span class="keyword">val</span> testcase</span> : <code class="type">string -> <a href="Utest.html#TYPEexpected_test_outcome">expected_test_outcome</a> -> (unit -> bool) -> <a href="Utest.html#TYPEtest">test</a></code></pre><div class="info">
<code class="code">testcase a_test_title an_expected_outcome a_test_function</code>
<p>

    Create a single testcase of <code class="code">a_test_function</code> with <code class="code">a_test_title</code>
    and <code class="code">an_expected_outcome</code>.
<p>

    Note that this is a "low-level" function and the two convenience
    functions <a href="Utest.html#VALexpect_pass"><code class="code">Utest.expect_pass</code></a> and <a href="Utest.html#VALexpect_fail"><code class="code">Utest.expect_fail</code></a> allow for
    a terser definition of a test.<br>
</div>
<pre><span id="VALexpect_pass"><span class="keyword">val</span> expect_pass</span> : <code class="type">string -> (unit -> bool) -> <a href="Utest.html#TYPEtest">test</a></code></pre><div class="info">
<code class="code">expect_pass a_test_title a_test_function</code>
<p>

    Create a testcase of <code class="code">a_test_function</code> with <code class="code">a_test_title</code> that is
    expected to succeed.<br>
</div>
<pre><span id="VALexpect_fail"><span class="keyword">val</span> expect_fail</span> : <code class="type">string -> (unit -> bool) -> <a href="Utest.html#TYPEtest">test</a></code></pre><div class="info">
<code class="code">expect_fail a_test_title a_test_function</code>
<p>

    Create a testcase of <code class="code">a_test_function</code> with <code class="code">a_test_title</code> that is
    expected to fail.<br>
</div>
<pre><span id="VALexpect_exception"><span class="keyword">val</span> expect_exception</span> : <code class="type">string -> exn -> (unit -> bool) -> <a href="Utest.html#TYPEtest">test</a></code></pre><div class="info">
<code class="code">expect_exception a_test_title an_exception a_test_function</code>
<p>

    Create a testcase of <code class="code">a_test_function</code> with <code class="code">a_test_title</code> that is
    expected to raise <code class="code">an_exception</code>.<br>
</div>
<pre><span id="EXCEPTIONInconsistentFixture"><span class="keyword">exception</span> InconsistentFixture</span></pre>
<div class="info">
This exception is for the convenience of the user.  Raise it if
    the test data itself is inconsistent.<br>
</div>
<pre><span id="VALeval_with_imperative_fixture"><span class="keyword">val</span> eval_with_imperative_fixture</span> : <code class="type">(unit -> 'fix) -><br>       ('fix -> <a href="Utest.html#TYPEtest">test</a>) -> ('fix -> unit) -> unit -> <a href="Utest.html#TYPEtest">test</a></code></pre><div class="info">
<code class="code">eval_with_imperative_fixture a_setup_function a_test_function a_teardown_function</code>
<p>

    Evaluate <code class="code">a_test_function</code> by passing the result of
    <code class="code">a_setup_function</code>.  After <code class="code">a_test_function</code> completes, pass the
    result of <code class="code">a_setup_function</code> to <code class="code">a_teardown_function</code>.
<p>

    This is for example useful of <code class="code">a_test_function</code> need the handles
    of some open files.  In this case <code class="code">a_setup_function</code> would open
    the files and pass the handle (the fixture).
    <code class="code">a_teardown_function</code> closes the files after <code class="code">a_test_function</code>
    completes.<br>
</div>
<pre><span id="VALeval_with_functional_fixture"><span class="keyword">val</span> eval_with_functional_fixture</span> : <code class="type">(unit -> 'fix) -> ('fix -> <a href="Utest.html#TYPEtest">test</a>) -> unit -> <a href="Utest.html#TYPEtest">test</a></code></pre><div class="info">
<code class="code">eval_with_functional_fixture a_setup_function a_test_function</code>
<p>

    Evaluate <code class="code">a_test_function</code> by passing the result of
    <code class="code">a_setup_function</code>.
<p>

    This is for example useful if several test functions should be
    tested with the same data set.<br>
</div>
<pre><code><span id="TYPEverbosity"><span class="keyword">type</span> <code class="type"></code>verbosity</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTverbosity.PrintNothing"><span class="constructor">PrintNothing</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Do not print anything</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTverbosity.PrintFailedTests"><span class="constructor">PrintFailedTests</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Only print failed tests</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTverbosity.PrintTestTotals"><span class="constructor">PrintTestTotals</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Show test totals</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTverbosity.PrintAllTests"><span class="constructor">PrintAllTests</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Display each single test</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>

<div class="info">
Verbosity level when running tests<br>
</div>

<pre><span id="VALrun_tests"><span class="keyword">val</span> run_tests</span> : <code class="type"><a href="Utest.html#TYPEverbosity">verbosity</a> -> (unit -> <a href="Utest.html#TYPEtest">test</a>) list -> <a href="Utest.html#TYPEtest_results">test_results</a></code></pre><div class="info">
<code class="code">run_tests ~verbose a_list_of_tests</code>
<p>

    Run all tests in <code class="code">a_list_of_tests</code>.  The <code class="code">verbose</code> flag controls
    whether the function prints each test result or just the totals.<br>
</div>
</body></html>