mirror of
https://github.com/zeux/pugixml.git
synced 2025-01-14 01:47:55 +08:00
tests: Add xml_buffered_writer coverage test
This test triggers flush() condition for each optimized write() method.
This commit is contained in:
parent
95f013ba80
commit
d2892be902
@ -639,6 +639,30 @@ TEST_XML_FLAGS(write_roundtrip, "<node><child1 attr1='value1' attr2='value2'/><c
|
||||
}
|
||||
}
|
||||
|
||||
TEST(write_flush_coverage)
|
||||
{
|
||||
xml_document doc;
|
||||
|
||||
// this creates a node that uses short sequences of lengths 1-6 for output
|
||||
xml_node n = doc.append_child(STR("n"));
|
||||
n.text().set(STR("<&\""));
|
||||
n.append_child(node_comment);
|
||||
|
||||
xml_attribute a = n.append_attribute(STR("a"));
|
||||
|
||||
size_t basel = save_narrow(doc, 0, encoding_auto).size();
|
||||
size_t bufl = 10240;
|
||||
|
||||
for (size_t l = 0; l <= basel; ++l)
|
||||
{
|
||||
std::basic_string<pugi::char_t> pad(bufl - l, STR('v'));
|
||||
a.set_value(pad.c_str());
|
||||
|
||||
std::string s = save_narrow(doc, 0, encoding_auto);
|
||||
CHECK(s.size() == basel + bufl - l);
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef PUGIXML_NO_EXCEPTIONS
|
||||
struct throwing_writer: pugi::xml_writer
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user