| ####################################################################### |
| # Makefile for r test-suite |
| ####################################################################### |
| |
| LANGUAGE = r |
| SCRIPTSUFFIX = _runme.R |
| WRAPSUFFIX = .R |
| R_OPT = --quiet --no-save --no-restore |
| RUNR = R CMD BATCH $(R_OPT) '--args $(SCRIPTDIR)' |
| |
| srcdir = @srcdir@ |
| top_srcdir = @top_srcdir@ |
| top_builddir = @top_builddir@ |
| |
| C_TEST_CASES += \ |
| r_copy_struct \ |
| r_legacy |
| |
| CPP_TEST_CASES += \ |
| r_double_delete \ |
| r_memory_leak \ |
| r_overload_array \ |
| r_sexp \ |
| r_overload_comma \ |
| r_use_isnull |
| |
| # These tests are failing because enums currently cannot handle |
| # arithmetic expressions |
| |
| FAILING_CPP_TESTS = \ |
| preproc_constants |
| |
| FAILING_C_TESTS = \ |
| preproc_constants_c |
| |
| include $(srcdir)/../common.mk |
| |
| # Overridden variables here |
| # none! |
| |
| # Custom tests - tests with additional commandline options |
| # none! |
| |
| # Rules for the different types of tests |
| %.cpptest: |
| $(setup) |
| +$(swig_and_compile_cpp) |
| $(run_testcase) |
| |
| %.ctest: |
| $(setup) |
| +$(swig_and_compile_c) |
| $(run_testcase) |
| |
| %.multicpptest: |
| $(setup) |
| +$(swig_and_compile_multi_cpp) |
| $(run_multitestcase) |
| |
| |
| # Runs the testcase. |
| # |
| # Run the runme if it exists. If not just load the R wrapper to |
| # check for syntactic correctness |
| run_testcase = \ |
| if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ |
| env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PATH=.:"$$PATH" $(RUNTOOL) $(RUNR) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) || (cat ./$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX)out ; false); \ |
| else \ |
| $(RUNTOOL) $(RUNR) ./$(SCRIPTPREFIX)$*$(WRAPSUFFIX) || (cat ./$(SCRIPTPREFIX)$*$(WRAPSUFFIX)out ; false); \ |
| fi |
| |
| run_multitestcase = \ |
| for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \ |
| if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$${f}$(SCRIPTSUFFIX) ]; then \ |
| env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PATH=.:"$$PATH" $(RUNTOOL) $(RUNR) $(SCRIPTDIR)/$(SCRIPTPREFIX)$${f}$(SCRIPTSUFFIX) || (cat ./$(SCRIPTPREFIX)$${f}$(SCRIPTSUFFIX)out ; false); \ |
| else \ |
| $(RUNTOOL) $(RUNR) ./$(SCRIPTPREFIX)$${f}$(WRAPSUFFIX) || (cat ./$(SCRIPTPREFIX)$${f}$(WRAPSUFFIX)out ; false); \ |
| fi; \ |
| done |
| # Clean |
| clean: |
| $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' r_clean |
| |
| %.clean: |
| @rm -f $*.R $*_wrap.so $*_wrap.cpp $*_wrap.c $*_wrap.o $*_runme.Rout $*.Rout |
| @if [ -f $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list ]; then \ |
| for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \ |
| rm -f $${f}.R $${f}.Rout ; \ |
| done \ |
| fi |