1 // (C) Copyright Gennadiy Rozental 2001-2005. 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: output_test_stream.hpp,v $ 9 // 10 // Version : $Revision: 1.1.1.1 $ 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 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 48 // Destructor 49 ~output_test_stream(); 50 51 // checking function 52 result_type is_empty( bool flush_stream = true ); 53 result_type check_length( std::size_t length, bool flush_stream = true ); 54 result_type is_equal( const_string arg_, bool flush_stream = true ); 55 result_type match_pattern( bool flush_stream = true ); 56 57 // explicit flush 58 void flush(); 59 60 private: 61 // helper functions 62 std::size_t length(); 63 void sync(); 64 65 struct Impl; 66 Impl* m_pimpl; 67 }; 68 69 } // namespace test_tools 70 71 } // namespace boost 72 73 //____________________________________________________________________________// 74 75 #include <boost/test/detail/enable_warnings.hpp> 76 77 // *************************************************************************** 78 // Revision History : 79 // 80 // $Log: output_test_stream.hpp,v $ 81 // Revision 1.1.1.1 2006/03/20 20:15:27 ewalkup 82 // boost libraries 83 // 84 // Revision 1.4 2005/03/23 21:02:15 rogeeff 85 // Sunpro CC 5.3 fixes 86 // 87 // Revision 1.3 2005/02/20 08:27:06 rogeeff 88 // This a major update for Boost.Test framework. See release docs for complete list of fixes/updates 89 // 90 // Revision 1.2 2005/02/01 06:40:06 rogeeff 91 // copyright update 92 // old log entries removed 93 // minor stilistic changes 94 // depricated tools removed 95 // 96 // Revision 1.1 2005/01/30 03:25:24 rogeeff 97 // output_test_stream moved into separate file 98 // 99 // *************************************************************************** 100 101 #endif // BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER 102