summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/pugixml/tests/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/pugixml/tests/test.cpp')
-rw-r--r--3rdparty/pugixml/tests/test.cpp220
1 files changed, 0 insertions, 220 deletions
diff --git a/3rdparty/pugixml/tests/test.cpp b/3rdparty/pugixml/tests/test.cpp
deleted file mode 100644
index 6347984f5e5..00000000000
--- a/3rdparty/pugixml/tests/test.cpp
+++ /dev/null
@@ -1,220 +0,0 @@
-#define _SCL_SECURE_NO_WARNINGS
-#define _SCL_SECURE_NO_DEPRECATE
-
-#include "test.hpp"
-
-#include "writer_string.hpp"
-
-#include <math.h>
-#include <float.h>
-#include <string.h>
-#include <wchar.h>
-
-#include <algorithm>
-#include <vector>
-
-#ifndef PUGIXML_NO_XPATH
-static void build_document_order(std::vector<pugi::xpath_node>& result, pugi::xml_node root)
-{
- result.push_back(pugi::xpath_node());
-
- pugi::xml_node cur = root;
-
- for (;;)
- {
- result.push_back(cur);
-
- for (pugi::xml_attribute a = cur.first_attribute(); a; a = a.next_attribute())
- result.push_back(pugi::xpath_node(a, cur));
-
- if (cur.first_child())
- cur = cur.first_child();
- else if (cur.next_sibling())
- cur = cur.next_sibling();
- else
- {
- while (cur && !cur.next_sibling()) cur = cur.parent();
- cur = cur.next_sibling();
-
- if (!cur) break;
- }
- }
-}
-#endif
-
-bool test_string_equal(const pugi::char_t* lhs, const pugi::char_t* rhs)
-{
- return (!lhs || !rhs) ? lhs == rhs :
- #ifdef PUGIXML_WCHAR_MODE
- wcscmp(lhs, rhs) == 0;
- #else
- strcmp(lhs, rhs) == 0;
- #endif
-}
-
-bool test_node(const pugi::xml_node& node, const pugi::char_t* contents, const pugi::char_t* indent, unsigned int flags)
-{
- xml_writer_string writer;
-
- node.print(writer, indent, flags, get_native_encoding());
-
- return writer.as_string() == contents;
-}
-
-bool test_double_nan(double value)
-{
-#if defined(_MSC_VER) || defined(__BORLANDC__)
- return _isnan(value) != 0;
-#else
- return value != value;
-#endif
-}
-
-#ifndef PUGIXML_NO_XPATH
-static size_t strlength(const pugi::char_t* s)
-{
-#ifdef PUGIXML_WCHAR_MODE
- return wcslen(s);
-#else
- return strlen(s);
-#endif
-}
-
-bool test_xpath_string(const pugi::xpath_node& node, const pugi::char_t* query, pugi::xpath_variable_set* variables, const pugi::char_t* expected)
-{
- pugi::xpath_query q(query, variables);
- if (!q) return false;
-
- const size_t capacity = 64;
- pugi::char_t result[capacity];
-
- size_t size = q.evaluate_string(result, capacity, node);
-
- if (size != strlength(expected) + 1)
- return false;
-
- if (size <= capacity)
- return test_string_equal(result, expected);
-
- std::basic_string<pugi::char_t> buffer(size, ' ');
-
- return q.evaluate_string(&buffer[0], size, node) == size && test_string_equal(buffer.c_str(), expected);
-}
-
-bool test_xpath_boolean(const pugi::xpath_node& node, const pugi::char_t* query, pugi::xpath_variable_set* variables, bool expected)
-{
- pugi::xpath_query q(query, variables);
- if (!q) return false;
-
- return q.evaluate_boolean(node) == expected;
-}
-
-bool test_xpath_number(const pugi::xpath_node& node, const pugi::char_t* query, pugi::xpath_variable_set* variables, double expected)
-{
- pugi::xpath_query q(query, variables);
- if (!q) return false;
-
- double value = q.evaluate_number(node);
- double absolute_error = fabs(value - expected);
-
- const double tolerance = 1e-15f;
- return absolute_error < tolerance || absolute_error < fabs(expected) * tolerance;
-}
-
-bool test_xpath_number_nan(const pugi::xpath_node& node, const pugi::char_t* query, pugi::xpath_variable_set* variables)
-{
- pugi::xpath_query q(query, variables);
- if (!q) return false;
-
- return test_double_nan(q.evaluate_number(node));
-}
-
-bool test_xpath_fail_compile(const pugi::char_t* query, pugi::xpath_variable_set* variables)
-{
-#ifdef PUGIXML_NO_EXCEPTIONS
- return !pugi::xpath_query(query, variables);
-#else
- try
- {
- pugi::xpath_query q(query, variables);
- return false;
- }
- catch (const pugi::xpath_exception&)
- {
- return true;
- }
-#endif
-}
-
-void xpath_node_set_tester::check(bool condition)
-{
- if (!condition)
- {
- test_runner::_failure_message = message;
- longjmp(test_runner::_failure_buffer, 1);
- }
-}
-
-xpath_node_set_tester::xpath_node_set_tester(const pugi::xpath_node_set& set, const char* message_): last(0), message(message_)
-{
- result = set;
-
- // only sort unsorted sets so that we're able to verify reverse order for some axes
- if (result.type() == pugi::xpath_node_set::type_unsorted) result.sort();
-
- if (result.empty())
- {
- document_order = 0;
- document_size = 0;
- }
- else
- {
- std::vector<pugi::xpath_node> order;
- build_document_order(order, (result[0].attribute() ? result[0].parent() : result[0].node()).root());
-
- document_order = new pugi::xpath_node[order.size()];
- std::copy(order.begin(), order.end(), document_order);
-
- document_size = order.size();
- }
-}
-
-xpath_node_set_tester::~xpath_node_set_tester()
-{
- // check that we processed everything
- check(last == result.size());
-
- delete[] document_order;
-}
-
-xpath_node_set_tester& xpath_node_set_tester::operator%(unsigned int expected)
-{
- // check element count
- check(last < result.size());
-
- // check document order
- check(expected < document_size);
- check(result.begin()[last] == document_order[expected]);
-
- // continue to the next element
- last++;
-
- return *this;
-}
-
-#endif
-
-bool is_little_endian()
-{
- unsigned int ui = 1;
- return *reinterpret_cast<char*>(&ui) == 1;
-}
-
-pugi::xml_encoding get_native_encoding()
-{
-#ifdef PUGIXML_WCHAR_MODE
- return pugi::encoding_wchar;
-#else
- return pugi::encoding_utf8;
-#endif
-}