diff options
author | dhuth <derickhuth@gmail.com> | 2014-11-21 13:35:20 -0700 |
---|---|---|
committer | dhuth <derickhuth@gmail.com> | 2014-11-21 13:35:20 -0700 |
commit | a1834b22c43c282442b0cb164767e6c877cf0e5b (patch) | |
tree | bedc5be7d1bdb8d32c1868caa496a8a1530d8d8a /test-chill/Makefile | |
parent | ded84bb4aec7461738e7b7033d782a518e2c606b (diff) | |
parent | eb9236c5353785472ae132f27e1cfb9f1e4264a5 (diff) | |
download | chill-a1834b22c43c282442b0cb164767e6c877cf0e5b.tar.gz chill-a1834b22c43c282442b0cb164767e6c877cf0e5b.tar.bz2 chill-a1834b22c43c282442b0cb164767e6c877cf0e5b.zip |
Merge branch 'master' into doe
Diffstat (limited to 'test-chill/Makefile')
-rw-r--r-- | test-chill/Makefile | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/test-chill/Makefile b/test-chill/Makefile new file mode 100644 index 0000000..6fc543b --- /dev/null +++ b/test-chill/Makefile @@ -0,0 +1,210 @@ +### ### +### SVN variables ### +### ### +SVN_USER=dhuth + +### ### +### Notification ### +### (not implemented yet) ### +NOTIFY_ON_FAILURE=False + + + +### Derived variables from config ### +CHILLHOME?=$(STAGING_DIR)/chill +SVN_CHILL=svn+ssh://$(SVN_USER)@shell.cs.utah.edu/uusoc/facility/res/hallresearch/svn_repo/resRepo/projects/chill +SVN_CHILL_DEV=$(SVN_CHILL)/branches/cuda-chill-rose +SVN_CHILL_RELEASE=$(SVN_CHILL)/release +CHILL_DEV_SRC=$(STAGING_DIR)/chill-dev +CHILL_RELEASE_SRC=$(STAGING_DIR)/chill-release +OMEGAHOME?=$(STAGING_DIR)/omega +SVN_OMEGA=svn+ssh://$(SVN_USER)@shell.cs.utah.edu/uusoc/facility/res/hallresearch/svn_repo/resRepo/projects/omega +SVN_OMEGA_DEV=$(SVN_OMEGA)/branches/cuda-omega-rose +SVN_OMEGA_RELEASE=$(SVN_OMEGA)/release +OMEGA_DEV_SRC=$(STAGING_DIR)/omega-dev +OMEGA_RELEASE_SRC=$(STAGING_DIR)/omega-release + + +### Staging ### +STAGING_DIR=$(shell pwd)/.staging +STAGING_DIR_BIN=$(STAGING_DIR)/bin +STAGING_DIR_WD=$(STAGING_DIR)/wd + + +### Local ### +UNIT_TEST_DIR=$(shell pwd)/unit-tests/ +CHILL_DEV_TESTCASE_DIR=$(shell pwd)/test-cases/chill +CHILL_DEV_TESTCASES_SCRIPT=$(shell find $(CHILL_DEV_TESTCASE_DIR) -name "*.script") +CHILL_DEV_TESTCASES_STDOUT=$(patsubst %.script,%.stdout,$(CHILL_DEV_TESTCASES_SCRIPT)) + +### Python environment variables ### +PYTHON_2:=$(shell which python) +PYTHON_3:=$(shell which python3) + +ifneq ($(PYTHON_3),) +PYTHON_3_VERSION=$(shell $(PYTHON_3) -c "import sysconfig; print(sysconfig.get_config_var('VERSION'))") +endif +PYTHON_2_VERSION=$(shell $(PYTHON_2) -c "import sysconfig; print sysconfig.get_config_var('VERSION')") +PYTHON_VERSION=$(firstword $(PYTHON_3_VERSION) $(PYTHON_2_VERSION)) +PYTHON=$(shell which python$(PYTHON_VERSION)) +### ---------------------------- ### + + +EXPORT=export CHILL_DEV_SRC=$(CHILL_DEV_SRC); \ + export CHILL_RELEASE_SRC=$(CHILL_RELEASE_SRC); \ + export OMEGA_DEV_SRC=$(OMEGA_DEV_SRC); \ + export OMEGA_RELEASE_SRC=$(OMEGA_RELEASE_SRC); \ + export STAGING_DIR_BIN=$(STAGING_DIR_BIN); \ + export STAGING_DIR_WD=$(STAGING_DIR_WD); + +### deump environment ### +# define quiet to shut this part up # +ifndef quiet +$(info notify on failure? $(NOTIFY_ON_FAILURE)) +$(info staging directory $(STAGING_DIR)) +$(info binary directory $(STAGING_DIR_BIN)) +$(info working directory $(STAGING_DIR_WD)) +$(info omega home $(OMEGAHOME)) +$(info chill home $(CHILLHOME)) +$(info chill svn dev repo $(SVN_CHILL_DEV)) +$(info chill svn release repo $(SVN_CHILL_RELEASE)) +$(info chill dev src $(CHILL_DEV_SRC)) +$(info chill release src $(CHILL_RELEASE_SRC)) +$(info omega svn dev repo $(SVN_OMEGA_DEV)) +$(info omega svn release repo $(SVN_OMEGA_RELEASE)) +$(info omega dev src $(OMEGA_DEV_SRC)) +$(info omega release src $(OMEGA_RELEASE_SRC)) +$(info python $(PYTHON)) +$(info unit tests $(UNIT_TEST_DIR)) +#$(info chill-dev test cases $(CHILL_DEV_TESTCASES_SCRIPT)) +#$(info chill-dev test case stdouts $(CHILL_DEV_TESTCASES_STDOUT)) +endif +### ----------------- ### + +DIRTY_EXTS=pyc o log pickle +DIRTY_FILES=$(foreach de,$(DIRTY_EXTS),$(shell find . -name "*.$(de)")) +DIRTY_DIRS=$(shell find . -name '__pycache__' -and -type d) $(STAGING_DIR) pylang + +CORE_TESTS:=_extract util gcov _cpp_validate_env cpp_validate test __main__ +OMEGA_TESTS:=omega +CHILL_TESTS:=chill + +CORE_TESTS:=$(addsuffix .py,$(addprefix unit-tests/test_,$(CORE_TESTS))) +OMEGA_TESTS:=$(addsuffix .py,$(addprefix unit-tests/test_,$(OMEGA_TESTS))) +CHILL_TESTS:=$(addsuffix .py,$(addprefix unit-tests/test_,$(CHILL_TESTS))) + +### The all target ### +.PHONY: all +all: + $(MAKE) clean quiet=1 + $(MAKE) install quiet=1 + + +### This will install the chill_test module ### +.PHONY: install +install: pylang + $(PYTHON) makeparser.py + #TODO: maybe run a setup or something + + + +### This will uninstall teh chill_test module ### +.PHONY: uninstall +uninstall: + #TODO: can python modules be uninstalled? + + + +### Simply removes all files listed in DIRTY_FILES ### +.PHONY: clean +clean: + rm -rf $(DIRTY_FILES) + rm -rf $(DIRTY_DIRS) + + +pylang: + git clone https://github.com/dhuth/pylang.git pylang-tmp + $(PYTHON) pylang-tmp/make_grammar_parsers.py + cp -r pylang-tmp/pylang pylang + rm -rf pylang-tmp + +### Test the test harness ### +.PHONY: test +test: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) $(CHILL_DEV_SRC) $(CHILL_RELEASE_SRC) + @echo "-----------------------------------------------------------" + @echo "Note: This target tests the test suite it's self, not chill" + @echo "To test chill, run python -m testchill ..." + @echo "-----------------------------------------------------------" + - $(EXPORT) $(PYTHON) -m unittest $(OMEGA_TESTS) $(CORE_TESTS) $(CHILL_TESTS) + @ rm -rf $(STAGING_DIR) + + +.PHONY: test-chill +test-chill: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) $(CHILL_DEV_SRC) $(CHILL_RELEASE_SRC) + - $(EXPORT) $(PYTHON) -m unittest $(OMEGA_TESTS) $(CHILL_TESTS) + @ rm -rf $(STAGING_DIR) + + +.PHONY: test-omega +test-omega: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) + - $(EXPORT) $(PYTHON) -m unittest $(OMEGA_TESTS) + @ rm -rf $(STAGING_DIR) + + +.PHONY: test-core +test-core: $(STAGING_DIR_BIN) $(OMEGA_DEV_SRC) $(OMEGA_RELEASE_SRC) $(CHILL_DEV_SRC) $(CHILL_RELEASE_SRC) make-omega + - $(EXPORT) $(PYTHON) -m unittest $(CORE_TESTS) + @ rm -rf $(STAGING_DIR) + + +.PHONY: +test-core-%: $(STAGING_DIR_BIN) + - $(EXPORT) $(PYTHON) -m unittest unit-tests/test_$*.py + + +.PHONY: test-debug +debug: + @### NOTHING ### + + +### benchmarking (don't use if your're not me) ### +$(CHILL_DEV_TESTCASES_STDOUT): %.stdout: %.script + $(EXPORT) cd $(STAGING_DIR_WD); $(STAGING_DIR_BIN)/chill $< > $@ + + +.PHONY: benchmark-dev +benchmark-dev: test-chill $(CHILL_DEV_TESTCASES_STDOUT) + # do nothing + + +### checking out and making directories ### +$(STAGING_DIR_BIN): + mkdir -p $(STAGING_DIR_BIN) + mkdir -p $(STAGING_DIR_WD) + +$(CHILL_DEV_SRC): $(OMEGA_DEV_SRC) $(STAGING_DIR_BIN) + svn export $(SVN_CHILL_DEV) $(CHILL_DEV_SRC) + +$(CHILL_RELEASE_SRC): $(OMEGA_RELEASE_SRC) $(STAGIN_DIR_BIN) + svn export $(SVN_CHILL_RELEASE) $(CHILL_RELEASE_SRC) + +$(OMEGA_DEV_SRC): $(STAGING_DIR_BIN) + svn export $(SVN_OMEGA_DEV) $(OMEGA_DEV_SRC) + #cd $(OMEGA_DEV_SRC); $(MAKE) depend + #cd $(OMEGA_DEV_SRC); $(MAKE) + +$(OMEGA_RELEASE_SRC): $(STAGING_DIR_BIN) + svn export $(SVN_OMEGA_RELEASE) $(OMEGA_RELEASE_SRC) + #cd $(OMEGA_RELEASE_SRC); $(MAKE) depend + #cd $(OMEGA_RELEASE_SRC): $(MAKE) + +.PHONY: make-omega +make-omega: + cd $(OMEGA_DEV_SRC); $(MAKE) depend + cd $(OMEGA_DEV_SRC); $(MAKE) + cd $(OMEGA_RELEASE_SRC); $(MAKE) depend + cd $(OMEGA_RELEASE_SRC); $(MAKE) + +#$(STAGING_DIR): +# mkdir -p $(STAGING_DIR) + |