0
0
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:
Arseny Kapoulkine 2017-06-15 23:52:56 -07:00
parent 95f013ba80
commit d2892be902

View File

@ -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
{