mirror of
https://github.com/boostorg/test.git
synced 2026-02-02 09:12:10 +00:00
79 lines
3.6 KiB
HTML
79 lines
3.6 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>The Test Tools</TITLE>
|
|
<LINK rel="stylesheet" type="text/css" href="../../../style/btl.css" media="screen">
|
|
<LINK rel="stylesheet" type="text/css" href="../../../style/btl-print.css" media="print">
|
|
<META http-equiv="Content-Language" content="en-us">
|
|
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<STYLE type="text/css">
|
|
H4
|
|
{
|
|
margin: 0px;
|
|
}
|
|
</STYLE>
|
|
</HEAD>
|
|
<BODY>
|
|
<DIV class="body">
|
|
<H3>BOOST_WARN_PREDICATE( predicate, arguments_list )<BR>
|
|
BOOST_CHECK_PREDICATE( predicate, arguments_list )<BR>
|
|
BOOST_REQUIRE_PREDICATE( predicate, arguments_list )</H3>
|
|
<P class="first-line-indented">These are generic tools used to validate
|
|
an arbitrary supplied predicate functor (there is a compile time limit
|
|
on predicate arity defined by the configurable macro BOOST_TEST_MAX_PREDICATE_ARITY).
|
|
To validate zero arity predicate use <A href="BOOST_CHECK.html" target="descr">BOOST_<level></A> tools.
|
|
In other cases prefer theses tools. The advantage of these tools is that
|
|
they show arguments values in case of predicate failure.</P>
|
|
<P class="first-line-indented">The first parameter is the predicate itself.
|
|
The second parameter is
|
|
the list of predicate arguments each wrapped in round brackets (BOOST_PP
|
|
sequence format).</P>
|
|
<H4>Example: test.cpp</H4>
|
|
<PRE class="code">#<SPAN class="reserv-word">define</SPAN> BOOST_TEST_MAIN<BR>#<SPAN class="reserv-word">include</SPAN> <<SPAN class="literal">boost/test/unit_test.hpp</SPAN>><BR><SPAN class="reserv-word">using</SPAN> namespace boost::unit_test;
|
|
|
|
<SPAN class="cpp-type">bool</SPAN> moo( <SPAN class="cpp-type">int</SPAN> arg1, <SPAN class="cpp-type">int</SPAN> arg2, <SPAN class="cpp-type">int</SPAN> mod ) { <SPAN class="reserv-word">return</SPAN> ((arg1+arg2) % mod) == 0; }
|
|
|
|
BOOST_AUTO_TEST_CASE( test )
|
|
{
|
|
<SPAN class="cpp-type">int</SPAN> i = <SPAN class="literal">17</SPAN>;
|
|
<SPAN class="cpp-type">int</SPAN> j = <SPAN class="literal">15</SPAN>;
|
|
unit_test_log.set_threshold_level( log_warnings );
|
|
BOOST_WARN( moo( 12,i,j ) );
|
|
BOOST_WARN_PREDICATE( moo, (12)(i)(j) );
|
|
}
|
|
</PRE>
|
|
<H4>Output:</H4>
|
|
<P class="test-output">Running 1 test case...<BR>
|
|
test.cpp(13): warning in "test": condition moo( 12,i,j ) is not
|
|
satisfied<BR>
|
|
test.cpp(14): warning in "test": condition moo( 12, i, j ) is not
|
|
satisfied for ( 12, 17, 15 )<BR>
|
|
<BR>
|
|
*** No errors detected</P>
|
|
<H4>Example: test.cpp</H4>
|
|
<PRE class="code">#<SPAN class="reserv-word">define</SPAN> BOOST_TEST_MAIN<BR>#<SPAN class="reserv-word">include</SPAN> <<SPAN class="literal">boost/test/unit_test.hpp</SPAN>><BR><SPAN class="reserv-word"></SPAN>
|
|
#<SPAN class="reserv-word">include</SPAN> <<SPAN class="literal">functional</SPAN>>
|
|
<BR><SPAN class="reserv-word"></SPAN>BOOST_AUTO_TEST_CASE( test )
|
|
{
|
|
<SPAN class="cpp-type">int</SPAN> i = <SPAN class="literal">17</SPAN>;
|
|
|
|
BOOST_CHECK_PREDICATE( std::not_equal_to<<SPAN class="cpp-type">int</SPAN>>(), (i)(<SPAN class="literal">17</SPAN>) );
|
|
}
|
|
</PRE>
|
|
<H4>Output:</H4>
|
|
<P class="test-output">Running 1 test case...<BR>
|
|
test.cpp(10): error in "test": check std::not_equal_to<int>()(
|
|
i, 17 ) failed for ( 17, 17 )<BR>
|
|
<BR>
|
|
*** 1 failure detected in test suite "Master
|
|
Test Suite"</P>
|
|
<DIV class="see_also">
|
|
<H4>See Also</H4>
|
|
<P class="see-also-content"><A href="BOOST_CHECK.html" target="descr">BOOST_CHECK</A></P>
|
|
</DIV>
|
|
</DIV>
|
|
</BODY>
|
|
</HTML>
|
|
<!-- Copyright Gennadiy Rozental 2001-2006.
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt) -->
|