blob: 1ebaedd6b7da1673a0803e6f996527bbc8e2ea69 [file] [log] [blame]
LEVEL = ../../..
include $(LEVEL)/Makefile.common
# Test in all immediate subdirectories if unset.
TESTDIRS ?= $(shell echo $(PROJ_SRC_DIR)/*/)
# Only run rewriter tests on darwin.
ifeq ($(OS),Darwin)
TESTDIRS +=
endif
ifdef VERBOSE
ifeq ($(VERBOSE),0)
PROGRESS = :
REPORTFAIL = echo 'FAIL: clang' $(TARGET_TRIPLE) $(subst $(LLVM_SRC_ROOT)/tools/clang/,,$<)
DONE = $(LLVMToolDir)/clang -v
else
PROGRESS = echo $<
REPORTFAIL = cat $@
DONE = true
endif
else
PROGRESS = printf '.'
REPORTFAIL = (echo; echo '----' $< 'failed ----')
DONE = echo
endif
TESTS := $(addprefix Output/, $(addsuffix .testresults, $(shell find $(TESTDIRS) \( -name '*.c' -or -name '*.cpp' -or -name '*.m' -or -name '*.mm' -or -name '*.S' \) | grep -v "Output/")))
Output/%.testresults: %
@ $(PROGRESS)
@ PATH=$(ToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$$PATH VG=$(VG) $(PROJ_SRC_DIR)/TestRunner.sh $< > $@ || $(REPORTFAIL)
all::
@ mkdir -p $(addprefix Output/, $(TESTDIRS))
@ rm -f $(TESTS)
@ echo '--- Running clang tests for $(TARGET_TRIPLE) ---'
@ $(MAKE) $(TESTS)
@ $(DONE)
@ !(cat $(TESTS) | grep -q " FAILED! ")
report: $(TESTS)
@ cat $^
clean::
@ rm -rf Output/
.PHONY: all report clean