79 lines
2.5 KiB
C++
79 lines
2.5 KiB
C++
// (C) Copyright Gennadiy Rozental 2001-2008.
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// See http://www.boost.org/libs/test for the library home page.
|
|
//
|
|
// File : $RCSfile$
|
|
//
|
|
// Version : $Revision: 49312 $
|
|
//
|
|
// Description : output_test_stream class definition
|
|
// ***************************************************************************
|
|
|
|
#ifndef BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
|
|
#define BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
|
|
|
|
// Boost.Test
|
|
#include <boost/test/detail/global_typedef.hpp>
|
|
#include <boost/test/utils/wrap_stringstream.hpp>
|
|
#include <boost/test/predicate_result.hpp>
|
|
|
|
// STL
|
|
#include <cstddef> // for std::size_t
|
|
|
|
#include <boost/test/detail/suppress_warnings.hpp>
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
// ************************************************************************** //
|
|
// ************** output_test_stream ************** //
|
|
// ************************************************************************** //
|
|
|
|
// class to be used to simplify testing of ostream-based output operations
|
|
|
|
namespace boost {
|
|
|
|
namespace test_tools {
|
|
|
|
class BOOST_TEST_DECL output_test_stream : public wrap_stringstream::wrapped_stream {
|
|
typedef unit_test::const_string const_string;
|
|
typedef predicate_result result_type;
|
|
public:
|
|
// Constructor
|
|
explicit output_test_stream( const_string pattern_file_name = const_string(),
|
|
bool match_or_save = true,
|
|
bool text_or_binary = true );
|
|
|
|
// Destructor
|
|
~output_test_stream();
|
|
|
|
// checking function
|
|
result_type is_empty( bool flush_stream = true );
|
|
result_type check_length( std::size_t length, bool flush_stream = true );
|
|
result_type is_equal( const_string arg_, bool flush_stream = true );
|
|
result_type match_pattern( bool flush_stream = true );
|
|
|
|
// explicit flush
|
|
void flush();
|
|
|
|
private:
|
|
// helper functions
|
|
std::size_t length();
|
|
void sync();
|
|
|
|
struct Impl;
|
|
Impl* m_pimpl;
|
|
};
|
|
|
|
} // namespace test_tools
|
|
|
|
} // namespace boost
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
#include <boost/test/detail/enable_warnings.hpp>
|
|
|
|
#endif // BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
|