annotate test/module.mk @ 29477:34d06c73b48d stable

hold references to closure frames in anon functions if needed (bug #60237) If an anonymous function is created in a scope where there are nested functions it may need to have access to the stack frames that are active when the anonymous function is created (the same as for handles to nested functions) in addition to any captured variables from the immediate stack frame. Similar to the previous change for breaking circular reference cycles for handles to nested functions, we now perform a similar action for anonymous function handles. * ov-fcn-handle.h, ov-fcn-handle.cc (base_anonymous_fcn_handle): New base class for anonymous functions. (anonymous_fcn_handle, weak_anonymous_handle): New classes to represent anonymous function handles. Currently all handles to anonymous functions begin as anonymous_fcn_handle objects but are convert to weak_anonymous_handle objects when the functions where they are created return. * pt-fcn-handle.cc (tree_anon_fcn_handle::evaluate): If handle is created in context containing nested functions, pass current stack frame context to function handle object. * call-stack.h, call-stack.cc (call_stack::push): In overload for anonymous functions that includes local_vars as an argument, also accept closure frames. * pt-eval.h, pt-eval.cc (tree_evaluator::push_stack_frame): Likewise. * stack-frame.h, stack-frame.cc (stack_frame::user_fcn_stack_frame): In constructor for anonymous functions that includes local_vars as an argument, also accept closure frames (access_link) and handle it the same way as for frames created for calls to nested fucntions. * ov.cc (octave_value::break_closure_cycles): Also check for anonymous function handles. * test/bug-60237/bug-60237.tst, test/bug-60237/bug_60237.m, test/bug-60237/module.mk: New files for test. * test/module.mk: Update.
author John W. Eaton <jwe@octave.org>
date Tue, 30 Mar 2021 01:08:00 -0400
parents 1a20cb5be8da
children e88444be8468 55eeb7f0850b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
1 %canon_reldir%_EXTRA_DIST =
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
2
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
3 %canon_reldir%_CLEANFILES =
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
4 %canon_reldir%_DISTCLEANFILES =
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
5 %canon_reldir%_MAINTAINERCLEANFILES =
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
6
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 TEST_FILES += \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
8 %reldir%/fntests.m \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
9 %reldir%/args.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
10 %reldir%/bug-31371.tst \
26473
a08602475855 maint: move simple fixed test scripts up a level
Mike Miller <mtmiller@octave.org>
parents: 26420
diff changeset
11 %reldir%/bug-45969.tst \
a08602475855 maint: move simple fixed test scripts up a level
Mike Miller <mtmiller@octave.org>
parents: 26420
diff changeset
12 %reldir%/bug-45972.tst \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
13 %reldir%/bug-46330.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
14 %reldir%/bug-49904.tst \
25203
72ea868ca63a allow function parameters to be global (bug #53579)
John W. Eaton <jwe@octave.org>
parents: 25201
diff changeset
15 %reldir%/bug-53579.tst \
25201
c80323fe4938 improve handling of global symbols (bug #53599)
John W. Eaton <jwe@octave.org>
parents: 24977
diff changeset
16 %reldir%/bug-53599.tst \
25795
cbb197e84b60 fix typo in changeset cc9da21511c1
John W. Eaton <jwe@octave.org>
parents: 25789
diff changeset
17 %reldir%/bug-54490.tst \
26473
a08602475855 maint: move simple fixed test scripts up a level
Mike Miller <mtmiller@octave.org>
parents: 26420
diff changeset
18 %reldir%/bug-55308.tst \
a08602475855 maint: move simple fixed test scripts up a level
Mike Miller <mtmiller@octave.org>
parents: 26420
diff changeset
19 %reldir%/bug-55321.tst \
a08602475855 maint: move simple fixed test scripts up a level
Mike Miller <mtmiller@octave.org>
parents: 26420
diff changeset
20 %reldir%/bug-55322.tst \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
21 %reldir%/colormaps.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
22 %reldir%/command.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
23 %reldir%/complex.tst \
23834
9f31de57ad36 Include recently added test files in the source distribution
Mike Miller <mtmiller@octave.org>
parents: 23814
diff changeset
24 %reldir%/deprecate-props.tst \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
25 %reldir%/diag-perm.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
26 %reldir%/error.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
27 %reldir%/eval-catch.tst \
26662
05fc703b419a update handling of command-style function call syntax in eval
John W. Eaton <jwe@octave.org>
parents: 26526
diff changeset
28 %reldir%/eval-command.tst \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
29 %reldir%/for.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
30 %reldir%/func.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
31 %reldir%/global.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
32 %reldir%/if.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
33 %reldir%/index.tst \
28427
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents: 28180
diff changeset
34 %reldir%/inline-fcn.tst \
25839
7094f73d4ece Add new integer.tst module to test saturation mechanics.
Rik <rik@octave.org>
parents: 25489
diff changeset
35 %reldir%/integer.tst \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
36 %reldir%/io.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
37 %reldir%/jit.tst \
24251
599fe61a5619 Fix incorrect size of the solution of some singular systems (bug #52402).
Marco Caliari <marco.caliari@univr.it>
parents: 24185
diff changeset
38 %reldir%/leftdiv.tst \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
39 %reldir%/line-continue.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
40 %reldir%/logical-index.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
41 %reldir%/null-assign.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
42 %reldir%/parser.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
43 %reldir%/prefer.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
44 %reldir%/range.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
45 %reldir%/recursion.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
46 %reldir%/return.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
47 %reldir%/single-index.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
48 %reldir%/slice.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
49 %reldir%/struct.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
50 %reldir%/switch.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
51 %reldir%/system.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
52 %reldir%/transpose.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
53 %reldir%/try.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
54 %reldir%/unwind.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
55 %reldir%/while.tst
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
57 DIRSTAMP_FILES += %reldir%/$(octave_dirstamp)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
59 include %reldir%/bug-35448/module.mk
24185
068556c5167e Add BIST test for clear() function (bug #35881).
Rik <rik@octave.org>
parents: 24099
diff changeset
60 include %reldir%/bug-35881/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
61 include %reldir%/bug-36025/module.mk
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
62 include %reldir%/bug-38236/module.mk
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
63 include %reldir%/bug-38691/module.mk
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
64 include %reldir%/bug-41723/module.mk
28180
d597dc0a5f74 build: include tests for bug #50831 in the build system
Mike Miller <mtmiller@octave.org>
parents: 27745
diff changeset
65 include %reldir%/bug-44940/module.mk
26796
45fc6505a803 allow handles to methods created inside method or ctor to work (bug #45351)
John W. Eaton <jwe@octave.org>
parents: 26760
diff changeset
66 include %reldir%/bug-45351/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
67 include %reldir%/bug-46660/module.mk
26719
91b152968ec1 allow object.method@superclass (...) to work (bug #47680)
John W. Eaton <jwe@octave.org>
parents: 26697
diff changeset
68 include %reldir%/bug-47680/module.mk
23975
976a7a350274 new tests for classdef constructor and method argument names (bug #49379)
John W. Eaton <jwe@octave.org>
parents: 23883
diff changeset
69 include %reldir%/bug-49379/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
70 include %reldir%/bug-50014/module.mk
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
71 include %reldir%/bug-50035/module.mk
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
72 include %reldir%/bug-50716/module.mk
28180
d597dc0a5f74 build: include tests for bug #50831 in the build system
Mike Miller <mtmiller@octave.org>
parents: 27745
diff changeset
73 include %reldir%/bug-50831/module.mk
23834
9f31de57ad36 Include recently added test files in the source distribution
Mike Miller <mtmiller@octave.org>
parents: 23814
diff changeset
74 include %reldir%/bug-51192/module.mk
23838
6e0fd7e3c262 Fix argument lookup in '+' package functions (Bug #51532).
Piotr Held <pjheld@gmail.com>
parents: 23834
diff changeset
75 include %reldir%/bug-51532/module.mk
23842
ff893e26aeeb make calling parent class constructors work again (bug #51534)
Piotr Held <pjheld@gmail.com>
parents: 23838
diff changeset
76 include %reldir%/bug-51534/module.mk
23814
3ac5d3d01cad Anonymous functions to local functions in classdef files (bug #51599).
Piotr Held <pjheld@gmail.com>
parents: 23710
diff changeset
77 include %reldir%/bug-51599/module.mk
24069
f8b8a8e6bd79 make local functions and method names unique for parser (Bug #52075)
Piotr Held <pjheld@gmail.com>
parents: 23975
diff changeset
78 include %reldir%/bug-52075/module.mk
24459
b728b7ac1601 Add BIST test for bug #52722.
Rik <rik@octave.org>
parents: 24251
diff changeset
79 include %reldir%/bug-52722/module.mk
28698
d45d1b4bb919 allow functions to be redefined in scripts (bug #52851)
John W. Eaton <jwe@octave.org>
parents: 28481
diff changeset
80 include %reldir%/bug-52851/module.mk
24977
2b040946dc69 improve handling of clear for globals, forwarded symbols (bug #53027)
John W. Eaton <jwe@octave.org>
parents: 24952
diff changeset
81 include %reldir%/bug-53027/module.mk
26713
7b9a5ab8350f Properly integrate hgload tests in the build system (bug #53468)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26526
diff changeset
82 include %reldir%/bug-53468/module.mk
26926
71724787d972 don't call inherited delete methods (bug #53956)
John W. Eaton <jwe@octave.org>
parents: 26924
diff changeset
83 include %reldir%/bug-53956/module.mk
26526
75c7aafca6bb test for bug #54995
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 26473
diff changeset
84 include %reldir%/bug-54995/module.mk
26924
ab9520ef3895 ensure classdef dtor doesn't wipe out expression value (bug #53844, bug #55758)
John W. Eaton <jwe@octave.org>
parents: 26796
diff changeset
85 include %reldir%/bug-55758/module.mk
28481
1be719d8b375 fix dispatch error with classsimple function handle (bug #58572)
John W. Eaton <jwe@octave.org>
parents: 28427
diff changeset
86 include %reldir%/bug-58572/module.mk
28804
3719f5d452d4 refactor implementation of END indexing in interpreter (bug #58953)
John W. Eaton <jwe@octave.org> and Fernando Alvarruiz
parents: 28698
diff changeset
87 include %reldir%/bug-58593/module.mk
29066
a922c2176394 test: Add BIST for bug #59451.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28804
diff changeset
88 include %reldir%/bug-59451/module.mk
29180
eec0fe95576e avoid dispatch error if methdo argument is a function handle (bug #59617)
John W. Eaton <jwe@octave.org>
parents: 29066
diff changeset
89 include %reldir%/bug-59617/module.mk
29208
370b5ded5e6a Add test case for bug #59661.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29180
diff changeset
90 include %reldir%/bug-59661/module.mk
29314
67857e94604a Temporarily set lvalue list to null (bug #59704).
Fernando Alvarruiz <feralber@upvnet.upv.es>
parents: 29208
diff changeset
91 include %reldir%/bug-59704/module.mk
29324
1a20cb5be8da avoid crash when evaling global variables into existence in script (bug #59937)
John W. Eaton <jwe@octave.org>
parents: 29314
diff changeset
92 include %reldir%/bug-59937/module.mk
29477
34d06c73b48d hold references to closure frames in anon functions if needed (bug #60237)
John W. Eaton <jwe@octave.org>
parents: 29324
diff changeset
93 include %reldir%/bug-60237/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
94 include %reldir%/class-concat/module.mk
23838
6e0fd7e3c262 Fix argument lookup in '+' package functions (Bug #51532).
Piotr Held <pjheld@gmail.com>
parents: 23834
diff changeset
95 include %reldir%/classdef/module.mk
23834
9f31de57ad36 Include recently added test files in the source distribution
Mike Miller <mtmiller@octave.org>
parents: 23814
diff changeset
96 include %reldir%/classdef-multiple-inheritance/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
97 include %reldir%/classes/module.mk
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
98 include %reldir%/ctor-vs-method/module.mk
26960
6731d89ef576 new tests for functions in package directories (bug #51709, bug #55975)
John W. Eaton <jwe@octave.org>
parents: 26926
diff changeset
99 include %reldir%/fcn-handle/module.mk
24952
1fbd8afcf625 Ensure that local functions do not have a static workspace (bug #53405).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24844
diff changeset
100 include %reldir%/local-functions/module.mk
25453
e255f09dc70e initial framework for testing MEX files
John W. Eaton <jwe@octave.org>
parents: 25381
diff changeset
101 include %reldir%/mex/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
102 include %reldir%/nest/module.mk
27745
7a45100a40c4 allow private scripts to be called from other private scripts
John W. Eaton <jwe@octave.org>
parents: 26960
diff changeset
103 include %reldir%/private-functions/module.mk
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
104 include %reldir%/publish/module.mk
24968
30c7aa427506 test: first pkg test suite
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents: 24952
diff changeset
105 include %reldir%/pkg/module.mk
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
106
23278
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
107 define run-octave-tests
26697
8e97a2e5ab66 Read sitewide init-file when running 'make check'
Rik <rik@octave.org>
parents: 26662
diff changeset
108 ( cd %reldir% && $(SHELL) ../run-octave $(RUN_OCTAVE_OPTIONS) $(1) --no-init-file --silent --no-history -p $(abs_top_builddir)/%reldir%/mex $(abs_top_srcdir)/%reldir%/fntests.m $(abs_top_srcdir)/%reldir% ) && \
23278
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
109 if $(AM_V_P); then \
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
110 echo ""; \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
111 if [ -f %reldir%/fntests.log ]; then \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
112 echo "Contents of %reldir%/fntests.log:"; \
23278
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
113 echo ""; \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
114 $(AWK) -f $(srcdir)/%reldir%/show-failures.awk %reldir%/fntests.log; \
23278
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
115 else \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
116 echo "%reldir%/fntests.log is missing!"; \
23278
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
117 fi; \
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
118 fi
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
119 endef
eb19c1545fb8 display fntests.log at end of make check if V=1
John W. Eaton <jwe@octave.org>
parents: 23048
diff changeset
120
25453
e255f09dc70e initial framework for testing MEX files
John W. Eaton <jwe@octave.org>
parents: 25381
diff changeset
121 check-local: $(GENERATED_TEST_FILES) $(MEX_TEST_FUNCTIONS) | $(OCTAVE_INTERPRETER_TARGETS) %reldir%/$(octave_dirstamp)
23883
b3b136bc7ce2 shorten messages displayed at end of make check
John W. Eaton <jwe@octave.org>
parents: 23852
diff changeset
122 $(AM_V_at)$(call run-octave-tests)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
123
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
124 if AMCOND_HAVE_LLVM
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
125 check-jit: $(GENERATED_TEST_FILES) | $(OCTAVE_INTERPRETER_TARGETS) %reldir%/$(octave_dirstamp)
23883
b3b136bc7ce2 shorten messages displayed at end of make check
John W. Eaton <jwe@octave.org>
parents: 23852
diff changeset
126 $(AM_V_at)$(call run-octave-tests,--jit-compiler)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
127 endif
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
128
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
129 COVERAGE_DIR = %reldir%/coverage
22109
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
130 COVERAGE_INFO = $(COVERAGE_DIR)/$(PACKAGE).info
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
131
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
132 ## FIXME: To get something useful out of 'make coverage', you should use gcc
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
133 ## and configure with compiler flags set to '-g --coverage'. Adding the
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
134 ## --coverage option to either WARN_CXXFLAGS or XTRA_CXXFLAGS resulted in
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
135 ## link errors, so some work still needed to get a '--enable-coverage-flags'
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
136 ## option working.
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
137
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
138 coverage: all
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
139 lcov --directory . --zerocounters
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
140 $(MAKE) $(AM_MAKEFLAGS) check
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
141 $(MKDIR_P) $(COVERAGE_DIR)
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
142 lcov --directory . --capture --output-file $(COVERAGE_INFO)
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
143 genhtml --output-directory $(COVERAGE_DIR) $(COVERAGE_INFO)
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
144 @echo ""
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
145 @echo "Code coverage report successfully built. Open the file"
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
146 @echo ""
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
147 @echo " $(abs_top_builddir)/$(COVERAGE_DIR)/index.html"
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
148 @echo ""
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
149 @echo "in a web browser to view the results."
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
150 @echo ""
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
151 .PHONY: coverage
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
152
23852
9f05f5afff45 maint: sort lists of files in test makefile snippets
Mike Miller <mtmiller@octave.org>
parents: 23842
diff changeset
153 %reldir%/conv.tst: %reldir%/mk-conv-tst.sh | %reldir%/$(octave_dirstamp)
9f05f5afff45 maint: sort lists of files in test makefile snippets
Mike Miller <mtmiller@octave.org>
parents: 23842
diff changeset
154 $(AM_V_GEN)rm -f $@-t $@ && \
9f05f5afff45 maint: sort lists of files in test makefile snippets
Mike Miller <mtmiller@octave.org>
parents: 23842
diff changeset
155 $(SHELL) $(srcdir)/%reldir%/mk-conv-tst.sh > $@-t && \
9f05f5afff45 maint: sort lists of files in test makefile snippets
Mike Miller <mtmiller@octave.org>
parents: 23842
diff changeset
156 mv $@-t $@
9f05f5afff45 maint: sort lists of files in test makefile snippets
Mike Miller <mtmiller@octave.org>
parents: 23842
diff changeset
157
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
158 %reldir%/sparse.tst: %reldir%/mk-sparse-tst.sh | %reldir%/$(octave_dirstamp)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
159 $(AM_V_GEN)rm -f $@-t $@ && \
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
160 $(SHELL) $(srcdir)/%reldir%/mk-sparse-tst.sh > $@-t && \
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
161 mv $@-t $@
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
162
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
163 GENERATED_BC_OVERLOADS_DIRS := \
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
164 $(shell $(SHELL) $(srcdir)/%reldir%/mk-bc-overloads-tst.sh test --list-dirs)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
165
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
166 GENERATED_BC_OVERLOADS_FILES := \
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
167 $(shell $(SHELL) $(srcdir)/%reldir%/mk-bc-overloads-tst.sh test --list-files)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
168
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
169 $(GENERATED_BC_OVERLOADS_FILES): %reldir%/mk-bc-overloads-tst-stamp
20311
3373f2f760bc fix dependencies for generated overload operator tests
John W. Eaton <jwe@octave.org>
parents: 20310
diff changeset
170
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
171 %reldir%/.bc-overload-tests-stamp: %reldir%/mk-bc-overloads-tst.sh %reldir%/bc-overloads-expected | %reldir%/$(octave_dirstamp)
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
172 $(AM_V_GEN)rm -f $@ && \
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
173 $(SHELL) $(srcdir)/%reldir%/mk-bc-overloads-tst.sh test $(srcdir)/%reldir%/bc-overloads-expected && \
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
174 touch $@
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
175
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
176 GENERATED_TEST_FILES = \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
177 %reldir%/conv.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
178 %reldir%/sparse.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
179 %reldir%/.bc-overload-tests-stamp
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
180
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
181 fixedtestsdir := $(octtestsdir)/fixed
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
182
20373
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
183 TEST_INST_FILES = \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
184 %reldir%/conv.tst \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
185 %reldir%/sparse.tst \
20310
c7f9fcff42f2 test/module.mk: New file missing from changeset bacaec9b5535.
John W. Eaton <jwe@octave.org>
parents:
diff changeset
186 $(GENERATED_BC_OVERLOADS_FILES) \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
187 $(filter-out %reldir%/fntests.m, $(TEST_FILES))
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
188
20373
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
189 install-data-local: install-test-files
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
190
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
191 uninstall-local: uninstall-test-files
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
192
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
193 install-test-files:
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
194 for f in $(TEST_INST_FILES); do \
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
195 if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
196 base=`echo $$f | $(SED) 's,^%reldir%/,,'`; \
20373
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
197 $(MKDIR_P) $(DESTDIR)$(fixedtestsdir)/`echo $$base | $(SED) 's,/*[^/]*$$,,'`; \
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
198 $(INSTALL_DATA) $$d$$f $(DESTDIR)$(fixedtestsdir)/$$base; \
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
199 done
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
200 .PHONY: install-test-files
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
201
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
202 uninstall-test-files:
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
203 for f in $(TEST_INST_FILES); do \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
204 base=`echo $$f | $(SED) 's,^%reldir%/,,'`; \
20373
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
205 rm -f $(DESTDIR)$(fixedtestsdir)/$$base; \
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
206 done
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
207 .PHONY: uninstall-test-files
3c70050faa1e Fix install paths of fixed and generated test files
Mike Miller <mtmiller@octave.org>
parents: 20368
diff changeset
208
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
209 BUILT_SOURCES += $(GENERATED_TEST_FILES)
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
210
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
211 %canon_reldir%_EXTRA_DIST += \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
212 %reldir%/bc-overloads-expected \
23710
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
213 %reldir%/mk-bc-overloads-tst.sh \
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
214 %reldir%/mk-conv-tst.sh \
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
215 %reldir%/mk-sparse-tst.sh \
279a6bd429f4 rename a few more build scripts for consistency
John W. Eaton <jwe@octave.org>
parents: 23495
diff changeset
216 %reldir%/mk_bc_overloads_expected.m \
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
217 %reldir%/show-failures.awk \
25453
e255f09dc70e initial framework for testing MEX files
John W. Eaton <jwe@octave.org>
parents: 25381
diff changeset
218 $(TEST_FILES) \
e255f09dc70e initial framework for testing MEX files
John W. Eaton <jwe@octave.org>
parents: 25381
diff changeset
219 $(noinst_TEST_FILES) \
e255f09dc70e initial framework for testing MEX files
John W. Eaton <jwe@octave.org>
parents: 25381
diff changeset
220 $(MEX_TEST_SRC)
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
221
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
222 EXTRA_DIST += $(%canon_reldir%_EXTRA_DIST)
20368
2f9119bb3fe5 build: Add EXTRA_DIST files frob libgui/ and test/ to tarball.
Rik <rik@octave.org>
parents: 20367
diff changeset
223
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
224 %canon_reldir%_CLEANFILES += \
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
225 $(GENERATED_BC_OVERLOADS_FILES) \
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
226 $(GENERATED_TEST_FILES)
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
227
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
228 %canon_reldir%_DISTCLEANFILES += \
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
229 %reldir%/fntests.log
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
230
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
231 CLEANFILES += $(%canon_reldir%_CLEANFILES)
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
232 DISTCLEANFILES += $(%canon_reldir%_DISTCLEANFILES)
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
233 MAINTAINERCLEANFILES += $(%canon_reldir%_MAINTAINERCLEANFILES)
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
234
22043
7d28674f6ff0 build: delete generated @class subdirectories for test suite on 'make clean'
Mike Miller <mtmiller@octave.org>
parents: 21964
diff changeset
235 clean-local: test-clean
7d28674f6ff0 build: delete generated @class subdirectories for test suite on 'make clean'
Mike Miller <mtmiller@octave.org>
parents: 21964
diff changeset
236
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
237 test-clean:
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
238 rm -f $(%canon_reldir%_CLEANFILES)
22043
7d28674f6ff0 build: delete generated @class subdirectories for test suite on 'make clean'
Mike Miller <mtmiller@octave.org>
parents: 21964
diff changeset
239 rm -rf $(GENERATED_BC_OVERLOADS_DIRS)
22109
57ca47db75ec build: add 'make coverage' target to build code coverage report
Mike Miller <mtmiller@octave.org>
parents: 22085
diff changeset
240 rm -rf $(COVERAGE_DIR)
25468
e959d4b33eb1 * test/module.mk (test-clean): Also remove .mex files.
John W. Eaton <jwe@octave.org>
parents: 25453
diff changeset
241 rm -rf $(MEX_TEST_FUNCTIONS)
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
242
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
243 test-distclean: test-clean
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
244 rm -f $(%canon_reldir%_DISTCLEANFILES)
20366
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
245
9b44691a3520 provide per-directory clean targets
John W. Eaton <jwe@octave.org>
parents: 20330
diff changeset
246 test-maintainer-clean: test-distclean
23495
8308417aff1c use automake %reldir% feature
John W. Eaton <jwe@octave.org>
parents: 23386
diff changeset
247 rm -f $(%canon_reldir%_MAINTAINERCLEANFILES)