CMarkup test dialog

Update December 17, 2008: With CMarkup release 10.1, the same tests displayed by this VC++ 6.0 MFC-based dialog are available on Linux, OS X and other platforms using the CMarkupTest class.

The Markup.exe testbed for CMarkup is a Visual Studio 6.0 MFC project with some additional features beyond CMarkupTest. When it starts, it performs CMarkupTest::RunTest diagnostics to test CMarkup in the context of the particular build options that have been selected. RunTest is a big routine built out of all of the regression tests devised through the years of CMarkup development (see CMarkupTest class).

Use the Open and Parse buttons to test a file.

Update September 27, 2008: With CMarkup release 10.0 the test dialog will log tests in the CMarkupTesting.xml file if you first extract the whole download zip file to a folder with write permission. You can also specify files you would like tested in the CMarkupTesting.xml file with LoadParseFile elements. Notice also that it stores last selected file, and dialog position settings.

<CMarkupTesting>
<Section name="Settings">
<Entry name="Filename">C:\test.xml</Entry>
<Entry name="Position">481,239</Entry>
</Section>
<LoadParseFile>Languages UTF-16.xml</LoadParseFile>
<Test t="15-Dec-2008 15:36:11"><![CDATA[CMarkup 10.1  MFC WINCONV Debug
71 tests, 2810 checks, 1126/ms create, 10897/ms parse
Languages UTF-16.xml
Loaded and parsed in 0 milliseconds
UTF-16LE BOM + length 9298 to 11202 bytes 
]]></Test>
</CMarkupTesting>

On startup, the test dialog generates a Test element with a timestamp in the t attribute, the output of the CMarkupTest::RunTest, and then the result text for each LoadParseFile element.

The 10.0 test project has 36 build configurations, 18 Debug and the corresponding 18 Release builds. The MFC and STL builds each have MBCS and UNICODE variations in addition to plain UTF-8, and MARKUP_STDCONV for each of those (12). The MSXML, MSXML3 and MSXML4 builds are for either MBCS and UNICODE (6). If you batch build all of them, the included runall.bat file can be used to run all the configurations, and it uses the -autoexit command line parameter to run them in batch mode.