diff options
| -rw-r--r-- | tests/test_document.cpp | 36 | 
1 files changed, 26 insertions, 10 deletions
diff --git a/tests/test_document.cpp b/tests/test_document.cpp index 81c9014..bb5ed63 100644 --- a/tests/test_document.cpp +++ b/tests/test_document.cpp @@ -237,15 +237,27 @@ TEST(document_load_stream_nonseekable_out_of_memory)      CHECK_ALLOC_FAIL(CHECK(doc.load(in).status == status_out_of_memory));  } +TEST(document_load_stream_wide_nonseekable_out_of_memory) +{ +    wchar_t contents[] = L"<node />"; +    char_array_buffer<wchar_t> buffer(contents, contents + sizeof(contents) / sizeof(contents[0])); +    std::basic_istream<wchar_t> in(&buffer); + +    test_runner::_memory_fail_threshold = 1; + +    pugi::xml_document doc; +    CHECK_ALLOC_FAIL(CHECK(doc.load(in).status == status_out_of_memory)); +} +  TEST(document_load_stream_nonseekable_out_of_memory_large)  { -	std::basic_string<pugi::char_t> str; -	str += STR("<node>"); -	for (int i = 0; i < 10000; ++i) str += STR("<node />"); -	str += STR("</node>"); +	std::basic_string<char> str; +	str += "<node>"; +	for (int i = 0; i < 10000; ++i) str += "<node />"; +	str += "</node>"; -    char_array_buffer<pugi::char_t> buffer(&str[0], &str[0] + str.length()); -    std::basic_istream<pugi::char_t> in(&buffer); +    char_array_buffer<char> buffer(&str[0], &str[0] + str.length()); +    std::basic_istream<char> in(&buffer);      test_runner::_memory_fail_threshold = 10000 * 8 * 3 / 2; @@ -253,13 +265,17 @@ TEST(document_load_stream_nonseekable_out_of_memory_large)      CHECK_ALLOC_FAIL(CHECK(doc.load(in).status == status_out_of_memory));  } -TEST(document_load_stream_wide_nonseekable_out_of_memory) +TEST(document_load_stream_wide_nonseekable_out_of_memory_large)  { -    wchar_t contents[] = L"<node />"; -    char_array_buffer<wchar_t> buffer(contents, contents + sizeof(contents) / sizeof(contents[0])); +	std::basic_string<wchar_t> str; +	str += L"<node>"; +	for (int i = 0; i < 10000; ++i) str += L"<node />"; +	str += L"</node>"; + +    char_array_buffer<wchar_t> buffer(&str[0], &str[0] + str.length());      std::basic_istream<wchar_t> in(&buffer); -    test_runner::_memory_fail_threshold = 1; +    test_runner::_memory_fail_threshold = 10000 * 8 * 3 / 2;      pugi::xml_document doc;      CHECK_ALLOC_FAIL(CHECK(doc.load(in).status == status_out_of_memory));  | 
