comparison Makefile.am @ 383:d18843ff4dfd

Rewrite the test suite to run Octave-style built-in tests * Makefile.am (M_FILES): New declaration. (TST_FILES): New derived declaration. (%.cc-tst): New rule to generate test scripts from compiled sources. (check-local): Call __py_tests__.m script file to run test suite. (CLEANFILES): Include fntests.log and *-tst. * __py_tests__.m: New script file to run built-in tests. * .hgignore: Include fntests.log and *.cc-tst.
author Mike Miller <mtmiller@octave.org>
date Sun, 02 Apr 2017 11:20:53 -0700
parents eec3ed1c0578
children 132fec49e438
comparison
equal deleted inserted replaced
382:d36f06f07082 383:d18843ff4dfd
37 37
38 DOC_FILES = \ 38 DOC_FILES = \
39 INSTALL.md \ 39 INSTALL.md \
40 README.md 40 README.md
41 41
42 M_FILES = \
43 @py/py.m \
44 @py/subsref.m \
45 @pyobject/cell.m \
46 @pyobject/char.m \
47 @pyobject/display.m \
48 @pyobject/dummy.m \
49 @pyobject/fieldnames.m \
50 @pyobject/methods.m \
51 @pyobject/pyobject.m \
52 @pyobject/subsasgn.m \
53 @pyobject/subsref.m \
54 __py_tests__.m \
55 pyargs.m \
56 pyversion.m
57
42 OCT_FILES = \ 58 OCT_FILES = \
43 __py_struct_from_dict__.oct \ 59 __py_struct_from_dict__.oct \
44 pycall.oct \ 60 pycall.oct \
45 pyeval.oct \ 61 pyeval.oct \
46 pyexec.oct 62 pyexec.oct
61 package/__init__.py \ 77 package/__init__.py \
62 package/pytave.py \ 78 package/pytave.py \
63 test/exceptions.py \ 79 test/exceptions.py \
64 test/test.py 80 test/test.py
65 81
82 TST_FILES = $(addsuffix -tst,$(OCT_SOURCE_FILES))
83
66 EXTRA_DIST = $(DOC_FILES) $(OCT_SOURCE_FILES) $(PY_FILES) 84 EXTRA_DIST = $(DOC_FILES) $(OCT_SOURCE_FILES) $(PY_FILES)
67 85
68 EXTRA_libdir = $(PYTAVE_MODULE_INSTALL_PATH) 86 EXTRA_libdir = $(PYTAVE_MODULE_INSTALL_PATH)
69 EXTRA_lib_LTLIBRARIES = _pytave.la 87 EXTRA_lib_LTLIBRARIES = _pytave.la
70 88
75 93
76 noinst_LTLIBRARIES = libpytave.la 94 noinst_LTLIBRARIES = libpytave.la
77 libpytave_la_CPPFLAGS = $(AM_CPPFLAGS) 95 libpytave_la_CPPFLAGS = $(AM_CPPFLAGS)
78 libpytave_la_SOURCES = $(COMMON_SOURCE_FILES) $(PYTAVE_HEADER_FILES) 96 libpytave_la_SOURCES = $(COMMON_SOURCE_FILES) $(PYTAVE_HEADER_FILES)
79 97
80 CLEANFILES = *.oct PKG_ADD PKG_DEL 98 CLEANFILES = *.oct *-tst PKG_ADD PKG_DEL fntests.log
81 SUFFIXES = .oct 99 SUFFIXES = .oct
82 100
83 AM_V_MKOCTFILE = $(am__v_MKOCTFILE_$(V)) 101 AM_V_MKOCTFILE = $(am__v_MKOCTFILE_$(V))
84 am__v_MKOCTFILE_ = $(am__v_MKOCTFILE_$(AM_DEFAULT_VERBOSITY)) 102 am__v_MKOCTFILE_ = $(am__v_MKOCTFILE_$(AM_DEFAULT_VERBOSITY))
85 am__v_MKOCTFILE_0 = @echo " MKOCTFIL" $@; 103 am__v_MKOCTFILE_0 = @echo " MKOCTFIL" $@;
90 --mode=link $(MKOCTFILE) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 108 --mode=link $(MKOCTFILE) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
91 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ 109 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
92 110
93 %.oct: %.cc libpytave.la $(PYTAVE_HEADER_FILES) 111 %.oct: %.cc libpytave.la $(PYTAVE_HEADER_FILES)
94 $(AM_V_MKOCTFILE)$(OCT_LINK) $< $(OCT_LIBS) 112 $(AM_V_MKOCTFILE)$(OCT_LINK) $< $(OCT_LIBS)
113
114 %.cc-tst: %.cc
115 $(AM_V_GEN)rm -f $@-t $@ && \
116 ( echo "## DO NOT EDIT! Generated automatically from $(<F) by Make."; \
117 $(GREP) '^%!' $< \
118 ) > $@-t && \
119 mv $@-t $@
95 120
96 PKG_ADD: $(OCT_SOURCE_FILES) 121 PKG_ADD: $(OCT_SOURCE_FILES)
97 $(AM_V_GEN)for f in $(OCT_SOURCE_FILES); do \ 122 $(AM_V_GEN)for f in $(OCT_SOURCE_FILES); do \
98 b=$${f%.cc}; \ 123 b=$${f%.cc}; \
99 funcs=`$(SED) -n 's/^DEFUN.*(\(\w\+\),.*/\1/p' $$f | grep -v $$b`; \ 124 funcs=`$(SED) -n 's/^DEFUN.*(\(\w\+\),.*/\1/p' $$f | grep -v $$b`; \
125 @echo "" 150 @echo ""
126 @echo " * run a Python session with pytave package" 151 @echo " * run a Python session with pytave package"
127 @echo " PYTHONPATH=\"\$$(pwd)/.libs:\$$(pwd)/package\" python" 152 @echo " PYTHONPATH=\"\$$(pwd)/.libs:\$$(pwd)/package\" python"
128 @echo "" 153 @echo ""
129 154
130 check-local: 155 check-local: $(M_FILES) $(TST_FILES)
131 PYTHONPATH="$(abs_srcdir)/package:$$(pwd)/package:$$(pwd)/.libs" $(PYTHON) $(srcdir)/test/exceptions.py 156 octave-cli --path="$(abs_builddir)" --path="$(abs_srcdir)" __py_tests__.m $(M_FILES) $(TST_FILES)
132 PYTHONPATH="$(abs_srcdir)/package:$$(pwd)/package:$$(pwd)/.libs" $(PYTHON) $(srcdir)/test/test.py