Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 9cb8b39b0a31c736c18ed9124753add2 > files > 23

ghc-HUnit-devel-1.2.2.1-4.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Test.HUnit.Base</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Test-HUnit-Base.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>HUnit-1.2.2.1: A unit testing framework for Haskell</TD
><TD CLASS="topbut"
><A HREF="src/Test-HUnit-Base.html"
>Source code</A
></TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Test.HUnit.Base</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Declaring tests
</A
></DT
><DT
><A HREF="#2"
>Making assertions
</A
></DT
><DT
><A HREF="#3"
>Extending the assertion functionality
</A
></DT
><DT
><A HREF="#4"
>Test execution
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>Basic definitions for the HUnit library.
</P
><P
>This module contains what you need to create assertions and test cases and
   combine them into test suites. 
</P
><P
>This module also provides infrastructure for 
   implementing test controllers (which are used to execute tests). 
   See <A HREF="Test-HUnit-Text.html"
>Test.HUnit.Text</A
> for a great example of how to implement a test 
   controller.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATest"
>Test</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ATestCase"
>TestCase</A
> <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATestList"
>TestList</A
> [<A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATestLabel"
>TestLabel</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A~%3D%3F"
>(~=?)</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a) =&gt; a -&gt; a -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A~%3F%3D"
>(~?=)</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a) =&gt; a -&gt; a -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A~%3A"
>(~:)</A
> :: <A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> t =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; t -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A~%3F"
>(~?)</A
> :: <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> t =&gt; t -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AassertFailure"
>assertFailure</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AassertBool"
>assertBool</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AassertEqual"
>assertEqual</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a) =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; a -&gt; a -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AassertString"
>assertString</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AAssertion"
>Assertion</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%40%3D%3F"
>(@=?)</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a) =&gt; a -&gt; a -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%40%3F%3D"
>(@?=)</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a) =&gt; a -&gt; a -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%40%3F"
>(@?)</A
> :: <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> t =&gt; t -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AAssertable"
>Assertable</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Aassert"
>assert</A
> :: t -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AListAssertable"
>ListAssertable</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AlistAssert"
>listAssert</A
> :: [t] -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AAssertionPredicate"
>AssertionPredicate</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AAssertionPredicable"
>AssertionPredicable</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AassertionPredicate"
>assertionPredicate</A
> :: t -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicate"
>AssertionPredicate</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ATestable"
>Testable</A
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Atest"
>test</A
> :: t -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AState"
>State</A
>  = <A HREF="#v%3AState"
>State</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Apath"
>path</A
> :: <A HREF="Test-HUnit-Base.html#t%3APath"
>Path</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acounts"
>counts</A
> :: <A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ACounts"
>Counts</A
>  = <A HREF="#v%3ACounts"
>Counts</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acases"
>cases</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Atried"
>tried</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aerrors"
>errors</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Afailures"
>failures</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3APath"
>Path</A
> = [<A HREF="Test-HUnit-Base.html#t%3ANode"
>Node</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ANode"
>Node</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AListItem"
>ListItem</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ALabel"
>Label</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtestCasePaths"
>testCasePaths</A
> :: <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
> -&gt; [<A HREF="Test-HUnit-Base.html#t%3APath"
>Path</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtestCaseCount"
>testCaseCount</A
> :: <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AReportStart"
>ReportStart</A
> us = <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
> -&gt; us -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> us</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AReportProblem"
>ReportProblem</A
> us = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
> -&gt; us -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> us</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AperformTest"
>performTest</A
> ::  <A HREF="Test-HUnit-Base.html#t%3AReportStart"
>ReportStart</A
> us -&gt; <A HREF="Test-HUnit-Base.html#t%3AReportProblem"
>ReportProblem</A
> us -&gt; <A HREF="Test-HUnit-Base.html#t%3AReportProblem"
>ReportProblem</A
> us -&gt; us -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
>, us)</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="1"
><A NAME="1"
>Declaring tests
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Test"
><A NAME="t%3ATest"
></A
></A
><B
>Test</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#Test"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The basic structure used to create an annotated tree of test cases.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:TestCase"
><A NAME="v%3ATestCase"
></A
></A
><B
>TestCase</B
> <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
>A single, independent test case composed.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TestList"
><A NAME="v%3ATestList"
></A
></A
><B
>TestList</B
> [<A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
>]</TD
><TD CLASS="rdoc"
>A set of <TT
>Test</TT
>s sharing the same level in the hierarchy. 
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TestLabel"
><A NAME="v%3ATestLabel"
></A
></A
><B
>TestLabel</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="rdoc"
>A name or description for a subtree of the <TT
>Test</TT
>s.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Test')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Test" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:~=?"
><A NAME="v%3A~%3D%3F"
></A
></A
><B
>(~=?)</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#~%3D%3F"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; a</TD
><TD CLASS="rdoc"
>The expected value 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>The actual value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Shorthand for a test case that asserts equality (with the expected 
   value on the left-hand side, and the actual value on the right-hand
   side).
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:~?="
><A NAME="v%3A~%3F%3D"
></A
></A
><B
>(~?=)</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#~%3F%3D"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; a</TD
><TD CLASS="rdoc"
>The actual value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>The expected value 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Shorthand for a test case that asserts equality (with the actual 
   value on the left-hand side, and the expected value on the right-hand
   side).
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:~:"
><A NAME="v%3A~%3A"
></A
></A
><B
>(~:)</B
> :: <A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> t =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; t -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#~%3A"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Creates a test from the specified <TT
><A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
></TT
>, with the specified 
   label attached to it.
</P
><P
>Since <TT
><A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TT
> is <TT
>Testable</TT
>, this can be used as a shorthand way of attaching
 a <TT
><A HREF="Test-HUnit-Base.html#v%3ATestLabel"
>TestLabel</A
></TT
> to one or more tests.  
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:~?"
><A NAME="v%3A~%3F"
></A
></A
><B
>(~?)</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#~%3F"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> t</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; t</TD
><TD CLASS="rdoc"
>A value of which the asserted condition is predicated
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>A message that is displayed on test failure
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Creates a test case resulting from asserting the condition obtained 
   from the specified <TT
><A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
></TT
>.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Making assertions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:assertFailure"
><A NAME="v%3AassertFailure"
></A
></A
><B
>assertFailure</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Lang.html#assertFailure"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>A message that is displayed with the assertion failure 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Unconditionally signals that a failure has occured.  All
 other assertions can be expressed with the form:
</P
><PRE
>
    if conditionIsMet 
        then IO () 
        else assertFailure msg
</PRE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:assertBool"
><A NAME="v%3AassertBool"
></A
></A
><B
>assertBool</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#assertBool"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>The message that is displayed if the assertion fails
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>The condition
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Asserts that the specified condition holds.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:assertEqual"
><A NAME="v%3AassertEqual"
></A
></A
><B
>assertEqual</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#assertEqual"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>The message prefix 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>The expected value 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>The actual value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Asserts that the specified actual value is equal to the expected value.
 The output message will contain the prefix, the expected value, and the 
 actual value.
</P
><P
>If the prefix is the empty string (i.e., <TT
>&quot;&quot;</TT
>), then the prefix is omitted
 and only the expected and actual values are output.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:assertString"
><A NAME="v%3AassertString"
></A
></A
><B
>assertString</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#assertString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>The message that is displayed with the assertion failure 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Signals an assertion failure if a non-empty message (i.e., a message
 other than <TT
>&quot;&quot;</TT
>) is passed.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Assertion"
><A NAME="t%3AAssertion"
></A
></A
><B
>Assertion</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Lang.html#Assertion"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>When an assertion is evaluated, it will output a message if and only if the
 assertion fails.  
