diff options
Diffstat (limited to 'tests/test_xpath_functions.cpp')
-rw-r--r-- | tests/test_xpath_functions.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index 43e334e..dee999c 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -815,4 +815,28 @@ TEST(xpath_unknown_functions) CHECK_XPATH_FAIL(query); } } + +TEST(xpath_string_translate_table_out_of_memory) +{ + xml_node c; + + // our goal is to generate translate table OOM without generating query OOM + std::basic_string<char_t> query = STR("concat("); + + size_t count = 20; + + for (size_t i = 0; i < count; ++i) + { + if (i != 0) query += STR(","); + query += STR("translate('a','a','A')"); + } + + query += STR(")"); + + std::basic_string<char_t> result(count, 'A'); + + test_runner::_memory_fail_threshold = 5000; + + CHECK_ALLOC_FAIL(CHECK_XPATH_STRING(c, query.c_str(), result.c_str())); +} #endif |