Ticket #8203: iostream_filter_issue.cpp

File iostream_filter_issue.cpp, 828 bytes (added by anonymous, 10 years ago)

Demonstrates issue writing 0xFF through filtering_ostream on XCode

Line 
1void CheckBinaryFFOutThroughBoostFilterStream()
2{
3 // filtering stream fails to write 0xFF chars to ostream. Have reproduced with ofstream too
4 std::ostringstream ostm(std::ios_base::out | std::ios_base::binary);
5
6 // Use empty filtering stream. Problem was originally found with zlib_compressor
7 boost::iostreams::filtering_ostream filterStream;
8 filterStream.push( ostm );
9
10 const unsigned fileSize = 30000;
11 for( unsigned nWritten = 0; nWritten < fileSize; ++nWritten)
12 {
13 const char eofTest = -1; // Only fails with 0xFF character any other value fine
14
15 filterStream.write( &eofTest, sizeof eofTest);
16 }
17 filterStream.flush();
18 // This assert fails on Xcode. The number of missing characters is equal to the number
19 // of times overflow got called
20 assert( ostm.str().size() == fileSize);
21}