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). While the test harness dialog is only for Windows, the CMarkupTest class will compile on Linux, OS X and other platforms.

In the dialog, use the Open and Parse buttons to test a file.

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"></Entry>
<Entry name="Position">452,143</Entry>
</Section>
<LoadParseFile>C:\Proj\XML Samples\large_play.xml</LoadParseFile>
<Results>
<Test
  v="11.2"
  b="MFC"
  t="25-Sep-2010 18:00:06"
  c="12331"
  ac="4754"
  p="40002"
  ap="5175"
  w="9846"
  r="11810"
  >
<File filename="C:\Proj\XML Samples\large_play.xml" ms="241">
<Log>Loaded and parsed in 241 milliseconds
UTF-8 length 3997909</Log>
<read encoding="UTF-8" length="3997909"/>
</File>
<Log>CMarkup 11.3 MFC WINCONV HUGE
3128 checks, perf b/ms: create 12331, attrib 4754, parse 40002, attrib 5175
file mode perf b/ms: writer 9846, reader 11810
</Log>
</Test>
</Results>
</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.

Updates

Update September 27, 2008: CMarkup release 10.0 test dialog uses CMarkupTesting.xml.

Update December 17, 2008: CMarkup release 10.1 tests are available on Linux, OS X and other platforms.

Update November 20, 2010: CMarkup release 11.3 CMarkupTesting.xml contains more attributes with performance measures, and Test elements are moved inside a Results element so that they can all be cleared at once in the editor.