From a32b4392bb05163518a8c98bfe1c72455692b4d3 Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Sun, 3 Oct 2010 18:14:12 +0000 Subject: XPath: evaluate_string now guarantees zero-terminated result (unless the buffer size is zero) git-svn-id: http://pugixml.googlecode.com/svn/trunk@762 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_xpath_api.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/test_xpath_api.cpp b/tests/test_xpath_api.cpp index 281e357..b735f8c 100644 --- a/tests/test_xpath_api.cpp +++ b/tests/test_xpath_api.cpp @@ -220,17 +220,19 @@ TEST(xpath_api_evaluate_string) // test for just not enough space std::basic_string s2 = base; - CHECK(q.evaluate_string(&s2[0], 10, xml_node()) == 11 && memcmp(&s2[0], STR("0123456789xxxxxx"), 16 * sizeof(char_t)) == 0); + CHECK(q.evaluate_string(&s2[0], 10, xml_node()) == 11 && memcmp(&s2[0], STR("012345678\0xxxxxx"), 16 * sizeof(char_t)) == 0); // test for not enough space std::basic_string s3 = base; - CHECK(q.evaluate_string(&s3[0], 5, xml_node()) == 11 && memcmp(&s3[0], STR("01234xxxxxxxxxxx"), 16 * sizeof(char_t)) == 0); + CHECK(q.evaluate_string(&s3[0], 5, xml_node()) == 11 && memcmp(&s3[0], STR("0123\0xxxxxxxxxxx"), 16 * sizeof(char_t)) == 0); // test for single character buffer std::basic_string s4 = base; - CHECK(q.evaluate_string(&s4[0], 1, xml_node()) == 11 && memcmp(&s4[0], STR("0xxxxxxxxxxxxxxx"), 16 * sizeof(char_t)) == 0); + CHECK(q.evaluate_string(&s4[0], 1, xml_node()) == 11 && memcmp(&s4[0], STR("\0xxxxxxxxxxxxxxx"), 16 * sizeof(char_t)) == 0); // test for empty buffer + std::basic_string s5 = base; + CHECK(q.evaluate_string(&s5[0], 0, xml_node()) == 11 && memcmp(&s5[0], STR("xxxxxxxxxxxxxxxx"), 16 * sizeof(char_t)) == 0); CHECK(q.evaluate_string(0, 0, xml_node()) == 11); } -- cgit v1.2.3