diff build-aux/common.mk @ 16019:5b2126a8c84f

install tests and functions to run them * configure.ac (octtestsdir): New variable. * build-aux/common.mk (octtestsdir): New variable. (do_subst_default_vals): Substitute it. (test-file-commands): New macro. (%.cc-tst:%.cc, %.yy-tst:%.yy, %.ll-tst:%.ll): New rules. * libinterp/Makefile.am (TST_FILES_SRC, TST_FILES, libinterptestsdir, nobase_libinterptests_DATA): New variables. * defaults.in.h (OCTAVE_OCTTESTSDIR): New macro. * liboctave/Makefile.am (LIBOCTAVE_TST_SRC, TST_FILES_SRC, TST_FILES, liboctavetestsdir, nobase_liboctavetests_DATA): New variables. * toplev.cc (Foctave_config_info): Include octtestsdir in the struct. * fntests.m: Look in topbuilddir for C++ test files. * __run_test_suite__.m: New function, extracted from test/fntests.m. Look for -tst files, not .cc files. Don't report -tst files that are missing tests (there won't be any). * __prog_output_assert__.m, __printf_assert__.m: New functions, extracted from __run_test_suite__.m and renamed from prog_output_assert and printf_assert. Change all uses. * scripts/testfun/module.mk (testfun_FCN_FILES): Include new files in the list. * test/Makefile.am (GENERATED_BC_OVERLOADS_DIRS, GENERATED_BC_OVERLOADS_FILES, fixedtestsdir, nobase_fixedtests_DATA): New variables. (CLEANFILES): Include $(GENERATED_BC_OVERRLOADS_FILES) in the list. (clean-local): Use $(GENERATED_BC_OVERLOADS_DIRS). * build_bc_overload_tests.sh: New options, --list-files, --list-dirs, and --list-classes. * test/classes/module.mk (classes_FCN_FILES): Include recently added .m files in the list. * test.m: Use "var" argument for exist in tests.
author John W. Eaton <jwe@octave.org>
date Fri, 08 Feb 2013 16:53:14 -0500
parents e27d9b9b71f4
children b309a5da17f5
line wrap: on
line diff
--- a/build-aux/common.mk	Fri Feb 08 16:05:04 2013 +0100
+++ b/build-aux/common.mk	Fri Feb 08 16:53:14 2013 -0500
@@ -363,6 +363,9 @@
 man1dir = @man1dir@
 man1ext = @man1ext@
 
+# Where to install test files.
+octtestsdir = @octtestsdir@
+
 # The full path to the default doc cache file.
 doc_cache_file = @doc_cache_file@
 
@@ -677,6 +680,7 @@
   -e "s|%OCTAVE_OCTINCLUDEDIR%|\"${octincludedir}\"|" \
   -e "s|%OCTAVE_OCTLIBDIR%|\"${octlibdir}\"|" \
   -e "s|%OCTAVE_OCTLOCALEDIR%|\"${octlocaledir}\"|" \
+  -e "s|%OCTAVE_OCTTESTSDIR%|\"${octtestsdir}\"|" \
   -e "s|%OCTAVE_STARTUPFILEDIR%|\"${startupfiledir}\"|" \
   -e "s|%OCTAVE_PREFIX%|\"${prefix}\"|" \
   -e "s|%OCTAVE_API_VERSION%|\"${api_version}\"|" \
@@ -725,3 +729,17 @@
 rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD
 -rmdir $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)
 endef
+
+define test-file-commands
+( echo "## DO NOT EDIT!  Generated automatically from $(<F) by Make."; grep '^%!' $< ) > $@-t
+mv $@-t $@
+endef
+
+%.cc-tst : %.cc
+	$(test-file-commands)
+
+%.yy-tst : %.yy
+	$(test-file-commands)
+
+%.ll-tst : %.ll
+	$(test-file-commands)