/* * Tester for wxFormatConverter, by M. J. Wetherell * * Reads stdin, expects two column input (as produced by formats.pl or * formats2.pl), the first column contains the test pattern, the second * the expected result. * * The output is any patterns that wxFormatConveter doesn't transform to the * expected value, in three columns: input, expected, output. * * ./formats.pl | ./formattest * ./formats2.pl | ./formattest */ #include #include #include #include /* This function is in wxchar.cpp to give access to wxFormatConverter, * but only in debug mode. */ #ifdef __WXDEBUG__ extern wxString wxConvertFormat(const wxChar *format); #endif class TestApp : public wxAppConsole { public: int OnRun(); }; IMPLEMENT_APP_CONSOLE(TestApp) int TestApp::OnRun() { #ifdef __WXDEBUG__ wxFFileInputStream in(stdin); wxTextInputStream txt(in, _T("\t")); for (;;) { wxString format = txt.ReadWord(); wxString expected = txt.ReadWord(); if (!in) break; wxString converted = wxConvertFormat(format); if (converted != expected) std::cout << "'" << format.mb_str() << "'\t" << "'" << expected.mb_str() << "'\t" << "'" << converted.mb_str() << "'\n"; } #else std::cout << "Please compile this test program in debug mode.\n"; #endif return 0; }