-<!--=========================================================================-->
-<div class="doc_section"><a name="qmstructure">QMTest Structure</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>The Feature and Regression tests can also be run using QMTest.</p>
-
-<p>The QMTest system needs to have several pieces of information available;
-these pieces of configuration information are known collectively as the
-"context" in QMTest parlance. Since the context for LLVM is relatively large,
-the master Makefile in llvm/test sets it for you.</p>
-
-<p>The LLVM database class makes the subdirectories of llvm/test a QMTest test
-database. For each directory that contains tests driven by QMTest, it knows
-what type of test the source file is and how to run it.</p>
-
-<p>Hence, the QMTest namespace is essentially what you see in the Feature and
-Regression directories, but there is some magic that the database class performs
-(as described below).</p>
-
-<p>The QMTest namespace is currently composed of the following tests and test
-suites:</p>
-
-<ul>
-<li>Feature
-
-<p>These are the feature tests found in the Feature directory.
-They are broken up into the following categories:</p>
-
-<ul>
- <li>ad
- <p>Assembler/Disassembler tests. These tests verify that a piece of LLVM
- assembly language can be assembled into bytecode and then disassembled
- into the original assembly language code. It does this several times to
- ensure that assembled output can be disassembled and disassembler output
- can be assembled. It also verifies that the give assembly language file
- can be assembled correctly.</p></li>
-
- <li>opt
- <p>Optimizer tests. These tests verify that two of the optimizer passes
- completely optimize a program (i.e. after a single pass, they cannot
- optimize a program any further).</p></li>
-
- <li>mc
- <p> Machine code tests. These tests verify that the LLVM assembly
- language file can be translated into native assembly code.</p></li>
-
- <li>cc
- <p>C code tests. These tests verify that the specified LLVM assembly
- code can be converted into C source code using the C backend.</p></li>
-</ul>
-
-<p>The LLVM database class looks at every file in the Feature directory and
-creates a fake test hierarchy containing
-<tt>Feature.<testtype>.<testname></tt>. So, if you add an LLVM
-assembly language file to the Feature directory, it actually creates 5 new
-tests: assembler/disassembler, assembler, optimizer, machine code, and C code.
-</p></li>
-
-<li>Regression
- <p>These are the regression tests. There is one suite for each
- subdirectory of the Regression directory. If you add a new subdirectory
- there, you will need to modify, at least, the <tt>RegressionMap</tt>
- variable in <tt>QMTest/llvmdb.py</tt> so that QMTest knows how to run the
- tests in the new subdirectory.</p>
-</li>
-
-</ul>
-
-</div>
-