diff --git a/test/Feature/Makefile b/test/Feature/Makefile new file mode 100644 index 00000000000..2187b9f4d25 --- /dev/null +++ b/test/Feature/Makefile @@ -0,0 +1,39 @@ +# test/Feature/Makefile +# +# This makefile runs a moderate number of tests against LLVM source "feature" +# tests, which are designed to test individual components of the LLVM language. +# This runs through three sets of tests, designed to test to (dis)assembler, +# the optimizer, and the code generator for support for the more esoteric LLVM +# features. +# + +LEVEL = ../.. +include ../Makefile.tests + +TESTS := $(wildcard *.ll) +OTESTS := $(addprefix Output/, $(TESTS)) # Tests in output directory + +test all :: testasmdis testopt testsparc + @echo "All tests completed!" + +testasmdis : $(addsuffix .asmdis, $(OTESTS)) +testopt : $(addsuffix .opt , $(OTESTS)) + +testcodegen : $(OTESTS:%.ll=%.mc) +testsparc : $(OTESTS:%.ll=%.s) + +Output/%.asmdis: % $(LAS) $(LDIS) Output/.dir + @./TestAsmDisasm.sh $< + +Output/%.opt: % $(LAS) $(LDIS) $(LOPT) Output/.dir + @./TestOptimizer.sh $< + +Output/%.mc: Output/%.bc $(LLC) + @echo "======== Generating machine instructions for $<" + $(LLC) -f $(LLCFLAGS) $< > $@ || \ + ( rm -f $@; ./Failure.sh $@ ) + +Output/%.s: Output/%.bc $(LLC) + @echo "======== Generating assembly code for $<" + $(LLC) -f $(LLCFLAGS) $< -o $@ || \ + ( rm -f $@; ./Failure.sh $@ ) diff --git a/test/Feature/README.txt b/test/Feature/README.txt new file mode 100644 index 00000000000..ae290ee730f --- /dev/null +++ b/test/Feature/README.txt @@ -0,0 +1,5 @@ +This directory contains test cases for individual source features of LLVM. +It is designed to make sure that the major components of LLVM support all of the +features of LLVM, for very small examples. Entire programs should not go here. + +Regression tests for individual bug fixes should go into the test/Regression dir. \ No newline at end of file