summaryrefslogtreecommitdiff
path: root/tests/test_xpath_api.cpp
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-04-11 22:46:08 -0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-04-11 22:46:08 -0700
commit4e004176bacb0160007102742ec62e79a9d958bb (patch)
treee903e77b67e3a24c50238b7b60b223340fc52b8e /tests/test_xpath_api.cpp
parent37467c13bfdfbdbee7cc5176a8755e04353a9deb (diff)
tests: Improve out-of-memory tests
Previously there was no guarantee that the tests that check for out of memory handling behavior are actually correct - e.g. that they correctly simulate out of memory conditions. Now every simulated out of memory condition has to be "guarded" using CHECK_ALLOC_FAIL. It makes sure that every piece of code that is supposed to cause out-of-memory does so, and that no other code runs out of memory unnoticed.
Diffstat (limited to 'tests/test_xpath_api.cpp')
-rw-r--r--tests/test_xpath_api.cpp32
1 files changed, 4 insertions, 28 deletions
diff --git a/tests/test_xpath_api.cpp b/tests/test_xpath_api.cpp
index deb3beb..df078a0 100644
--- a/tests/test_xpath_api.cpp
+++ b/tests/test_xpath_api.cpp
@@ -356,6 +356,7 @@ TEST(xpath_api_exception_what)
CHECK(e.what()[0] != 0);
}
}
+#endif
TEST(xpath_api_node_set_ctor_out_of_memory)
{
@@ -363,15 +364,7 @@ TEST(xpath_api_node_set_ctor_out_of_memory)
xpath_node data[2];
- try
- {
- xpath_node_set ns(data, data + 2);
-
- CHECK_FORCE_FAIL("Expected out of memory exception");
- }
- catch (const std::bad_alloc&)
- {
- }
+ CHECK_ALLOC_FAIL(xpath_node_set ns(data, data + 2));
}
TEST(xpath_api_node_set_copy_ctor_out_of_memory)
@@ -381,15 +374,7 @@ TEST(xpath_api_node_set_copy_ctor_out_of_memory)
test_runner::_memory_fail_threshold = 1;
- try
- {
- xpath_node_set copy = ns;
-
- CHECK_FORCE_FAIL("Expected out of memory exception");
- }
- catch (const std::bad_alloc&)
- {
- }
+ CHECK_ALLOC_FAIL(xpath_node_set copy = ns);
}
TEST_XML(xpath_api_node_set_assign_out_of_memory_preserve, "<node><a/><b/></node>")
@@ -402,19 +387,10 @@ TEST_XML(xpath_api_node_set_assign_out_of_memory_preserve, "<node><a/><b/></node
test_runner::_memory_fail_threshold = 1;
- try
- {
- ns = nsall;
-
- CHECK_FORCE_FAIL("Expected out of memory exception");
- }
- catch (const std::bad_alloc&)
- {
- }
+ CHECK_ALLOC_FAIL(ns = nsall);
CHECK(ns.size() == 2 && ns[0] == doc.child(STR("node")).child(STR("a")) && ns[1] == doc.child(STR("node")).child(STR("b")));
}
-#endif
TEST_XML(xpath_api_deprecated_select_single_node, "<node><head/><foo id='1'/><foo/><tail/></node>")
{