about summary refs log tree commit diff homepage
path: root/test/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'test/Makefile')
-rw-r--r--test/Makefile87
1 files changed, 25 insertions, 62 deletions
diff --git a/test/Makefile b/test/Makefile
index 75e05dda..61a91800 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -11,7 +11,7 @@ LEVEL  = ..
 DIRS   = 
 
 #
-# Make Dejagnu the default for testing
+# Make llvm-lit the default for testing
 #
 all:: check-local
 
@@ -19,12 +19,12 @@ all:: check-local
 include Makefile.tests
 
 #===------------------------------------------------------------------------===#
-# DejaGNU testing support
+# llvm-lit testing support
 #===------------------------------------------------------------------------===#
+ULIMIT = ulimit -t 600 ; ulimit -d 512000 ;
 
 # FIXME: Fix test suite so we can run lit in parallel.
 ifdef VERBOSE
-RUNTESTFLAGS := $(VERBOSE)
 LIT_ARGS := -j1 -v
 else
 LIT_ARGS := -j1 -s -v
@@ -32,50 +32,27 @@ endif
 
 ifdef TESTSUITE
 LIT_TESTSUITE := $(TESTSUITE)
-CLEANED_TESTSUITE := $(patsubst %/,%,$(TESTSUITE))
-CLEANED_TESTSUITE := $(patsubst test/%,%,$(CLEANED_TESTSUITE))
-RUNTESTFLAGS := --tool $(CLEANED_TESTSUITE)
 else
 LIT_TESTSUITE := .
 endif
 
-ifneq ($(RUNTEST),)
-check-local:: site.exp
-	( ulimit -t 600 ; ulimit -d 512000 ; \
-	  PATH="$(ToolDir):$(LLVMToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$(PATH)" \
-	  $(RUNTEST) $(RUNTESTFLAGS) ;  \
-	  ! grep FAIL testrun.log; ! grep -q ^FAIL testrun.log;  )
-else
-check-local:: site.exp
-	@echo "*** dejagnu not found.  Make sure runtest is in your PATH, then reconfigure llvm."
+# Older LLVM versions don't detect python at configure time
+# so guess the location
+ifndef PYTHON
+	# llvm-lit doesn't work with python3 so force python2
+	PYTHON := python2
 endif
 
-check-local-lit:: lit.site.cfg
-	( $(ULIMIT) \
-	  $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) )
+# Potential support in the future for multiple test suites
+LIT_ALL_TESTSUITES := $(LIT_TESTSUITE)
 
-check-local-all:: lit.site.cfg
-	( $(ULIMIT) \
-	  $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) )
+check-local:: lit.site.cfg
+	$(Verb) ( $(ULIMIT) \
+	          $(PYTHON) $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) )
 
-ifdef TESTONE
-CLEANED_TESTONE := $(patsubst %/,%,$(TESTONE))
-CLEANED_TESTONE := $(patsubst test/%,%,$(CLEANED_TESTONE))
-SUBDIR := $(shell dirname $(CLEANED_TESTONE))
-TESTPATH := $(PROJ_SRC_ROOT)/test/$(CLEANED_TESTONE)
-check-one: site.exp $(TCLSH)
-	$(Verb)( echo "source $(PROJ_OBJ_ROOT)/test/site.exp" ; \
-	  echo "set subdir $(SUBDIR)" ; \
-	  echo "proc pass  { msg } { puts \"PASS: \$$msg\" } "; \
-	  echo "proc fail  { msg } { puts \"FAIL: \$$msg\" }" ; \
-	  echo "proc xfail { msg } { puts \"XFAIL: \$$msg\" }" ; \
-	  echo "proc xpass { msg } { puts \"XPASS: \$$msg\" }" ; \
-	  echo "source $(PROJ_SRC_ROOT)/test/lib/llvm.exp" ; \
-	  echo "RunLLVMTests $(TESTPATH)" ) | \
-	( ulimit -t 600 ; ulimit -d 512000 ; \
-	  PATH="$(ToolDir):$(LLVMToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$(PATH)" \
-	  $(TCLSH) )
-endif
+check-local-all:: lit.site.cfg
+	$(Verb) ( $(ULIMIT) \
+	          $(PYTHON) $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_ALL_TESTSUITES) )
 
 clean::
 	$(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name Output -type d -print`
@@ -87,31 +64,17 @@ clean::
 	$(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name test.log`
 	rm -f site.exp
 
-site.exp: Makefile $(LEVEL)/Makefile.config
-	@echo 'Making a new site.exp file...'
-	@echo '## these variables are automatically generated by make ##' >site.tmp
-	@echo '# Do not edit here.  If you wish to override these values' >>site.tmp
-	@echo '# edit the last section' >>site.tmp
-	@echo 'set target_triplet "$(TARGET_TRIPLE)"' >> site.tmp
-	@echo 'set ENABLE_UCLIBC "$(ENABLE_UCLIBC)"' >> site.tmp
-	@echo 'set ENABLE_POSIX_RUNTIME "$(ENABLE_POSIX_RUNTIME)"' >> site.tmp
-	@echo 'set TEST_FEATURE_LIST "$(TEST_FEATURE_LIST)"' >> site.tmp
-	@echo 'set srcroot "$(PROJ_SRC_ROOT)"' >>site.tmp
-	@echo 'set objroot "$(PROJ_OBJ_ROOT)"' >>site.tmp
-	@echo 'set srcdir "$(PROJ_SRC_ROOT)/test"' >>site.tmp
-	@echo 'set objdir "$(PROJ_OBJ_ROOT)/test"' >>site.tmp
-	@echo 'set llvmgcc "$(LLVMCC) -I$(PROJ_SRC_ROOT)/include"' >> site.tmp
-	@echo 'set llvmgxx "$(LLVMCXX) -I$(PROJ_SRC_ROOT)/include"' >> 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
-
-lit.site.cfg: site.exp
+lit.site.cfg: lit.site.cfg.in
 	@echo "Making KLEE 'lit.site.cfg' file..."
 	@sed -e "s#@KLEE_SOURCE_DIR@#$(PROJ_SRC_ROOT)#g" \
 	     -e "s#@KLEE_BINARY_DIR@#$(PROJ_OBJ_ROOT)#g" \
 	     -e "s#@KLEE_TOOLS_DIR@#$(ToolDir)#g" \
+	     -e "s#@LLVM_TOOLS_DIR@#$(LLVMToolDir)#g" \
+	     -e "s#@LLVM_VERSION_MAJOR@#$(LLVM_VERSION_MAJOR)#g" \
+	     -e "s#@LLVMCC@#$(KLEE_BITCODE_C_COMPILER) -I$(PROJ_SRC_ROOT)/include#g" \
+	     -e "s#@LLVMCXX@#$(KLEE_BITCODE_CXX_COMPILER) -I$(PROJ_SRC_ROOT)/include#g" \
+	     -e "s#@ENABLE_UCLIBC@#$(ENABLE_UCLIBC)#g" \
+	     -e "s#@ENABLE_POSIX_RUNTIME@#$(ENABLE_POSIX_RUNTIME)#g" \
+	     -e "s#@TARGET_TRIPLE@#$(TARGET_TRIPLE)#g" \
+	     -e "s#@HAVE_SELINUX@#$(HAVE_SELINUX)#g" \
 	     $(PROJ_SRC_DIR)/lit.site.cfg.in > $@