mirror of
https://github.com/boostorg/test.git
synced 2026-02-11 00:02:11 +00:00
194 lines
5.3 KiB
C++
194 lines
5.3 KiB
C++
// (C) Copyright Gennadiy Rozental 2001-2008.
|
|
// 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.
|
|
//
|
|
// File : $RCSfile$
|
|
//
|
|
// Version : $Revision$
|
|
//
|
|
// Description : tests output_test_stream test tool functionality
|
|
// ***************************************************************************
|
|
|
|
// Boost.Test
|
|
#define BOOST_TEST_MAIN
|
|
#include <boost/test/unit_test.hpp>
|
|
#include <boost/test/output_test_stream.hpp>
|
|
using boost::test_tools::output_test_stream;
|
|
|
|
// STL
|
|
#include <iomanip>
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_CASE( test_constructor )
|
|
{
|
|
{
|
|
output_test_stream output;
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
{
|
|
output_test_stream output( (char const*)0 );
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
{
|
|
output_test_stream output( "" );
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
{
|
|
output_test_stream output( "%&^$%&$%" );
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
{
|
|
output_test_stream output( "pattern.temp" );
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
{
|
|
output_test_stream output( "pattern.temp2", false );
|
|
BOOST_CHECK( output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
{
|
|
output_test_stream output( "pattern.temp2" );
|
|
BOOST_CHECK( output.match_pattern() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
}
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_CASE( test_is_empty )
|
|
{
|
|
output_test_stream output;
|
|
BOOST_CHECK( output.is_empty() );
|
|
|
|
output << 12345;
|
|
BOOST_CHECK( !output.is_empty() );
|
|
BOOST_CHECK( output.is_empty() );
|
|
|
|
output << "";
|
|
BOOST_CHECK( output.is_empty() );
|
|
|
|
output << '\0';
|
|
BOOST_CHECK( !output.is_empty( false ) );
|
|
BOOST_CHECK( !output.is_empty() );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_CASE( test_check_length )
|
|
{
|
|
output_test_stream output;
|
|
BOOST_CHECK( output.check_length( 0 ) );
|
|
|
|
output << "";
|
|
BOOST_CHECK( output.check_length( 0 ) );
|
|
|
|
output << '\0';
|
|
BOOST_CHECK( output.check_length( 1 ) );
|
|
|
|
output << 1220;
|
|
BOOST_CHECK( output.check_length( 4 ) );
|
|
|
|
output << "Text message";
|
|
BOOST_CHECK( output.check_length( 12, false ) );
|
|
BOOST_CHECK( output.check_length( 12 ) );
|
|
|
|
output.width( 20 );
|
|
output << "Text message";
|
|
BOOST_CHECK( output.check_length( 20 ) );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_CASE( test_is_equal )
|
|
{
|
|
output_test_stream output;
|
|
BOOST_CHECK( output.is_equal( "" ) );
|
|
|
|
output << 1;
|
|
BOOST_CHECK( output.is_equal( "1" ) );
|
|
|
|
output << "";
|
|
BOOST_CHECK( output.is_equal( "" ) );
|
|
|
|
output << '\0';
|
|
BOOST_CHECK( output.is_equal( boost::unit_test::const_string( "", 1 ) ) );
|
|
|
|
output << std::setw( 10 ) << "qwerty" << '\n';
|
|
BOOST_CHECK( output.is_equal( " qwerty\n" ) );
|
|
|
|
std::string s( "test string" );
|
|
|
|
output << s << std::endl;
|
|
BOOST_CHECK( output.is_equal( "test string\n", false ) );
|
|
|
|
output << s << std::endl;
|
|
BOOST_CHECK( output.is_equal( "test string\ntest string\n" ) );
|
|
|
|
char const* literal_string = "asdfghjkl";
|
|
std::string substr1( literal_string, 5 );
|
|
std::string substr2( literal_string+5, 4 );
|
|
|
|
output << substr1;
|
|
BOOST_CHECK( output.is_equal( boost::unit_test::const_string( literal_string, 5 ), false ) );
|
|
|
|
output << substr2;
|
|
BOOST_CHECK( output.is_equal( boost::unit_test::const_string( literal_string, 9 ) ) );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
BOOST_AUTO_TEST_CASE( test_match_pattern )
|
|
{
|
|
for( int i1 = 0; i1 < 2; i1++ ) {
|
|
output_test_stream output( "pattern.test", i1 == 1 );
|
|
|
|
output << "text1\n";
|
|
BOOST_CHECK( output.match_pattern() );
|
|
output << "text2\n";
|
|
BOOST_CHECK( output.match_pattern() );
|
|
output << "text3\n";
|
|
BOOST_CHECK( output.match_pattern() );
|
|
}
|
|
|
|
{
|
|
output_test_stream output( "pattern.test" );
|
|
|
|
output << "text4\n";
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
output << "text2\n";
|
|
BOOST_CHECK( output.match_pattern() );
|
|
output << "text3\n";
|
|
BOOST_CHECK( output.match_pattern() );
|
|
}
|
|
{
|
|
output_test_stream output( "pattern.test" );
|
|
|
|
output << "text\n";
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
output << "text2\n";
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
output << "text3\n";
|
|
BOOST_CHECK( !output.match_pattern() );
|
|
}
|
|
|
|
for( int i2 = 0; i2 < 2; i2++ ) {
|
|
output_test_stream output( "pattern.test", i2 == 1, false );
|
|
|
|
output << "text\rmore text\n";
|
|
BOOST_CHECK( output.match_pattern() );
|
|
}
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
// EOF
|