source: NonGTP/Boost/boost/test/output_test_stream.hpp @ 857

Revision 857, 3.2 KB checked in by igarcia, 18 years ago (diff)
Line 
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.4 $
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
36namespace boost {
37
38namespace test_tools {
39
40class output_test_stream : public wrap_stringstream::wrapped_stream {
41    typedef unit_test::const_string const_string;
42    typedef predicate_result        result_type;
43public:
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
60private:
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.4  2005/03/23 21:02:15  rogeeff
82//  Sunpro CC 5.3 fixes
83//
84//  Revision 1.3  2005/02/20 08:27:06  rogeeff
85//  This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
86//
87//  Revision 1.2  2005/02/01 06:40:06  rogeeff
88//  copyright update
89//  old log entries removed
90//  minor stilistic changes
91//  depricated tools removed
92//
93//  Revision 1.1  2005/01/30 03:25:24  rogeeff
94//  output_test_stream moved into separate file
95//
96// ***************************************************************************
97
98#endif // BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
Note: See TracBrowser for help on using the repository browser.