</P
><P
>Test cases are composed of a sequence of one or more assertions.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:@=?"
><A NAME="v%3A%40%3D%3F"
></A
></A
><B
>(@=?)</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#%40%3D%3F"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; a</TD
><TD CLASS="rdoc"
>The expected value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>The actual value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Asserts that the specified actual value is equal to the expected value
   (with the expected value on the left-hand side).
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:@?="
><A NAME="v%3A%40%3F%3D"
></A
></A
><B
>(@?=)</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#%40%3F%3D"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; a</TD
><TD CLASS="rdoc"
>The actual value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>The expected value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Asserts that the specified actual value is equal to the expected value
   (with the actual value on the left-hand side).
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:@?"
><A NAME="v%3A%40%3F"
></A
></A
><B
>(@?)</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#%40%3F"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> t</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; t</TD
><TD CLASS="rdoc"
>A value of which the asserted condition is predicated
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>A message that is displayed if the assertion fails
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Asserts that the condition obtained from the specified
   <TT
><A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
></TT
> holds.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Extending the assertion functionality
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Assertable"
><A NAME="t%3AAssertable"
></A
></A
><B
>Assertable</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#Assertable"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Allows the extension of the assertion mechanism.
</P
><P
>Since an <TT
><A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TT
> can be a sequence of <TT
>Assertion</TT
>s and <TT
>IO</TT
> actions, 
 there is a fair amount of flexibility of what can be achieved.  As a rule,
 the resulting <TT
