SCEV: Add MarkPendingLoopPredicates to avoid recursive isImpliedCond.
[oota-llvm.git] / test / Makefile
index 01a07bfec329aac49053a54b1595c668764bed17..ac4eb7dd8c3d37c85b32535d4676de9749b66e1e 100644 (file)
@@ -27,6 +27,7 @@ $(warning GREP_OPTIONS environment variable may interfere with test results)
 endif
 
 ifdef VERBOSE
+RUNTESTFLAGS := $(VERBOSE)
 LIT_ARGS := -v
 else
 LIT_ARGS := -s -v
@@ -41,6 +42,7 @@ ifdef TESTSUITE
 LIT_TESTSUITE := $(TESTSUITE)
 CLEANED_TESTSUITE := $(patsubst %/,%,$(TESTSUITE))
 CLEANED_TESTSUITE := $(patsubst test/%,%,$(CLEANED_TESTSUITE))
+RUNTESTFLAGS += --tool $(CLEANED_TESTSUITE)
 else
 LIT_TESTSUITE := .
 endif
@@ -74,6 +76,10 @@ ifndef RUNLLVM2CPP
 IGNORE_TESTS += llvm2cpp.exp
 endif
 
+ifdef IGNORE_TESTS
+RUNTESTFLAGS += --ignore "$(strip $(IGNORE_TESTS))"
+endif
+
 # ulimits like these are redundantly enforced by the buildbots, so
 # just removing them here won't work.
 # Both AuroraUX & Solaris do not have the -m flag for ulimit
@@ -88,6 +94,16 @@ ULIMIT=ulimit -t 600 ; ulimit -d 512000 ; ulimit -m 512000 ; ulimit -v 1024000 ;
 endif # AuroraUX
 endif # SunOS
 
+ifneq ($(RUNTEST),)
+check-local-dg:: site.exp
+       ( $(ULIMIT) \
+         PATH="$(LLVMToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$(LLVMGCCDIR)/bin:$(PATH)" \
+         $(RUNTEST) $(RUNTESTFLAGS) )
+else
+check-local-dg:: site.exp
+       @echo "*** dejagnu not found.  Make sure 'runtest' is in your PATH, then reconfigure LLVM."
+endif
+
 check-local-lit:: lit.site.cfg Unit/lit.site.cfg
        ( $(ULIMIT) \
          $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) )
@@ -113,13 +129,38 @@ endif
 
 FORCE:
 
+site.exp: FORCE
+       @echo 'Making a new site.exp file...'
+       @echo '## Autogenerated by LLVM configuration.' > site.tmp
+       @echo '# Do not edit!' >> site.tmp
+       @echo 'set target_triplet "$(TARGET_TRIPLE)"' >> site.tmp
+       @echo 'set TARGETS_TO_BUILD "$(TARGETS_TO_BUILD)"' >> site.tmp
+       @echo 'set llvmshlibdir "$(SharedLibDir)"' >>site.tmp
+       @echo 'set llvm_bindings "$(BINDINGS_TO_BUILD)"' >> site.tmp
+       @echo 'set srcroot "$(LLVM_SRC_ROOT)"' >>site.tmp
+       @echo 'set objroot "$(LLVM_OBJ_ROOT)"' >>site.tmp
+       @echo 'set srcdir "$(LLVM_SRC_ROOT)/test"' >>site.tmp
+       @echo 'set objdir "$(LLVM_OBJ_ROOT)/test"' >>site.tmp
+       @echo 'set link "' $(CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) $(CompileCommonOpts) $(LD.Flags) '"' >>site.tmp
+       @echo 'set shlibext "$(SHLIBEXT)"' >> site.tmp
+       @echo 'set ocamlopt "$(OCAMLOPT) -cc \"$(CXX_FOR_OCAMLOPT)\" -I $(LibDir)/ocaml"' >> site.tmp
+       @echo 'set valgrind "$(VALGRIND)"' >> site.tmp
+       @echo 'set grep "$(GREP)"' >>site.tmp
+       @echo 'set gas "$(GAS)"' >>site.tmp
+       @echo '## All variables above are generated by configure. Do Not Edit ## ' >>site.tmp
+       @test ! -f site.exp || \
+       sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
+       @-rm -f site.bak
+       @test ! -f site.exp || mv site.exp site.bak
+       @mv site.tmp site.exp
+
 ifeq ($(DISABLE_ASSERTIONS),1)
 ENABLE_ASSERTIONS=0
 else
 ENABLE_ASSERTIONS=1
 endif
 
-lit.site.cfg: FORCE
+lit.site.cfg: site.exp
        @echo "Making LLVM 'lit.site.cfg' file..."
        @$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g > lit.tmp
        @$(ECHOPATH) s=@LLVM_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> lit.tmp
@@ -130,6 +171,8 @@ lit.site.cfg: FORCE
        @$(ECHOPATH) s=@ENABLE_ASSERTIONS@=$(ENABLE_ASSERTIONS)=g >> lit.tmp
        @$(ECHOPATH) s=@TARGETS_TO_BUILD@=$(TARGETS_TO_BUILD)=g >> lit.tmp
        @$(ECHOPATH) s=@LLVM_BINDINGS@=$(BINDINGS_TO_BUILD)=g >> lit.tmp
+       @$(ECHOPATH) s=@HOST_OS@=$(HOST_OS)=g >> lit.tmp
+       @$(ECHOPATH) s=@HOST_ARCH@=$(HOST_ARCH)=g >> lit.tmp
        @sed -f lit.tmp $(PROJ_SRC_DIR)/lit.site.cfg.in > $@
        @-rm -f lit.tmp
 
@@ -143,5 +186,7 @@ Unit/lit.site.cfg: $(PROJ_OBJ_DIR)/Unit/.dir FORCE
        @$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> unit.tmp
        @$(ECHOPATH) s=@SHLIBDIR@=$(SharedLibDir)=g >> unit.tmp
        @$(ECHOPATH) s=@SHLIBPATH_VAR@=$(SHLIBPATH_VAR)=g >> unit.tmp
+       @$(ECHOPATH) s=@HOST_OS@=$(HOST_OS)=g >> unit.tmp
+       @$(ECHOPATH) s=@HOST_ARCH@=$(HOST_ARCH)=g >> lit.tmp
        @sed -f unit.tmp $(PROJ_SRC_DIR)/Unit/lit.site.cfg.in > $@
        @-rm -f unit.tmp