| #===- test/Makefile ----------------------------------------*- Makefile -*--===# |
| # |
| # The LLVM Compiler Infrastructure |
| # |
| # This file was developed by the LLVM research group and is distributed under |
| # the University of Illinois Open Source License. See LICENSE.TXT for details. |
| # |
| #===------------------------------------------------------------------------===# |
| |
| LEVEL = .. |
| DIRS = |
| |
| # |
| # Make Dejagnu the default for testing |
| # |
| all:: check-local |
| |
| # Include other test rules |
| include Makefile.tests |
| |
| #===------------------------------------------------------------------------===# |
| # DejaGNU testing support |
| #===------------------------------------------------------------------------===# |
| |
| # 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 |
| 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." |
| endif |
| |
| check-local-lit:: lit.site.cfg |
| ( $(ULIMIT) \ |
| $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) ) |
| |
| check-local-all:: lit.site.cfg |
| ( $(ULIMIT) \ |
| $(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 |
| |
| clean:: |
| $(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name Output -type d -print` |
| $(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name 'ft-out*' -type d -print` |
| $(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name 'ft-last' -print` |
| $(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name 'klee-last'` |
| $(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name 'klee-out*'` |
| $(RM) -rf `find $(PROJ_OBJ_ROOT)/test -name '*~'` |
| $(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 |
| @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" \ |
| $(PROJ_SRC_DIR)/lit.site.cfg.in > $@ |