//
// For compilers that support precompilation, includes "wx/wx.h".
-#include "wx/wxprec.h"
+#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#include "wx/wx.h"
#endif
+
+// many of the tests are specific to the builtin regex lib, so only attempts
+// to do them when using the builtin regex lib.
+//
+#ifdef wxHAS_REGEX_ADVANCED
+
#include "wx/regex.h"
-#include "wx/cppunit.h"
#include <string>
#include <vector>
using CppUnit::TestSuite;
using CppUnit::Exception;
-using std::vector;
using std::string;
-
-// many of the tests are specific to the builtin regex lib, so only attempts
-// to do them when using the builtin regex lib.
-//
-#ifdef wxHAS_REGEX_ADVANCED
-
+using std::vector;
///////////////////////////////////////////////////////////////////////////////
// The test case - an instance represents a single test
m_advanced(false)
{
bool badconv = m_pattern == convError() || m_data == convError();
- vector<const char *>::const_iterator it;
+ //RN: Removing the std:: here will break MSVC6 compilation
+ std::vector<const char *>::const_iterator it;
for (it = expected.begin(); it != expected.end(); ++it) {
m_expected.push_back(Conv(*it));
if (nLen1 != nLen2)
return nLen1 - nLen2;
- return wxMemcmp(s1, s2, nLen1);
+ return memcmp(s1, s2, nLen1*sizeof(wchar_t));
}
// convert a string from UTF8 to the internal encoding
if (!buf || wxWcscmp(wxConvCurrent->cWX2WC(buf), wstr) != 0)
return convError();
- else
- return buf;
+
+ return buf;
}
// Parse flags
//
void RegExTestCase::parseFlags(const wxString& flags)
{
- for (const wxChar *p = flags; *p; p++) {
- switch (*p) {
+ for ( wxString::const_iterator p = flags.begin(); p != flags.end(); ++p )
+ {
+ switch ( (*p).GetValue() ) {
// noop
case '-': break;
return;
// check wxRegEx has correctly counted the number of subexpressions
- failIf(m_expected.size() != re.GetMatchCount(),
- wxString::Format(_T("GetMatchCount() == %d, expected %d"),
- re.GetMatchCount(), m_expected.size()));
-
- wxString result;
- size_t start, len;
+ wxString msg;
+ msg << _T("GetMatchCount() == ") << re.GetMatchCount()
+ << _T(", expected ") << m_expected.size();
+ failIf(m_expected.size() != re.GetMatchCount(), msg);
for (size_t i = 0; i < m_expected.size(); i++) {
- failIf(!re.GetMatch(&start, &len, i), wxString::Format(
- _T("wxRegEx::GetMatch failed for match %d"), i));
+ wxString result;
+ size_t start, len;
+
+ msg.clear();
+ msg << _T("wxRegEx::GetMatch failed for match ") << i;
+ failIf(!re.GetMatch(&start, &len, i), msg);
// m - check the match returns the strings given
if (m_mode == 'm')
+ {
if (start < INT_MAX)
result = m_data.substr(start, len);
else
result = _T("");
+ }
// i - check the match returns the offsets given
else if (m_mode == 'i')
- if (start < INT_MAX)
- result = wxString::Format(_T("%d %d"), start, start + len - 1);
- else
+ {
+ if (start > INT_MAX)
result = _T("-1 -1");
+ else if (start + len > 0)
+ result << start << _T(" ") << start + len - 1;
+ else
+ result << start << _T(" -1");
+ }
- failIf(result != m_expected[i], wxString::Format(
- _T("match(%d) == %s, expected == %s"), i,
- quote(result).c_str(), quote(m_expected[i]).c_str()));
+ msg.clear();
+ msg << _T("match(") << i << _T(") == ") << quote(result)
+ << _T(", expected == ") << quote(m_expected[i]);
+ failIf(result != m_expected[i], msg);
}
}
wxString str;
for (size_t i = 0; i < arg.length(); i++) {
- wxUChar ch = arg[i];
+ wxChar ch = (wxChar)arg[i];
const wxChar *p = wxStrchr(needEscape, ch);
if (p)
else if (wxIscntrl(ch))
str += wxString::Format(_T("\\%03o"), ch);
else
- str += ch;
+ str += (wxChar)ch;
}
return str.length() == arg.length() && str.find(' ') == wxString::npos ?