177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner/*
277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Note: Strstreams are really broken in STLport. But strstreams are
377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * obsolete, and even if ones was mentioned in D7.1--D7.4 of
477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Standard, we have no wish to spent time with repair ones.
577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */
677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_NO_IOSTREAMS)
777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  include <strstream>
877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  include "cppunit/cppunit_proxy.h"
1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerusing namespace std;
1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#  endif
1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass StrstreamBufferTest : public CPPUNIT_NS::TestCase
1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{
1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  CPPUNIT_TEST_SUITE(StrstreamBufferTest);
1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  CPPUNIT_TEST(read_from_buffer);
1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  CPPUNIT_TEST_SUITE_END();
2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprotected:
2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  void read_from_buffer();
2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner};
2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerCPPUNIT_TEST_SUITE_REGISTRATION(StrstreamBufferTest);
2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner
2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid StrstreamBufferTest::read_from_buffer()
2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{
2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  char hello[] = "Hello";
3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  strstream stream(hello, sizeof(hello), ios_base::in);
3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  char cur;
3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  stream >> cur;
3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner  CPPUNIT_ASSERT(cur == 'H');
3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}
3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif
36