1 // (C) Copyright Gennadiy Rozental 2001-2015.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
6 // See http://www.boost.org/libs/test for the library home page.
10 // Version : $Revision$
12 // Description : tests output_test_stream test tool functionality
13 // ***************************************************************************
16 #define BOOST_TEST_MAIN
17 #include <boost/test/unit_test.hpp>
18 #include <boost/test/tools/output_test_stream.hpp>
19 using boost::test_tools::output_test_stream
;
24 //____________________________________________________________________________//
26 BOOST_AUTO_TEST_CASE( test_constructor
)
29 output_test_stream output
;
30 BOOST_TEST( !output
.match_pattern() );
31 BOOST_TEST( output
.is_empty() );
34 output_test_stream
output( (char const*)0 );
35 BOOST_TEST( !output
.match_pattern() );
36 BOOST_TEST( output
.is_empty() );
39 output_test_stream
output( "" );
40 BOOST_TEST( !output
.match_pattern() );
41 BOOST_TEST( output
.is_empty() );
44 output_test_stream
output( "%&^$%&$%" );
45 BOOST_TEST( !output
.match_pattern() );
46 BOOST_TEST( output
.is_empty() );
49 output_test_stream
output( "pattern.temp" );
50 BOOST_TEST( !output
.match_pattern() );
51 BOOST_TEST( output
.is_empty() );
54 output_test_stream
output( "pattern.temp2", false );
55 BOOST_TEST( output
.match_pattern() );
56 BOOST_TEST( output
.is_empty() );
59 output_test_stream
output( "pattern.temp2" );
60 BOOST_TEST( output
.match_pattern() );
61 BOOST_TEST( output
.is_empty() );
65 //____________________________________________________________________________//
67 BOOST_AUTO_TEST_CASE( test_is_empty
)
69 output_test_stream output
;
70 BOOST_TEST( output
.is_empty() );
73 BOOST_TEST( !output
.is_empty() );
74 BOOST_TEST( output
.is_empty() );
77 BOOST_TEST( output
.is_empty() );
80 BOOST_TEST( !output
.is_empty( false ) );
81 BOOST_TEST( !output
.is_empty() );
84 //____________________________________________________________________________//
86 BOOST_AUTO_TEST_CASE( test_check_length
)
88 output_test_stream output
;
89 BOOST_TEST( output
.check_length( 0 ) );
92 BOOST_TEST( output
.check_length( 0 ) );
95 BOOST_TEST( output
.check_length( 1 ) );
98 BOOST_TEST( output
.check_length( 4 ) );
100 output
<< "Text message";
101 BOOST_TEST( output
.check_length( 12, false ) );
102 BOOST_TEST( output
.check_length( 12 ) );
105 output
<< "Text message";
106 BOOST_TEST( output
.check_length( 20 ) );
109 //____________________________________________________________________________//
111 BOOST_AUTO_TEST_CASE( test_is_equal
)
113 output_test_stream output
;
114 BOOST_TEST( output
.is_equal( "" ) );
117 BOOST_TEST( output
.is_equal( "1" ) );
120 BOOST_TEST( output
.is_equal( "" ) );
123 BOOST_TEST( output
.is_equal( boost::unit_test::const_string( "", 1 ) ) );
125 output
<< std::setw( 10 ) << "qwerty" << '\n';
126 BOOST_TEST( output
.is_equal( " qwerty\n" ) );
128 std::string
s( "test string" );
130 output
<< s
<< std::endl
;
131 BOOST_TEST( output
.is_equal( "test string\n", false ) );
133 output
<< s
<< std::endl
;
134 BOOST_TEST( output
.is_equal( "test string\ntest string\n" ) );
136 char const* literal_string
= "asdfghjkl";
137 std::string
substr1( literal_string
, 5 );
138 std::string
substr2( literal_string
+5, 4 );
141 BOOST_TEST( output
.is_equal( boost::unit_test::const_string( literal_string
, 5 ), false ) );
144 BOOST_TEST( output
.is_equal( boost::unit_test::const_string( literal_string
, 9 ) ) );
147 //____________________________________________________________________________//
149 BOOST_AUTO_TEST_CASE( test_match_pattern
)
151 for( int i1
= 0; i1
< 2; i1
++ ) {
152 output_test_stream
output( "pattern.test", i1
== 1 );
155 BOOST_TEST( output
.match_pattern() );
157 BOOST_TEST( output
.match_pattern() );
159 BOOST_TEST( output
.match_pattern() );
163 output_test_stream
output( "pattern.test" );
166 BOOST_TEST( !output
.match_pattern() );
168 BOOST_TEST( output
.match_pattern() );
170 BOOST_TEST( output
.match_pattern() );
173 output_test_stream
output( "pattern.test" );
176 BOOST_TEST( !output
.match_pattern() );
178 BOOST_TEST( !output
.match_pattern() );
180 BOOST_TEST( !output
.match_pattern() );
183 for( int i2
= 0; i2
< 2; i2
++ ) {
184 output_test_stream
output( "pattern.test", i2
== 1, false );
186 output
<< "text\rmore text\n";
187 BOOST_TEST( output
.match_pattern() );