X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FMakefile;h=29f823666a88cef6cfba210de9a7cbe173211054;hb=e8a63eb78fc38853f951d77d171461e7ff651ad4;hp=44ac0bef65ff3843917f3c0ca1fbfb6fc4fb7073;hpb=ad5b62012c89177ecb3cb756b4a177bf4b2912b4;p=oota-llvm.git diff --git a/test/Makefile b/test/Makefile index 44ac0bef65f..29f823666a8 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,63 +1,85 @@ -LLC := ../tools/Debug/llc -AS := ../tools/Debug/as -LLCOPTS := -dsched y -ARCHFLAGS = - -CC = /opt/SUNWspro/bin/cc -CCFLAGS = -g -xarch=v9 -## CC = gcc -## CCFLAGS = -g -xarch=v9 ## -mcpu=v9 - -TESTS := $(wildcard *.ll) - -LLCTESTS := $(shell /bin/ls *.ll | grep -v testswitch | grep -v opttest | grep -v xx | grep -v calltest ) - - -test all : testasmdis testopt testcodegen - @echo "All tests successfully completed!" - -testasmdis : $(TESTS:%.ll=%.ll.asmdis) - @echo "All assembler/disassembler test succeeded!" - -testopt : $(TESTS:%.ll=%.ll.opt) - -testselect : $(LLCTESTS:%.ll=%.mc) - -testsched : $(LLCTESTS:%.ll=%.mc) - -testcodegen : $(LLCTESTS:%.ll=%.mc) - -testsparc : $(LLCTESTS:%.ll=%.s) - -clean : - rm -f *.[123] *.bc *.mc *.s core - -%.asmdis: % - @echo "Running assembler/disassembler test on $<" - @./TestAsmDisasm.sh $< - -%.opt: % - @echo "Running optimizier test on $<" - @./TestOptimizer.sh $< - -%.bc: %.ll - $(AS) $< -f - -%.mc: %.ll $(LLC) $(AS) - @echo "Generating machine instructions for $<" - $(AS) < $< | $(LLC) $(LLCOPTS) > $@ - -%.s: %.ll $(LLC) $(AS) - $(AS) < $< | $(LLC) > $@ - -## %.o: %.s %.ll -## /usr/ccs/bin/as $(ARCHFLAGS) $< - - -%.o: %.s - $(CC) -c $(CCFLAGS) $< - -%: %.o - $(CC) -o $@ $(CCFLAGS) $< - +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