annotate test/fntests.m @ 7021:0b91144f9533 ss-2-9-15

[project @ 2007-10-13 14:34:06 by jwe]
author jwe
date Sat, 13 Oct 2007 14:34:07 +0000
parents 93c65f2a5668
children e8d7eed42935
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
1 ## Copyright (C) 2005, 2006, 2007 David Bateman
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
2 ##
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
3 ## This file is part of Octave.
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
4 ##
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
6 ## under the terms of the GNU General Public License as published by
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
8 ## your option) any later version.
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
9 ##
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
13 ## General Public License for more details.
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
14 ##
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
15 ## You should have received a copy of the GNU General Public License
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
17 ## <http://www.gnu.org/licenses/>.
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6731
diff changeset
18
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
19 clear all;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
20
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
21 global files_with_no_tests = {};
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
22 global files_with_tests = {};
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
23 global topsrcdir;
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
24 global topbuilddir;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
25
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
26 currdir = canonicalize_file_name (".");
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
27
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
28 if (nargin == 1)
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5667
diff changeset
29 xdir = argv(){1};
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
30 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
31 xdir = ".";
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
32 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
33
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
34 srcdir = canonicalize_file_name (xdir);
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
35 topsrcdir = canonicalize_file_name (fullfile (xdir, ".."));
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
36 topbuilddir = canonicalize_file_name (fullfile (currdir, ".."));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
37
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
38 if (strcmp (currdir, srcdir))
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
39 testdirs = {srcdir};
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
40 else
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
41 testdirs = {currdir, srcdir};
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
42 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
43
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
44 src_tree = canonicalize_file_name (fullfile (topsrcdir, "src"));
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
45 liboctave_tree = canonicalize_file_name (fullfile (topsrcdir, "liboctave"));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
46 script_tree = canonicalize_file_name (fullfile (topsrcdir, "scripts"));
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
47 local_script_tree = canonicalize_file_name (fullfile (currdir, "../scripts"));
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
48
6162
b3c425131211 [project @ 2006-11-14 15:33:22 by jwe]
jwe
parents: 5845
diff changeset
49 fundirs = {src_tree, liboctave_tree, script_tree};
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
50
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
51 if (! strcmp (currdir, srcdir))
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
52 fundirs{end+1} = local_script_tree;
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
53 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
54
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
55 function print_test_file_name (nm)
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
56 filler = repmat (".", 1, 55-length (nm));
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
57 printf (" %s %s", nm, filler);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
58 endfunction
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
59
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
60 function print_pass_fail (n, p)
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
61 if (n > 0)
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
62 printf (" PASS %4d/%-4d", p, n);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
63 nfail = n - p;
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
64 if (nfail > 0)
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
65 printf (" FAIL %d", nfail);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
66 endif
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
67 endif
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
68 printf ("\n");
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
69 endfunction
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
70
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
71 function y = hastests (f)
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
72 fid = fopen (f);
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
73 str = fscanf (fid, "%s");
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
74 fclose (fid);
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
75 y = (findstr (str, "%!test") || findstr (str, "%!assert")
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
76 || findstr (str, "%!error") || findstr (str, "%!warning"));
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
77 endfunction
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
78
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
79 function [dp, dn, dxf] = run_test_dir (fid, d);
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
80 global files_with_tests;
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
81 global files_with_no_tests;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
82 lst = dir (d);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
83 dp = dn = dxf = 0;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
84 for i = 1:length (lst)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
85 nm = lst(i).name;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
86 if (length (nm) > 5 && strcmp (nm(1:5), "test_")
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
87 && strcmp (nm((end-1):end), ".m"))
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
88 p = n = 0;
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
89 ffnm = fullfile (d, nm);
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
90 if (hastests (ffnm))
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
91 print_test_file_name (nm);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
92 [p, n, xf] = test (nm(1:(end-2)), "quiet", fid);
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
93 print_pass_fail (n, p);
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
94 files_with_tests(end+1) = ffnm;
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
95 else
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
96 files_with_no_tests(end+1) = ffnm;
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
97 endif
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
98 dp += p;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
99 dn += n;
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
100 dxf += xf;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
101 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
102 endfor
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
103 endfunction
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
104
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
105 function [dp, dn, dxf] = run_test_script (fid, d);
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
106 global files_with_tests;
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
107 global files_with_no_tests;
5781
faafc2d98b8d [project @ 2006-05-02 19:40:19 by jwe]
jwe
parents: 5667
diff changeset
108 global topsrcdir;
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
109 global topbuilddir;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
110 lst = dir (d);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
111 dp = dn = dxf = 0;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
112 for i = 1:length (lst)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
113 nm = lst(i).name;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
114 if (lst(i).isdir && ! strcmp (nm, ".") && ! strcmp (nm, "..")
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
115 && ! strcmp (nm, "CVS"))
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
116 [p, n, xf] = run_test_script (fid, [d, "/", nm]);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
117 dp += p;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
118 dn += n;
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
119 dxf += xf;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
120 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
121 endfor
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
122 for i = 1:length (lst)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
123 nm = lst(i).name;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
124 if ((length (nm) > 3 && strcmp (nm((end-2):end), ".cc"))
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
125 || (length (nm) > 2 && strcmp (nm((end-1):end), ".m")))
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
126 f = fullfile (d, nm);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
127 p = n = xf = 0;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
128 ## Only run if it contains %!test, %!assert %!error or %!warning
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
129 if (hastests (f))
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
130 tmp = strrep (f, [topsrcdir, "/"], "");
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
131 tmp = strrep (tmp, [topbuilddir, "/"], "../");
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6162
diff changeset
132 print_test_file_name (tmp);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
133 [p, n, xf] = test (f, "quiet", fid);
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
134 print_pass_fail (n, p);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
135 dp += p;
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
136 dn += n;
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
137 dxf += xf;
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
138 files_with_tests(end+1) = f;
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
139 else
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
140 files_with_no_tests(end+1) = f;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
141 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
142 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
143 endfor
5667
ec3ffbf9982b [project @ 2006-03-15 02:51:39 by jwe]
jwe
parents: 5590
diff changeset
144 ## printf("%s%s -> passes %d of %d tests\n", ident, d, dp, dn);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
145 endfunction
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
146
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
147 function printf_assert (varargin)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
148 global _assert_printf;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
149 _assert_printf = cat (2, _assert_printf, sprintf (varargin{:}));
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
150 endfunction
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
151
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
152 function ret = prog_output_assert (str)
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
153 global _assert_printf;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
154 if (isempty (_assert_printf))
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
155 ret = isempty (str);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
156 elseif (_assert_printf(end) == "\n")
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
157 ret = strcmp (_assert_printf(1:(end-1)), str);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
158 else
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
159 ret = strcmp (_assert_printf, str);
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
160 endif
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
161 _assert_printf = "";
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
162 endfunction
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
163
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
164 pso = page_screen_output ();
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
165 warn_state = warning ("query", "quiet");
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
166 warning ("on", "quiet");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
167 try
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
168 page_screen_output (0);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
169 fid = fopen ("fntests.log", "wt");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
170 if (fid < 0)
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
171 error ("could not open fntests.log for writing");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
172 endif
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
173 test ("", "explain", fid);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
174 dp = dn = dxf = 0;
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
175 printf ("\nIntegrated test scripts:\n\n");
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
176 for i = 1:length (fundirs)
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
177 [p, n, xf] = run_test_script (fid, fundirs{i});
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
178 dp += p;
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
179 dn += n;
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
180 dxf += xf;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
181 endfor
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
182 printf ("\nFixed test scripts:\n\n");
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
183 for i = 1:length (testdirs)
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
184 [p, n, xf] = run_test_dir (fid, testdirs{i});
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
185 dp += p;
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
186 dn += n;
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
187 dxf += xf;
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
188 endfor
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
189 printf ("\nSummary:\n\n PASS %6d\n", dp);
5667
ec3ffbf9982b [project @ 2006-03-15 02:51:39 by jwe]
jwe
parents: 5590
diff changeset
190 nfail = dn - dp;
ec3ffbf9982b [project @ 2006-03-15 02:51:39 by jwe]
jwe
parents: 5590
diff changeset
191 printf (" FAIL %6d\n", nfail);
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
192 if (dxf > 0)
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
193 printf ("\nThere were %d expected failures (see fntests.log for details).\n",
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
194 dxf);
6731
aff0c76321aa [project @ 2007-06-15 15:53:18 by jwe]
jwe
parents: 6730
diff changeset
195 printf ("\nExpected failures are known bugs. Please help improve\n");
aff0c76321aa [project @ 2007-06-15 15:53:18 by jwe]
jwe
parents: 6730
diff changeset
196 printf ("Octave by contributing fixes for them.\n");
6730
230f9c49857e [project @ 2007-06-15 04:22:13 by jwe]
jwe
parents: 6277
diff changeset
197 endif
5845
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
198 n_files_with_no_tests = length (files_with_no_tests);
8b4a99ae3b5e [project @ 2006-06-07 18:11:24 by jwe]
jwe
parents: 5840
diff changeset
199 n_files = n_files_with_no_tests + length (files_with_tests);
6277
bdfb345dab8d [project @ 2007-02-07 09:13:45 by jwe]
jwe
parents: 6257
diff changeset
200 printf ("\n%d (of %d) files have no tests. Please help improve Octave by\n",
bdfb345dab8d [project @ 2007-02-07 09:13:45 by jwe]
jwe
parents: 6257
diff changeset
201 n_files_with_no_tests, n_files);
bdfb345dab8d [project @ 2007-02-07 09:13:45 by jwe]
jwe
parents: 6257
diff changeset
202 printf ("contributing tests for these files (see the list in the file fntests.log).\n");
5840
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
203 fprintf (fid, "\nFiles with no tests:\n\n%s",
257643fc806b [project @ 2006-06-01 22:08:00 by jwe]
jwe
parents: 5836
diff changeset
204 list_in_columns (files_with_no_tests, 80));
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
205 fclose (fid);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
206 page_screen_output (pso);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
207 warning (warn_state.state, "quiet");
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
208 catch
5836
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
209 page_screen_output (pso);
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
210 warning (warn_state.state, "quiet");
ed69a3b5b3d0 [project @ 2006-06-01 16:16:00 by jwe]
jwe
parents: 5781
diff changeset
211 disp (lasterr ());
5590
1ad66ea35fe5 [project @ 2006-01-06 00:24:05 by jwe]
jwe
parents:
diff changeset
212 end_try_catch