1 // (C) Copyright Gennadiy Rozental 2001-2008. 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: 49312 $ 11 // 12 // Description : output_test_stream class definition 13 // *************************************************************************** 14 15 #ifndef BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER 16 #define BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER 17 18 // Boost.Test 19 #include <boost/test/detail/global_typedef.hpp> 20 #include <boost/test/utils/wrap_stringstream.hpp> 21 #include <boost/test/predicate_result.hpp> 22 23 // STL 24 #include <cstddef> // for std::size_t 25 26 #include <boost/test/detail/suppress_warnings.hpp> 27 28 //____________________________________________________________________________// 29 30 // ************************************************************************** // 31 // ************** output_test_stream ************** // 32 // ************************************************************************** // 33 34 // class to be used to simplify testing of ostream-based output operations 35 36 namespace boost { 37 38 namespace test_tools { 39 40 class BOOST_TEST_DECL output_test_stream : public wrap_stringstream::wrapped_stream { 41 typedef unit_test::const_string const_string; 42 typedef predicate_result result_type; 43 public: 44 // Constructor 45 explicit output_test_stream( const_string pattern_file_name = const_string(), 46 bool match_or_save = true, 47 bool text_or_binary = true ); 48 49 // Destructor 50 ~output_test_stream(); 51 52 // checking function 53 result_type is_empty( bool flush_stream = true ); 54 result_type check_length( std::size_t length, bool flush_stream = true ); 55 result_type is_equal( const_string arg_, bool flush_stream = true ); 56 result_type match_pattern( bool flush_stream = true ); 57 58 // explicit flush 59 void flush(); 60 61 private: 62 // helper functions 63 std::size_t length(); 64 void sync(); 65 66 struct Impl; 67 Impl* m_pimpl; 68 }; 69 70 } // namespace test_tools 71 72 } // namespace boost 73 74 //____________________________________________________________________________// 75 76 #include <boost/test/detail/enable_warnings.hpp> 77 78 #endif // BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER 79