>Assertion</TT
> should be the body of a <TT
><A HREF="Test-HUnit-Base.html#v%3ATestCase"
>TestCase</A
></TT
> or part of
 a <TT
>TestCase</TT
>; it should not be used to assert multiple, independent 
 conditions.
</P
><P
>If more complex arrangements of assertions are needed, <TT
><A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TT
>s and
 <TT
><A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
></TT
> should be used.
</P
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:assert"
><A NAME="v%3Aassert"
></A
></A
><B
>assert</B
> :: t -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#assert"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Assertable')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Assertable" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
> ()</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AListAssertable"
>ListAssertable</A
> t =&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
> [t]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
> t =&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> t)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:ListAssertable"
><A NAME="t%3AListAssertable"
></A
></A
><B
>ListAssertable</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#ListAssertable"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A specialized form of <TT
><A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
></TT
> to handle lists.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:listAssert"
><A NAME="v%3AlistAssert"
></A
></A
><B
>listAssert</B
> :: [t] -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertion"
>Assertion</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#listAssert"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ListAssertable')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ListAssertable" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AListAssertable"
>ListAssertable</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:AssertionPredicate"
><A NAME="t%3AAssertionPredicate"
></A
></A
><B
>AssertionPredicate</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#AssertionPredicate"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The result of an assertion that hasn't been evaluated yet.
</P
><P
>Most test cases follow the following steps:
</P
><P
>1. Do some processing or an action.
</P
><P
>2. Assert certain conditions.
</P
><P
>However, this flow is not always suitable.  <TT
>AssertionPredicate</TT
> allows for
 additional steps to be inserted without the initial action to be affected
 by side effects.  Additionally, clean-up can be done before the test case
 has a chance to end.  A potential work flow is:
</P
><P
>1. Write data to a file.
</P
><P
>2. Read data from a file, evaluate conditions.
</P
><P
>3. Clean up the file.
</P
><P
>4. Assert that the side effects of the read operation meet certain conditions.
</P
><P
>5. Assert that the conditions evaluated in step 2 are met.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:AssertionPredicable"
><A NAME="t%3AAssertionPredicable"
></A
></A
><B
>AssertionPredicable</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#AssertionPredicable"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Used to signify that a data type can be converted to an assertion 
 predicate.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:assertionPredicate"
><A NAME="v%3AassertionPredicate"
></A
></A
><B
>assertionPredicate</B
> :: t -&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicate"
>AssertionPredicate</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#assertionPredicate"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AssertionPredicable')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:AssertionPredicable" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> t =&gt; <A HREF="Test-HUnit-Base.html#t%3AAssertionPredicable"
>AssertionPredicable</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> t)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Testable"
><A NAME="t%3ATestable"
></A
></A
><B
>Testable</B
> t  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#Testable"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Provides a way to convert data into a <TT
>Test</TT
> or set of <TT
>Test</TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:test"
><A NAME="v%3Atest"
></A
></A
><B
>test</B
> :: t -&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#test"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Testable')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Testable" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> t =&gt; <A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> [t]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Test-HUnit-Base.html#t%3AAssertable"
>Assertable</A
> t =&gt; <A HREF="Test-HUnit-Base.html#t%3ATestable"
>Testable</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> t)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Test execution
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
>Note: the rest of the functionality in this module is intended for 
 implementors of test controllers. If you just want to run your tests cases,
 simply use a test controller, such as the text-based controller in 
 <A HREF="Test-HUnit-Text.html"
>Test.HUnit.Text</A
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:State"
><A NAME="t%3AState"
></A
></A
><B
>State</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#State"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Keeps track of the remaining tests and the results of the performed tests.
 As each test is performed, the path is removed and the counts are
 updated as appropriate.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:State"
><A NAME="v%3AState"
></A
></A
><B
>State</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:path"
><A NAME="v%3Apath"
></A
></A
><B
>path</B
> :: <A HREF="Test-HUnit-Base.html#t%3APath"
>Path</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:counts"
><A NAME="v%3Acounts"
></A
></A
><B
>counts</B
> :: <A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:State')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:State" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Counts"
><A NAME="t%3ACounts"
></A
></A
><B
>Counts</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#Counts"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A data structure that hold the results of tests that have been performed
 up until this point.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Counts"
