tests: Fix Borland C++ 5.4 compilation

The tests now compile fine but crash on the first floating-point exception
despite our attempts to disable them in main()...
This commit is contained in:
Arseny Kapoulkine 2015-10-25 13:44:26 -07:00
parent fe58041a61
commit 94c08f27c6
3 changed files with 5 additions and 9 deletions

View File

@ -112,8 +112,8 @@ struct dummy_fixture {};
#define CHECK_TEXT(condition, text) if (condition) ; else test_runner::_failure_message = CHECK_JOIN2(text, __FILE__, __LINE__), longjmp(test_runner::_failure_buffer, 1) #define CHECK_TEXT(condition, text) if (condition) ; else test_runner::_failure_message = CHECK_JOIN2(text, __FILE__, __LINE__), longjmp(test_runner::_failure_buffer, 1)
#define CHECK_FORCE_FAIL(text) test_runner::_failure_message = CHECK_JOIN2(text, __FILE__, __LINE__), longjmp(test_runner::_failure_buffer, 1) #define CHECK_FORCE_FAIL(text) test_runner::_failure_message = CHECK_JOIN2(text, __FILE__, __LINE__), longjmp(test_runner::_failure_buffer, 1)
#if (defined(_MSC_VER) && _MSC_VER == 1200) || defined(__MWERKS__) #if (defined(_MSC_VER) && _MSC_VER == 1200) || defined(__MWERKS__) || (defined(__BORLANDC__) && __BORLANDC__ <= 0x540)
# define STRINGIZE(value) "??" // MSVC 6.0 and CodeWarrior have troubles stringizing stuff with strings w/escaping inside # define STRINGIZE(value) "??" // Some compilers have issues with stringizing expressions that contain strings w/escaping inside
#else #else
# define STRINGIZE(value) #value # define STRINGIZE(value) #value
#endif #endif
@ -150,7 +150,7 @@ struct dummy_fixture {};
#define STR(text) PUGIXML_TEXT(text) #define STR(text) PUGIXML_TEXT(text)
#ifdef __DMC__ #if defined(__DMC__) || defined(__BORLANDC__)
#define U_LITERALS // DMC does not understand \x01234 (it parses first three digits), but understands \u01234 #define U_LITERALS // DMC does not understand \x01234 (it parses first three digits), but understands \u01234
#endif #endif

View File

@ -360,7 +360,7 @@ TEST(document_load_file_wide_ascii)
CHECK_NODE(doc, STR("<node />")); CHECK_NODE(doc, STR("<node />"));
} }
#if !defined(__DMC__) && !defined(__MWERKS__) && !(defined(__MINGW32__) && defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR)) #if !defined(__DMC__) && !defined(__MWERKS__) && !(defined(__MINGW32__) && defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR)) && !defined(__BORLANDC__)
TEST(document_load_file_wide_unicode) TEST(document_load_file_wide_unicode)
{ {
pugi::xml_document doc; pugi::xml_document doc;

View File

@ -6,10 +6,6 @@
#include <math.h> #include <math.h>
#include <string.h> #include <string.h>
#ifdef __BORLANDC__
using std::ldexpf;
#endif
TEST_XML(dom_attr_assign, "<node/>") TEST_XML(dom_attr_assign, "<node/>")
{ {
xml_node node = doc.child(STR("node")); xml_node node = doc.child(STR("node"));
@ -1647,7 +1643,7 @@ TEST(dom_fp_roundtrip_float)
{ {
for (size_t i = 0; i < sizeof(fp_roundtrip_base) / sizeof(fp_roundtrip_base[0]); ++i) for (size_t i = 0; i < sizeof(fp_roundtrip_base) / sizeof(fp_roundtrip_base[0]); ++i)
{ {
float value = ldexpf(static_cast<float>(fp_roundtrip_base[i]), e); float value = static_cast<float>(ldexp(fp_roundtrip_base[i], e));
doc.text().set(value); doc.text().set(value);
CHECK(fp_equal(doc.text().as_float(), value)); CHECK(fp_equal(doc.text().as_float(), value));