/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2000-2009 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #include #include "cmStandardIncludes.h" struct test_pair { const char* in; const char* out; }; static test_pair const pairs[] = { {"copyright \xC2\xA9", "copyright \xC2\xA9"}, {"form-feed \f", "form-feed [NON-XML-CHAR-0xC]"}, {"angles <>", "angles <>"}, {"ampersand &", "ampersand &"}, {"bad-byte \x80", "bad-byte [NON-UTF-8-BYTE-0x80]"}, {0,0} }; int testXMLSafe(int, char*[]) { int result = 0; for(test_pair const* p = pairs; p->in; ++p) { cmXMLSafe xs(p->in); std::ostringstream oss; oss << xs; std::string out = oss.str(); if(out != p->out) { printf("expected [%s], got [%s]\n", p->out, out.c_str()); result = 1; } } return result; }