// (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 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_tools::assertion_result do_it( bt::test_unit_id ) { return false; } BOOST_TEST_DECORATOR( - bt::enabled() - bt::description( "initially enabled case s2/t2") - bt::precondition(do_it) ) 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