LEVEL = .. DIRS = Programs include Makefile.tests # # Make QMTest the default for testing features and regressions # all:: qmtest # # New QMTest functionality: # The test suite is being transitioned over to QMTest. Eventually, it # will use QMTest by default. # # QMTest option specifying the location of the QMTest database. QMDB= -D $(LLVM_SRC_ROOT)/test QMCLASSES=$(LLVM_OBJ_ROOT)/test/QMTest # # This is configuration information used by the test suite. In QM Test, it's # called a 'context.' # CONTEXT= -c "srcroot=$(LLVM_SRC_ROOT)" \ -c "buildroot=$(LLVM_OBJ_ROOT)" \ -c "buildtype=$(CONFIGURATION)" \ -c "tmpdir=$(LLVM_OBJ_ROOT)/test/tmp" \ -c "coresize=0" \ -c "cc=$(CC)" \ -c "cxx=$(CXX)" \ -c "llvmgcc=$(LLVMGCC)" \ -c "llvmgxx=$(LLVMGXX)" \ -c "make=$(MAKE)" # # Location of the QMTest program. # QMTEST= QMTEST_CLASS_PATH=$(QMCLASSES) qmtest $(QMDB) # # Execute the tests # qmtest:: $(LLVM_OBJ_ROOT)/test/tmp register $(QMTEST) run -O $(LLVM_SRC_ROOT)/test/QMTest/expectations.qmr $(CONTEXT) %.t:: $(LLVM_OBJ_ROOT)/test/tmp register $(QMTEST) run -O $(LLVM_SRC_ROOT)/test/QMTest/expectations.qmr $(CONTEXT) $* # # Create the temporary directory used by the test suite. # $(LLVM_OBJ_ROOT)/test/tmp:: ${MKDIR} $(LLVM_OBJ_ROOT)/test/tmp # # Right now, QMTest compiles the python test classes and put them into the # source tree. Since Python bytecode is *not* cross-platform compatible (I # think), we'll regenerate every time. # # Simultaneous builds won't work, but shared source trees will. # register: $(QMTEST) register test llvm.TestAsmDisasm $(QMTEST) register test llvm.AssembleTest $(QMTEST) register test llvm.ConvertToCTest $(QMTEST) register test llvm.LLToCTest $(QMTEST) register test llvm.MachineCodeTest $(QMTEST) register test llvm.TestOptimizer $(QMTEST) register test llvm.LLITest $(QMTEST) register test llvm.TestRunner $(QMTEST) register test llvm.VerifierTest $(QMTEST) register test llvm.CTest $(QMTEST) register test llvm.CXXTest $(QMTEST) register database llvmdb.llvmdb # # Start up the QMTest GUI # gui:: $(QMTEST) gui --no-browser --daemon clean:: $(RM) -rf $(LLVM_OBJ_ROOT)/test/tmp