><A NAME="v%3ACounts"
></A
></A
><B
>Counts</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:cases"
><A NAME="v%3Acases"
></A
></A
><B
>cases</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:tried"
><A NAME="v%3Atried"
></A
></A
><B
>tried</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:errors"
><A NAME="v%3Aerrors"
></A
></A
><B
>errors</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:failures"
><A NAME="v%3Afailures"
></A
></A
><B
>failures</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Counts')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Counts" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Path"
><A NAME="t%3APath"
></A
></A
><B
>Path</B
> = [<A HREF="Test-HUnit-Base.html#t%3ANode"
>Node</A
>]</TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#Path"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Uniquely describes the location of a test within a test hierarchy.
 Node order is from test case to root.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Node"
><A NAME="t%3ANode"
></A
></A
><B
>Node</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#Node"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Composed into <TT
><A HREF="Test-HUnit-Base.html#t%3APath"
>Path</A
></TT
>s.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ListItem"
><A NAME="v%3AListItem"
></A
></A
><B
>ListItem</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Label"
><A NAME="v%3ALabel"
></A
></A
><B
>Label</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Node')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Node" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Test-HUnit-Base.html#t%3ANode"
>Node</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Test-HUnit-Base.html#t%3ANode"
>Node</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Test-HUnit-Base.html#t%3ANode"
>Node</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:testCasePaths"
><A NAME="v%3AtestCasePaths"
></A
></A
><B
>testCasePaths</B
> :: <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
> -&gt; [<A HREF="Test-HUnit-Base.html#t%3APath"
>Path</A
>]</TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#testCasePaths"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Determines the paths for all <TT
><A HREF="Test-HUnit-Base.html#v%3ATestCase"
>TestCase</A
></TT
>s in a tree of <TT
>Test</TT
>s.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:testCaseCount"
><A NAME="v%3AtestCaseCount"
></A
></A
><B
>testCaseCount</B
> :: <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#testCaseCount"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Counts the number of <TT
><A HREF="Test-HUnit-Base.html#v%3ATestCase"
>TestCase</A
></TT
>s in a tree of <TT
>Test</TT
>s.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ReportStart"
><A NAME="t%3AReportStart"
></A
></A
><B
>ReportStart</B
> us = <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
> -&gt; us -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> us</TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#ReportStart"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Report generator for reporting the start of a test run.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ReportProblem"
><A NAME="t%3AReportProblem"
></A
></A
><B
>ReportProblem</B
> us = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Test-HUnit-Base.html#t%3AState"
>State</A
> -&gt; us -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> us</TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#ReportProblem"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Report generator for reporting problems that have occurred during
   a test run. Problems may be errors or assertion failures.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:performTest"
><A NAME="v%3AperformTest"
></A
></A
><B
>performTest</B
></TD
><TD CLASS="declbut"
><A HREF="src/Test-HUnit-Base.html#performTest"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Test-HUnit-Base.html#t%3AReportStart"
>ReportStart</A
> us</TD
><TD CLASS="rdoc"
>report generator for the test run start 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AReportProblem"
>ReportProblem</A
> us</TD
><TD CLASS="rdoc"
>report generator for errors during the test run
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3AReportProblem"
>ReportProblem</A
> us</TD
><TD CLASS="rdoc"
>report generator for assertion failures during the test run
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; us</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Test-HUnit-Base.html#t%3ATest"
>Test</A
></TD
><TD CLASS="rdoc"
>the test to be executed 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Test-HUnit-Base.html#t%3ACounts"
>Counts</A
>, us)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Performs a test run with the specified report generators.  
</P
><P
>This handles the actual running of the tests.  Most developers will want 
 to use <TT
>HUnit.Text.runTestTT</TT
> instead.  A developer could use this function 
 to execute tests via another IO system, such as a GUI, or to output the 
 results in a different manner (e.g., upload XML-formatted results to a 
 webservice).  
</P
><P
>Note that the counts in a start report do not include the test case
 being started, whereas the counts in a problem report do include the
 test case just finished.  The principle is that the counts are sampled
 only between test case executions.  As a result, the number of test
 case successes always equals the difference of test cases tried and
 the sum of test case errors and failures.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>