<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2008 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Running unit tests</TITLE>
<META NAME="description" CONTENT="Running unit tests">
<META NAME="keywords" CONTENT="clamdoc">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="clamdoc.css">

<LINK REL="next" HREF="node17.html">
<LINK REL="previous" HREF="node15.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node17.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html324"
  HREF="node17.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html320"
  HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html314"
  HREF="node15.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html322"
  HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html325"
  HREF="node17.html">Reporting a unit test</A>
<B> Up:</B> <A NAME="tex2html321"
  HREF="node9.html">Installation</A>
<B> Previous:</B> <A NAME="tex2html315"
  HREF="node15.html">Using the system LLVM</A>
 &nbsp; <B>  <A NAME="tex2html323"
  HREF="node1.html">Contents</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H2><A NAME="SECTION00047000000000000000"></A><A NAME="unit-testing"></A>
<BR>
Running unit tests
</H2>
	ClamAV includes unit tests that allow you to test that the compiled binaries work correctly on your platform.
        
<BR>
<BR>
The first step is to use your OS's package manager to install the <code>check</code> package. 
	If your OS doesn't have that package, you can download it from <TT><A NAME="tex2html10"
  HREF="http://check.sourceforge.net/">http://check.sourceforge.net/</A></TT>, 
	build it and install it.
        
<BR>
<BR>
To help clamav's configure script locate <code>check</code>, it is recommended that you install <code>pkg-config</code>, preferably
	using your OS's package manager, or from <TT><A NAME="tex2html11"
  HREF="http://pkg-config.freedesktop.org">http://pkg-config.freedesktop.org</A></TT>.
        
<BR>
<BR>
The recommended way to run unit-tests is the following, which ensures you will get an error if unit tests cannot be built:
	<A NAME="tex2html12"
  HREF="footnode.html#foot169"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A>	<PRE>
	 $ ./configure --enable-check
	 $ make
	 $ make check
</PRE>
	When <code>make check</code> is finished, you should get a message similar to this:
	<PRE>
==================
All 8 tests passed
==================
</PRE>
	If a unit test fails, you get a message similar to the following.
        Note that in older versions of make check may report failures due to
        the absence of optional packages. Please make sure you have the
        latest versions of the components noted in section /refsec:components.
	See the next section on how to report a bug when a unit test fails.
	<PRE>
========================================
1 of 8 tests failed
Please report to https://bugzilla.clamav.net/
========================================
</PRE>
	If unit tests are disabled (and you didn't use -enable-check), you will get this message:
	<PRE>
*** Unit tests disabled in this build
*** Use ./configure --enable-check to enable them

SKIP: check_clamav
PASS: check_clamd.sh
PASS: check_freshclam.sh
PASS: check_sigtool.sh
PASS: check_clamscan.sh
======================
All 4 tests passed
(1 tests were not run)
======================
</PRE>
	Running <code>./configure --enable-check</code> should tell you why.

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html324"
  HREF="node17.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html320"
  HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html314"
  HREF="node15.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html322"
  HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html325"
  HREF="node17.html">Reporting a unit test</A>
<B> Up:</B> <A NAME="tex2html321"
  HREF="node9.html">Installation</A>
<B> Previous:</B> <A NAME="tex2html315"
  HREF="node15.html">Using the system LLVM</A>
 &nbsp; <B>  <A NAME="tex2html323"
  HREF="node1.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
Cisco 2018-03-28
</ADDRESS>
</BODY>
</HTML>