]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/test/test/writing-test-ts/output_test_stream-test.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / test / test / writing-test-ts / output_test_stream-test.cpp
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)
5
6 // See http://www.boost.org/libs/test for the library home page.
7 //
8 // File : $RCSfile$
9 //
10 // Version : $Revision$
11 //
12 // Description : tests output_test_stream test tool functionality
13 // ***************************************************************************
14
15 // Boost.Test
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;
20
21 // STL
22 #include <iomanip>
23
24 //____________________________________________________________________________//
25
26 BOOST_AUTO_TEST_CASE( test_constructor )
27 {
28 {
29 output_test_stream output;
30 BOOST_TEST( !output.match_pattern() );
31 BOOST_TEST( output.is_empty() );
32 }
33 {
34 output_test_stream output( (char const*)0 );
35 BOOST_TEST( !output.match_pattern() );
36 BOOST_TEST( output.is_empty() );
37 }
38 {
39 output_test_stream output( "" );
40 BOOST_TEST( !output.match_pattern() );
41 BOOST_TEST( output.is_empty() );
42 }
43 {
44 output_test_stream output( "%&^$%&$%" );
45 BOOST_TEST( !output.match_pattern() );
46 BOOST_TEST( output.is_empty() );
47 }
48 {
49 output_test_stream output( "pattern.temp" );
50 BOOST_TEST( !output.match_pattern() );
51 BOOST_TEST( output.is_empty() );
52 }
53 {
54 output_test_stream output( "pattern.temp2", false );
55 BOOST_TEST( output.match_pattern() );
56 BOOST_TEST( output.is_empty() );
57 }
58 {
59 output_test_stream output( "pattern.temp2" );
60 BOOST_TEST( output.match_pattern() );
61 BOOST_TEST( output.is_empty() );
62 }
63 }
64
65 //____________________________________________________________________________//
66
67 BOOST_AUTO_TEST_CASE( test_is_empty )
68 {
69 output_test_stream output;
70 BOOST_TEST( output.is_empty() );
71
72 output << 12345;
73 BOOST_TEST( !output.is_empty() );
74 BOOST_TEST( output.is_empty() );
75
76 output << "";
77 BOOST_TEST( output.is_empty() );
78
79 output << '\0';
80 BOOST_TEST( !output.is_empty( false ) );
81 BOOST_TEST( !output.is_empty() );
82 }
83
84 //____________________________________________________________________________//
85
86 BOOST_AUTO_TEST_CASE( test_check_length )
87 {
88 output_test_stream output;
89 BOOST_TEST( output.check_length( 0 ) );
90
91 output << "";
92 BOOST_TEST( output.check_length( 0 ) );
93
94 output << '\0';
95 BOOST_TEST( output.check_length( 1 ) );
96
97 output << 1220;
98 BOOST_TEST( output.check_length( 4 ) );
99
100 output << "Text message";
101 BOOST_TEST( output.check_length( 12, false ) );
102 BOOST_TEST( output.check_length( 12 ) );
103
104 output.width( 20 );
105 output << "Text message";
106 BOOST_TEST( output.check_length( 20 ) );
107 }
108
109 //____________________________________________________________________________//
110
111 BOOST_AUTO_TEST_CASE( test_is_equal )
112 {
113 output_test_stream output;
114 BOOST_TEST( output.is_equal( "" ) );
115
116 output << 1;
117 BOOST_TEST( output.is_equal( "1" ) );
118
119 output << "";
120 BOOST_TEST( output.is_equal( "" ) );
121
122 output << '\0';
123 BOOST_TEST( output.is_equal( boost::unit_test::const_string( "", 1 ) ) );
124
125 output << std::setw( 10 ) << "qwerty" << '\n';
126 BOOST_TEST( output.is_equal( " qwerty\n" ) );
127
128 std::string s( "test string" );
129
130 output << s << std::endl;
131 BOOST_TEST( output.is_equal( "test string\n", false ) );
132
133 output << s << std::endl;
134 BOOST_TEST( output.is_equal( "test string\ntest string\n" ) );
135
136 char const* literal_string = "asdfghjkl";
137 std::string substr1( literal_string, 5 );
138 std::string substr2( literal_string+5, 4 );
139
140 output << substr1;
141 BOOST_TEST( output.is_equal( boost::unit_test::const_string( literal_string, 5 ), false ) );
142
143 output << substr2;
144 BOOST_TEST( output.is_equal( boost::unit_test::const_string( literal_string, 9 ) ) );
145 }
146
147 //____________________________________________________________________________//
148
149 BOOST_AUTO_TEST_CASE( test_match_pattern )
150 {
151 for( int i1 = 0; i1 < 2; i1++ ) {
152 output_test_stream output( "pattern.test", i1 == 1 );
153
154 output << "text1\n";
155 BOOST_TEST( output.match_pattern() );
156 output << "text2\n";
157 BOOST_TEST( output.match_pattern() );
158 output << "text3\n";
159 BOOST_TEST( output.match_pattern() );
160 }
161
162 {
163 output_test_stream output( "pattern.test" );
164
165 output << "text4\n";
166 BOOST_TEST( !output.match_pattern() );
167 output << "text2\n";
168 BOOST_TEST( output.match_pattern() );
169 output << "text3\n";
170 BOOST_TEST( output.match_pattern() );
171 }
172 {
173 output_test_stream output( "pattern.test" );
174
175 output << "text\n";
176 BOOST_TEST( !output.match_pattern() );
177 output << "text2\n";
178 BOOST_TEST( !output.match_pattern() );
179 output << "text3\n";
180 BOOST_TEST( !output.match_pattern() );
181 }
182
183 for( int i2 = 0; i2 < 2; i2++ ) {
184 output_test_stream output( "pattern.test", i2 == 1, false );
185
186 output << "text\rmore text\n";
187 BOOST_TEST( output.match_pattern() );
188 }
189 }
190
191 // EOF