From 5a70071241e3c31684eed339f0a00162e2f607b8 Mon Sep 17 00:00:00 2001 From: kezenator Date: Sat, 26 Nov 2016 13:54:42 +1000 Subject: [PATCH] Added static method to convert arbitrary ErrorID to a string. Updated tests to print ErrorID and bool values as strings. --- tinyxml2.cpp | 11 ++++++++--- tinyxml2.h | 1 + xmltest.cpp | 9 +++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/tinyxml2.cpp b/tinyxml2.cpp index 826eb9b..cdf8ec7 100755 --- a/tinyxml2.cpp +++ b/tinyxml2.cpp @@ -2226,14 +2226,19 @@ void XMLDocument::SetError( XMLError error, const char* str1, const char* str2 ) _errorStr2.SetStr(str2); } -const char* XMLDocument::ErrorName() const +const char* XMLDocument::ErrorName(XMLError errorID) { - TIXMLASSERT( _errorID >= 0 && _errorID < XML_ERROR_COUNT ); - const char* errorName = _errorNames[_errorID]; + TIXMLASSERT( errorID >= 0 && errorID < XML_ERROR_COUNT ); + const char* errorName = _errorNames[errorID]; TIXMLASSERT( errorName && errorName[0] ); return errorName; } +const char* XMLDocument::ErrorName() const +{ + return ErrorName(_errorID); +} + void XMLDocument::PrintError() const { if ( Error() ) { diff --git a/tinyxml2.h b/tinyxml2.h index 12b204f..b7f822f 100755 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -1749,6 +1749,7 @@ public: return _errorID; } const char* ErrorName() const; + static const char* ErrorName(XMLError errorID); /// Return a possibly helpful diagnostic location or string. const char* GetErrorStr1() const { diff --git a/xmltest.cpp b/xmltest.cpp index 21c6093..27dd85c 100644 --- a/xmltest.cpp +++ b/xmltest.cpp @@ -63,6 +63,15 @@ bool XMLTest (const char* testString, const char* expected, const char* found, b return pass; } +bool XMLTest(const char* testString, XMLError expected, XMLError found, bool echo = true, bool extraNL = false) +{ + return XMLTest(testString, XMLDocument::ErrorName(expected), XMLDocument::ErrorName(found), echo, extraNL); +} + +bool XMLTest(const char* testString, bool expected, bool found, bool echo = true, bool extraNL = false) +{ + return XMLTest(testString, expected ? "true" : "false", found ? "true" : "false", echo, extraNL); +} template< class T > bool XMLTest( const char* testString, T expected, T found, bool echo=true ) {