You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Farid Zaripov (JIRA)" <ji...@apache.org> on 2008/03/25 15:19:24 UTC
[jira] Updated: (STDCXX-515) std::basic_streambuf<>::xsputn()
writes characters at the end, but not at the current position if
reallocation of internal buffer occurs
[ https://issues.apache.org/jira/browse/STDCXX-515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Farid Zaripov updated STDCXX-515:
---------------------------------
Description:
The test below asserts on i == 512.
{code:title=test.cpp}
#include <sstream>
#include <string>
#include <cassert>
int main ()
{
for (size_t i = 1; i <= 1024; ++i) {
std::stringstream strm;
std::string s (i, 'a');
strm << s;
strm.seekp (-1, std::ios::cur);
s.erase (0, 1);
strm << "bc";
s.append ("bc");
assert (strm.str () == s);
}
return 0;
}
{code}
The test output:
{noformat}
test: test.cpp:15: int main (): Assertion `strm.str () == s' failed.
Aborted
{noformat}
was:
The test below asserts on i == 512.
test.cpp:
------------------
#include <sstream>
#include <string>
#include <cassert>
int main ()
{
for (size_t i = 1; i <= 1024; ++i) {
std::stringstream strm;
std::string s (i, 'a');
strm << s;
strm.seekp (-1, std::ios::cur);
s.erase (0, 1);
strm << "bc";
s.append ("bc");
assert (strm.str () == s);
}
return 0;
}
------------------
The test output:
------------------
test: test.cpp:15: int main (): Assertion `strm.str () == s' failed.
Aborted
------------------
Disabled formatting.
> std::basic_streambuf<>::xsputn() writes characters at the end, but not at the current position if reallocation of internal buffer occurs
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: STDCXX-515
> URL: https://issues.apache.org/jira/browse/STDCXX-515
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 27. Input/Output
> Affects Versions: 4.2.0
> Environment: All
> Reporter: Farid Zaripov
> Assignee: Farid Zaripov
> Fix For: 4.2.0
>
>
> The test below asserts on i == 512.
> {code:title=test.cpp}
> #include <sstream>
> #include <string>
> #include <cassert>
> int main ()
> {
> for (size_t i = 1; i <= 1024; ++i) {
> std::stringstream strm;
> std::string s (i, 'a');
> strm << s;
> strm.seekp (-1, std::ios::cur);
> s.erase (0, 1);
> strm << "bc";
> s.append ("bc");
> assert (strm.str () == s);
> }
> return 0;
> }
> {code}
> The test output:
> {noformat}
> test: test.cpp:15: int main (): Assertion `strm.str () == s' failed.
> Aborted
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.