mirror of
https://github.com/boostorg/test.git
synced 2026-01-30 08:22:12 +00:00
the status (enabled/disabled) is split on default and run status. Default is deduced once at the end of setup phase. Run state is deduced before each test tree execution based on default and supplied filters disabled nodes are not removed from tree and can be reenabled dynamically dependency filtering is moved completely to execution phase into a precondition check step dependency tree is validated for loops dependency rank is respected in order of node execution now dependency works properly with random test execution added support for selected vs. enabler filters properly time test suites now split initialization ans setup phase finalization into separate methods --list_content parameter is now accepts optional string format name. Default is HRF. We now also support DOT output HRF output format is improved to include some test unit attributes (including description) test suite is considered failing now if it has skipped test case some messages produced changes to be syntactically correct: failed => has failed for example properly report precondition failures in log messages number of spelling errors fixed small bug in random.hpp is fixed
436 lines
8.9 KiB
C++
436 lines
8.9 KiB
C++
// (C) Copyright Gennadiy Rozental 2015.
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// See http://www.boost.org/libs/test for the library home page.
|
|
|
|
#define BOOST_TEST_MODULE filtering test
|
|
#include <boost/test/unit_test.hpp>
|
|
namespace bt=boost::unit_test;
|
|
|
|
const std::string test1v("test1");
|
|
const std::string test2v("test2");
|
|
const std::string test3v("test3");
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
- bt::description( "initially disabled suite 1")
|
|
- bt::label( "label1" )
|
|
- bt::label( "label2" )
|
|
)
|
|
BOOST_AUTO_TEST_SUITE( s1 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::enabled()
|
|
- bt::description( "initially enabled case s1/t1")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s1" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::description( "initially defaulted case s1/t2")
|
|
- bt::expected_failures( 1 )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s1" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::description( "initially defaulted case s1/t3")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test3 )
|
|
{
|
|
BOOST_TEST( "s1" == test3v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
- bt::label( "label1" )
|
|
- bt::expected_failures( 3 )
|
|
)
|
|
BOOST_AUTO_TEST_SUITE( s2 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::description( "initially defaulted case s2/t1")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s2" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::enabled()
|
|
- bt::description( "initially enabled case s2/t2")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s2" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::description( "initially defaulted case s2/t3")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test3 )
|
|
{
|
|
BOOST_TEST( "s2" == test3v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
)
|
|
BOOST_AUTO_TEST_SUITE( s3 )
|
|
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s3" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::timeout( 10 )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s3" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::enabled()
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test3 )
|
|
{
|
|
BOOST_TEST( "s3" == test3v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s3/s15" )
|
|
- bt::description( "test suite which depends on another test suite")
|
|
)
|
|
BOOST_AUTO_TEST_SUITE( s14 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s14" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE( s15 )
|
|
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s15" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE( s4 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
- bt::label( "label2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s4" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s4/test1" )
|
|
- bt::description( "test case which depends on disabled s4/t1")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s4" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s4/test2" )
|
|
- bt::description( "test case which depends on enabled s4/t2, but indirectly on disabled s4/t1")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test3 )
|
|
{
|
|
BOOST_TEST( "s4" == test3v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
#if 0
|
|
BOOST_AUTO_TEST_SUITE( s5 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s5/test3" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s5" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s5/test1" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s5" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s5/test2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test3 )
|
|
{
|
|
BOOST_TEST( "s5" == test3v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
#endif
|
|
|
|
BOOST_AUTO_TEST_SUITE( s6 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s6/test3" )
|
|
- bt::description( "test case which depends on enabled s6/t3")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s6" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s6/test1" )
|
|
- bt::description( "test case which depends on enabled s6/t1")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s6" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_CASE( test3 )
|
|
{
|
|
BOOST_TEST( "s6" == test3v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::description( "test suite with all test cases disabled")
|
|
)
|
|
BOOST_AUTO_TEST_SUITE( s9 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
- bt::label( "label1" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s9" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s9" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
#if 0
|
|
BOOST_AUTO_TEST_SUITE( s7 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s8/test1" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s7" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s7/test1" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s7" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE( s8 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s8/test2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s8" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s7/test2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s8" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
`
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE( s10 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s11" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s10" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s10/test1" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s10" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE( s11 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s11/test2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s11" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s10" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s11" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
#endif
|
|
|
|
BOOST_AUTO_TEST_SUITE( s12 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s13" )
|
|
- bt::description( "test test case which depends on test suite with all test cases skipped")
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s12" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
BOOST_AUTO_TEST_SUITE( s13 )
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::depends_on( "s13/test2" )
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test1 )
|
|
{
|
|
BOOST_TEST( "s13" == test1v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_TEST_DECORATOR(
|
|
- bt::disabled()
|
|
)
|
|
BOOST_AUTO_TEST_CASE( test2 )
|
|
{
|
|
BOOST_TEST( "s13" == test2v );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|
|
|
|
// EOF
|