From 464d0f4ff9e6d30be6a5ccf9da571ce8596840fd Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Sun, 9 May 2010 17:53:59 +0000 Subject: Added empty stream/buffer tests, fixed null buffer parsing in wchar_t mode git-svn-id: http://pugixml.googlecode.com/svn/trunk@397 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_document.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'tests') diff --git a/tests/test_document.cpp b/tests/test_document.cpp index 97ba1d9..34d1ad1 100644 --- a/tests/test_document.cpp +++ b/tests/test_document.cpp @@ -71,6 +71,15 @@ TEST(document_load_stream_error) CHECK(doc.load(iss).status == status_out_of_memory); } +TEST(document_load_stream_empty) +{ + std::istringstream iss; + + pugi::xml_document doc; + doc.load(iss); // parse result depends on STL implementation + CHECK(!doc.first_child()); +} + TEST(document_load_stream_wide) { pugi::xml_document doc; @@ -571,3 +580,38 @@ TEST(document_convert_invalid_utf16) CHECK(test_parse_fail("\x00<\xde\x24", 4, encoding_utf16_be)); CHECK(test_parse_fail("<\x00\x24\xde", 4, encoding_utf16_le)); } + +TEST(document_load_buffer_empty) +{ + encoding_t encodings[] = + { + encoding_auto, + encoding_utf8, + encoding_utf16_le, + encoding_utf16_be, + encoding_utf16, + encoding_utf32_le, + encoding_utf32_be, + encoding_utf32, + encoding_wchar + }; + + char buffer[1]; + + for (unsigned int i = 0; i < sizeof(encodings) / sizeof(encodings[0]); ++i) + { + encoding_t encoding = encodings[i]; + + xml_document doc; + CHECK(doc.load_buffer(buffer, 0, parse_default, encoding) && !doc.first_child()); + CHECK(doc.load_buffer(0, 0, parse_default, encoding) && !doc.first_child()); + + CHECK(doc.load_buffer_inplace(buffer, 0, parse_default, encoding) && !doc.first_child()); + CHECK(doc.load_buffer_inplace(0, 0, parse_default, encoding) && !doc.first_child()); + + void* own_buffer = pugi::get_memory_allocation_function()(1); + + CHECK(doc.load_buffer_inplace_own(own_buffer, 0, parse_default, encoding) && !doc.first_child()); + CHECK(doc.load_buffer_inplace_own(0, 0, parse_default, encoding) && !doc.first_child()); + } +} -- cgit v1.2.3