# HG changeset patch # User John W. Eaton # Date 1497036843 14400 # Node ID b6144e6dda9ea3ce075237d2cb55b04762426dd2 # Parent 10248986f14c1f7de2e5051de59187e04d676c96 allow bugs to be tagged as fixed in test suite * test.m: Recognize <*BUG-ID> as a fixed bug in tests. If they fail, count them separately as regressions. * __run_test_suite__.m: Report regressions separately. diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/bsxfun.cc --- a/libinterp/corefcn/bsxfun.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/bsxfun.cc Fri Jun 09 15:34:03 2017 -0400 @@ -811,11 +811,14 @@ %! endfor ## Automatic broadcasting with zero length dimensions -%!assert <47085> ([1 2 3] .+ zeros (0, 3), zeros (0, 3)) -%!assert <47085> (rand (3, 3, 1) .+ rand (3, 3, 0), zeros (3, 3, 0)) +%!assert <*47085> ([1 2 3] .+ zeros (0, 3), zeros (0, 3)) +%!assert <*47085> ([1 2 3] .+ zeros (0, 3), zeros (0, 3)) +%!assert <*47085> (rand (3, 3, 1) .+ rand (3, 3, 0), zeros (3, 3, 0)) +%!assert <*47085> (rand (3, 3, 1) .+ rand (3, 3, 0), zeros (3, 3, 0)) ## In-place broadcasting with zero length dimensions -%!test <47085> +%!test <*47085> +%!test <*47085> %! a = zeros (0, 3); %! a .+= [1 2 3]; %! assert (a, zeros (0, 3)); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/cellfun.cc --- a/libinterp/corefcn/cellfun.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/cellfun.cc Fri Jun 09 15:34:03 2017 -0400 @@ -979,10 +979,14 @@ %! assert (b, {"c", "g"}); %! assert (c, {".d", ".h"}); -%!assert <40467> (cellfun (@isreal, {1 inf nan []}), [true, true, true, true]) -%!assert <40467> (cellfun (@isreal, {1 inf nan []}, "UniformOutput", false), {true, true, true, true}) -%!assert <40467> (cellfun (@iscomplex, {1 inf nan []}), [false, false, false, false]) -%!assert <40467> (cellfun (@iscomplex, {1 inf nan []}, "UniformOutput", false), {false, false, false, false}) +%!assert <*40467> (cellfun (@isreal, {1 inf nan []}), [true, true, true, true]) +%!assert <*40467> (cellfun (@isreal, {1 inf nan []}), [true, true, true, true]) +%!assert <*40467> (cellfun (@isreal, {1 inf nan []}, "UniformOutput", false), {true, true, true, true}) +%!assert <*40467> (cellfun (@isreal, {1 inf nan []}, "UniformOutput", false), {true, true, true, true}) +%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}), [false, false, false, false]) +%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}), [false, false, false, false]) +%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}, "UniformOutput", false), {false, false, false, false}) +%!assert <*40467> (cellfun (@iscomplex, {1 inf nan []}, "UniformOutput", false), {false, false, false, false}) %!error cellfun (1) %!error cellfun ("isclass", 1) diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/conv2.cc --- a/libinterp/corefcn/conv2.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/conv2.cc Fri Jun 09 15:34:03 2017 -0400 @@ -255,13 +255,17 @@ %!shared ## Test cases from Bug #34893 -%!assert <34893> (conv2 ([1:5;1:5], [1:2], "same"), +%!assert <*34893> (conv2 ([1:5;1:5], [1:2], "same"), +%!assert <*34893> (conv2 ([1:5;1:5], [1:2], "same"), %! [4 7 10 13 10; 4 7 10 13 10]) -%!assert <34893> (conv2 ([1:5;1:5]', [1:2]', "same"), +%!assert <*34893> (conv2 ([1:5;1:5]', [1:2]', "same"), +%!assert <*34893> (conv2 ([1:5;1:5]', [1:2]', "same"), %! [4 7 10 13 10; 4 7 10 13 10]') -%!assert <34893> (conv2 ([1:5;1:5], [1:2], "valid"), +%!assert <*34893> (conv2 ([1:5;1:5], [1:2], "valid"), +%!assert <*34893> (conv2 ([1:5;1:5], [1:2], "valid"), %! [4 7 10 13; 4 7 10 13]) -%!assert <34893> (conv2 ([1:5;1:5]', [1:2]', "valid"), +%!assert <*34893> (conv2 ([1:5;1:5]', [1:2]', "valid"), +%!assert <*34893> (conv2 ([1:5;1:5]', [1:2]', "valid"), %! [4 7 10 13; 4 7 10 13]') %!test diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/data.cc --- a/libinterp/corefcn/data.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/data.cc Fri Jun 09 15:34:03 2017 -0400 @@ -559,7 +559,8 @@ %! assert (f, complex (zeros (3, 2), [0,-0.5; 0.5,-0.5; Inf,-Inf])); %! assert (e(1:2,:), [0,1; 2,3]); -%!assert <42583> (all (log2 (pow2 (-1074:1023)) == -1074:1023)) +%!assert <*42583> (all (log2 (pow2 (-1074:1023)) == -1074:1023)) +%!assert <*42583> (all (log2 (pow2 (-1074:1023)) == -1074:1023)) */ DEFUN (rem, args, , @@ -725,10 +726,13 @@ %! assert (nnz (y), 1); %! assert (y, sparse ([NaN 0 0 0])); -%!assert <45587> (signbit (rem (-0, 1))) -%!assert <45587> (! signbit (rem (0, 1))) - -%!assert <42627> (rem (0.94, 0.01), 0.0) +%!assert <*45587> (signbit (rem (-0, 1))) +%!assert <*45587> (signbit (rem (-0, 1))) +%!assert <*45587> (! signbit (rem (0, 1))) +%!assert <*45587> (! signbit (rem (0, 1))) + +%!assert <*42627> (rem (0.94, 0.01), 0.0) +%!assert <*42627> (rem (0.94, 0.01), 0.0) %!error rem (uint (8), int8 (5)) %!error rem (uint8 ([1, 2]), uint8 ([3, 4, 5])) @@ -904,10 +908,13 @@ %!assert (mod (2.1, 0.1), 0) %!assert (mod (2.1, 0.2), 0.1, eps) -%!assert <45587> (signbit (mod (-0, 0))) -%!assert <45587> (! signbit (mod (0, -0))) - -%!assert <42627> (mod (0.94, 0.01), 0.0) +%!assert <*45587> (signbit (mod (-0, 0))) +%!assert <*45587> (signbit (mod (-0, 0))) +%!assert <*45587> (! signbit (mod (0, -0))) +%!assert <*45587> (! signbit (mod (0, -0))) + +%!assert <*42627> (mod (0.94, 0.01), 0.0) +%!assert <*42627> (mod (0.94, 0.01), 0.0) */ #define DATA_REDUCTION(FCN) \ @@ -1266,9 +1273,12 @@ %!assert (diag (int8 ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1), int8 ([1; 2; 3])) %!assert (diag (int8 ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), int8 ([1; 2; 3])) -%!assert <37411> (diag (diag ([5, 2, 3])(:,1)), diag([5 0 0 ])) -%!assert <37411> (diag (diag ([5, 2, 3])(:,1), 2), [0 0 5 0 0; zeros(4, 5)]) -%!assert <37411> (diag (diag ([5, 2, 3])(:,1), -2), [[0 0 5 0 0]', zeros(5, 4)]) +%!assert <*37411> (diag (diag ([5, 2, 3])(:,1)), diag([5 0 0 ])) +%!assert <*37411> (diag (diag ([5, 2, 3])(:,1)), diag([5 0 0 ])) +%!assert <*37411> (diag (diag ([5, 2, 3])(:,1), 2), [0 0 5 0 0; zeros(4, 5)]) +%!assert <*37411> (diag (diag ([5, 2, 3])(:,1), 2), [0 0 5 0 0; zeros(4, 5)]) +%!assert <*37411> (diag (diag ([5, 2, 3])(:,1), -2), [[0 0 5 0 0]', zeros(5, 4)]) +%!assert <*37411> (diag (diag ([5, 2, 3])(:,1), -2), [[0 0 5 0 0]', zeros(5, 4)]) ## Test non-square size %!assert (diag ([1,2,3], 6, 3), [1 0 0; 0 2 0; 0 0 3; 0 0 0; 0 0 0; 0 0 0]) @@ -2202,7 +2212,8 @@ %!error horzcat (struct ("foo", "bar"), cell (1)) -%!test <39041> assert (class (horzcat (cell(0), struct())), "cell") +%!test <*39041> assert (class (horzcat (cell(0), struct())), "cell") +%!test <*39041> assert (class (horzcat (cell(0), struct())), "cell") %!test <51086> assert (class (horzcat (struct(), cell(0))), "struct") */ @@ -2426,7 +2437,8 @@ %!assert ([zeros(3,2,2); ones(1,2,2)], repmat ([0;0;0;1],[1,2,2])) %!assert ([zeros(3,2,2); ones(1,2,2)], vertcat (zeros (3,2,2), ones (1,2,2))) -%!test <49759> +%!test <*49759> +%!test <*49759> %! A = []; %! B = {1; 2}; %! assert (cat (1, A, B), {1; 2}); @@ -4228,7 +4240,8 @@ ## Matlab requires the size to be a row vector. In that logic, it supports ## n to be a 1x0 vector (returns 0x0) but not a 0x1 vector. Octave supports ## any vector and therefore must support 0x1, 1x0, and 0x0x1 (but not 0x1x1). -%!test <47298> +%!test <*47298> +%!test <*47298> %! funcs = {@zeros, @ones, @inf, @nan, @NA, @i, @pi, @e}; %! for idx = 1:numel (funcs) %! func = funcs{idx}; diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/dlmread.cc --- a/libinterp/corefcn/dlmread.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/dlmread.cc Fri Jun 09 15:34:03 2017 -0400 @@ -551,7 +551,8 @@ %! unlink (file); %! end_unwind_protect -%!test <42025> +%!test <*42025> +%!test <*42025> %! file = tempname (); %! unwind_protect %! fid = fopen (file, "wt"); @@ -567,7 +568,8 @@ %! unlink (file); %! end_unwind_protect -%!test <50589> +%!test <*50589> +%!test <*50589> %! file = tempname (); %! unwind_protect %! fid = fopen (file, "wt"); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/ellipj.cc --- a/libinterp/corefcn/ellipj.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/ellipj.cc Fri Jun 09 15:34:03 2017 -0400 @@ -816,7 +816,8 @@ %! assert (cn, C, 8*eps); %! assert (dn, D, 8*eps); -%!test <43344> +%!test <*43344> +%!test <*43344> %! ## Test continuity of dn when cn is near zero %! m = 0.5; %! u = ellipke (0.5); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/error.cc --- a/libinterp/corefcn/error.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/error.cc Fri Jun 09 15:34:03 2017 -0400 @@ -1751,7 +1751,8 @@ } /* -%!test <45753> +%!test <*45753> +%!test <*45753> %! warning ("error"); %! assert (! isempty (help ("warning"))); */ diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/file-io.cc --- a/libinterp/corefcn/file-io.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/file-io.cc Fri Jun 09 15:34:03 2017 -0400 @@ -1761,13 +1761,15 @@ %! assert (R{1}, int32 (1)); %! assert (isempty (R{2}), true); -%!test <37023> +%!test <*37023> +%!test <*37023> %! data = textscan (" 1. 1 \n 2 3\n", '%f %f'); %! assert (data{1}, [1; 2], 1e-15); %! assert (data{2}, [1; 3], 1e-15); ## Whitespace test using delimiter ";" -%!test <37333> +%!test <*37333> +%!test <*37333> %! tc{1, 1} = "C:/code;"; %! tc{1, end+1} = "C:/code/meas;"; %! tc{1, end+1} = " C:/code/sim;"; @@ -1783,7 +1785,8 @@ %! endfor ## Whitespace test, adding multipleDelimsAsOne true arg -%!test <37333> +%!test <*37333> +%!test <*37333> %! tc{1, 1} = "C:/code;"; %! tc{1, end+1} = " C:/code/meas;"; %! tc{1, end+1} = "C:/code/sim;;"; @@ -1799,7 +1802,8 @@ %! endfor ## Whitespace test (bug #37333), adding multipleDelimsAsOne false arg -%!test <37333> +%!test <*37333> +%!test <*37333> %! tc{1, 1} = "C:/code;"; %! tc{1, end+1} = " C:/code/meas;"; %! tc{1, end+1} = "C:/code/sim;;"; @@ -1816,7 +1820,8 @@ %! endfor ## Whitespace test (bug #37333) whitespace "" arg -%!test <37333> +%!test <*37333> +%!test <*37333> %! tc{1, 1} = "C:/code;"; %! tc{1, end+1} = " C:/code/meas;"; %! tc{1, end+1} = "C:/code/sim;"; @@ -1831,7 +1836,8 @@ %! endfor ## Whitespace test (bug #37333), whitespace " " arg -%!test <37333> +%!test <*37333> +%!test <*37333> %! tc{1, 1} = "C:/code;"; %! tc{1, end+1} = " C:/code/meas;"; %! tc{1, end+1} = "C:/code/sim;"; @@ -1949,19 +1955,23 @@ %! unlink (f); %! assert (msg1, lasterr); -%!assert <41824> (textscan ("123", "", "whitespace", " "){:}, 123); +%!assert <*41824> (textscan ("123", "", "whitespace", " "){:}, 123); +%!assert <*41824> (textscan ("123", "", "whitespace", " "){:}, 123); ## just test supplied emptyvalue -%!assert <42343> (textscan (",NaN", "", "delimiter", "," ,"emptyValue" ,Inf), +%!assert <*42343> (textscan (",NaN", "", "delimiter", "," ,"emptyValue" ,Inf), +%!assert <*42343> (textscan (",NaN", "", "delimiter", "," ,"emptyValue" ,Inf), %! {Inf, NaN}) ## test padding with supplied emptyvalue -%!test <42343> +%!test <*42343> +%!test <*42343> %! c = textscan (",1,,4\nInf, ,NaN\n", "", "delimiter", ",", %! "emptyvalue", -10); %! assert (cell2mat (c), [-10, 1, -10, 4; Inf, -10, NaN, -10]); -%!test <42528> +%!test <*42528> +%!test <*42528> %! assert (textscan ("1i", ""){1}, 0+1i); %! C = textscan ("3, 2-4i, NaN\n -i, 1, 23.4+2.2i\n 1+1 1+1j", "", %! "delimiter", ","); @@ -1992,7 +2002,8 @@ %! assert (c{2}', [12, 22]); %! assert (c{3}', [13, 23]); -%!test <44750> +%!test <*44750> +%!test <*44750> %! c = textscan ("/home/foo/", "%s", "delimiter", "/", %! "MultipleDelimsAsOne", 1); %! assert (c{1}, {"home"; "foo"}); @@ -2014,7 +2025,8 @@ %! assert (c{1}, 32.5, 1e-5); ## Test various forms of string format specifiers -%!test <45712> +%!test <*45712> +%!test <*45712> %! str = "14 :1 z:2 z:3 z:5 z:11"; %! C = textscan (str, "%f %s %*s %3s %*3s %f", "delimiter", ":"); %! assert (C, {14, {"1 z"}, {"3 z"}, 11}); @@ -2103,7 +2115,8 @@ %! assert (C{1}, {"ab cd efg"; "a ce g"; " "}); %! assert (C{2}, {"1Any"; "2Trailing"; "3Junk"}); -%!assert <36464> (textscan ("1 2 3 4 5 6", "%*n%n%*[^\n]"){1}, 2); +%!assert <*36464> (textscan ("1 2 3 4 5 6", "%*n%n%*[^\n]"){1}, 2); +%!assert <*36464> (textscan ("1 2 3 4 5 6", "%*n%n%*[^\n]"){1}, 2); ## test %[]] and %[^]] %!test diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/graphics.cc --- a/libinterp/corefcn/graphics.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/graphics.cc Fri Jun 09 15:34:03 2017 -0400 @@ -7230,7 +7230,8 @@ } /* -%!test <45356> +%!test <*45356> +%!test <*45356> %! hf = figure ("visible", "off"); %! unwind_protect %! plot (1:10); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/hash.cc --- a/libinterp/corefcn/hash.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/hash.cc Fri Jun 09 15:34:03 2017 -0400 @@ -199,18 +199,26 @@ %! "417a81a538327af927da3e"]); ## Test special character behavior -%!assert <31689> (hash ("md2", "abc\0"), "5a636d615002a7874ac1c9e9a43361f7") -%!assert <31689> (hash ("md4", "abc\0"), "0ee5201897ecb206c4eaba1d2da5224d") -%!assert <31689> (hash ("md5", "abc\0"), "147a664a2ca9410911e61986d3f0d52a") -%!assert <31689> (hash ("sha1", "abc\0"), "686483805ac47ca14e03514f7481a7973b401762") -%!assert <31689> (hash ("sha224", "abc\0"), +%!assert <*31689> (hash ("md2", "abc\0"), "5a636d615002a7874ac1c9e9a43361f7") +%!assert <*31689> (hash ("md2", "abc\0"), "5a636d615002a7874ac1c9e9a43361f7") +%!assert <*31689> (hash ("md4", "abc\0"), "0ee5201897ecb206c4eaba1d2da5224d") +%!assert <*31689> (hash ("md4", "abc\0"), "0ee5201897ecb206c4eaba1d2da5224d") +%!assert <*31689> (hash ("md5", "abc\0"), "147a664a2ca9410911e61986d3f0d52a") +%!assert <*31689> (hash ("md5", "abc\0"), "147a664a2ca9410911e61986d3f0d52a") +%!assert <*31689> (hash ("sha1", "abc\0"), "686483805ac47ca14e03514f7481a7973b401762") +%!assert <*31689> (hash ("sha1", "abc\0"), "686483805ac47ca14e03514f7481a7973b401762") +%!assert <*31689> (hash ("sha224", "abc\0"), +%!assert <*31689> (hash ("sha224", "abc\0"), %! "fbc8e47920e108bb1d0b631d18b36ae9b1549d28362aa15ebe960cfb"); -%!assert <31689> (hash ("sha256", "abc\0"), +%!assert <*31689> (hash ("sha256", "abc\0"), +%!assert <*31689> (hash ("sha256", "abc\0"), %! "dc1114cd074914bd872cc1f9a23ec910ea2203bc79779ab2e17da25782a624fc"); -%!assert <31689> (hash ("sha384", "abc\0"), +%!assert <*31689> (hash ("sha384", "abc\0"), +%!assert <*31689> (hash ("sha384", "abc\0"), %! ["eba81f2dfba4ec60d3f786c89d91b08e6c0b63d55986874378e385", ... %! "e6fac587cce7a520ca9437290fe626cbf75c855e17"]); -%!assert <31689> (hash ("sha512", "abc\0"), +%!assert <*31689> (hash ("sha512", "abc\0"), +%!assert <*31689> (hash ("sha512", "abc\0"), %! ["7ce05eda233e545a2d5c626862a5ddaafb09b9d8ec3bec08aa458b", ... %! "7c9e7d939d84a57d5a20d8a9002983aabae2457b19c50ba326bf5b", ... %! "081f75b41342f42c3383"]); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/mappers.cc --- a/libinterp/corefcn/mappers.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/mappers.cc Fri Jun 09 15:34:03 2017 -0400 @@ -374,7 +374,8 @@ %! assert (atan (x), v, sqrt (eps ("single"))); ## Test large magnitude arguments (bug #44310, bug #45507) -%!test <44310> +%!test <*44310> +%!test <*44310> %! x = [1, -1, i, -i] .* 1e150; %! v = [pi/2, -pi/2, pi/2, -pi/2]; %! assert (real (atan (x)), v); @@ -409,7 +410,8 @@ %! assert (atanh (x), v, sqrt (eps ("single"))); ## Test large magnitude arguments (bug #44310, bug #45507) -%!test <44310> +%!test <*44310> +%!test <*44310> %! x = [1, -1, i, -i] .* 1e150; %! v = [pi/2, pi/2, pi/2, -pi/2]; %! assert (imag (atanh (x)), v); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/max.cc --- a/libinterp/corefcn/max.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/max.cc Fri Jun 09 15:34:03 2017 -0400 @@ -865,8 +865,10 @@ %! assert (max (x, 2.1i), sparse ([2.1i 2.1i 3 4])); ## Test for bug #40743 -%!assert <40743> (max (zeros (1,0), ones (1,1)), zeros (1,0)) -%!assert <40743> (max (sparse (zeros (1,0)), sparse (ones (1,1))), +%!assert <*40743> (max (zeros (1,0), ones (1,1)), zeros (1,0)) +%!assert <*40743> (max (zeros (1,0), ones (1,1)), zeros (1,0)) +%!assert <*40743> (max (sparse (zeros (1,0)), sparse (ones (1,1))), +%!assert <*40743> (max (sparse (zeros (1,0)), sparse (ones (1,1))), %! sparse (zeros (1,0))) %!error max () diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/rand.cc --- a/libinterp/corefcn/rand.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/rand.cc Fri Jun 09 15:34:03 2017 -0400 @@ -1166,7 +1166,8 @@ %!assert (length (randperm (20,10)), 10) ## Test biggish N -%!assert <39378> (length (randperm (30000^2, 100000)), 100000) +%!assert <*39378> (length (randperm (30000^2, 100000)), 100000) +%!assert <*39378> (length (randperm (30000^2, 100000)), 100000) %!test %! rand ("seed", 0); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/regexp.cc --- a/libinterp/corefcn/regexp.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/regexp.cc Fri Jun 09 15:34:03 2017 -0400 @@ -980,7 +980,8 @@ %! ## Parenthesis in named token (ie (int)) causes a problem %! assert (regexp ('qwe int asd', ['(?(int))'], 'names'), struct ('typestr', 'int')); -%!test <35683> +%!test <*35683> +%!test <*35683> %! ## Mix of named and unnamed tokens can cause segfault %! str = "abcde"; %! ptn = '(?a)(\w+)(?d\w+)'; @@ -1117,7 +1118,8 @@ %!assert (regexp ("\n", "\n"), 1) # Test escape sequences are silently converted -%!test <45407> +%!test <*45407> +%!test <*45407> %! assert (regexprep ('s', 's', 'x\.y'), 'x.y'); %! assert (regexprep ('s', '(s)', 'x\$1y'), 'x$1y'); %! assert (regexprep ('s', '(s)', 'x\\$1y'), 'x\sy'); diff -r 10248986f14c -r b6144e6dda9e libinterp/corefcn/svd.cc --- a/libinterp/corefcn/svd.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/corefcn/svd.cc Fri Jun 09 15:34:03 2017 -0400 @@ -352,7 +352,8 @@ %! assert (size (s), [0, 0]); %! assert (size (v), [0, 0]); -%!test <49309> +%!test <*49309> +%!test <*49309> %! [~,~,v] = svd ([1, 1, 1], 0); %! assert (size (v), [3 3]); %! [~,~,v] = svd ([1, 1, 1], "econ"); diff -r 10248986f14c -r b6144e6dda9e libinterp/dldfcn/chol.cc --- a/libinterp/dldfcn/chol.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/dldfcn/chol.cc Fri Jun 09 15:34:03 2017 -0400 @@ -339,7 +339,8 @@ %! assert (pd, pv) %! assert (qv, [1 2]) -%!testif HAVE_CHOLMOD <42587> +%!testif HAVE_CHOLMOD <*42587> +%!testif HAVE_CHOLMOD <*42587> %! A = sparse ([1 0 8;0 1 8;8 8 1]); %! [Q, p] = chol (A); %! assert (p != 0); diff -r 10248986f14c -r b6144e6dda9e libinterp/dldfcn/symbfact.cc --- a/libinterp/dldfcn/symbfact.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/dldfcn/symbfact.cc Fri Jun 09 15:34:03 2017 -0400 @@ -406,7 +406,8 @@ %! [~, ~, ~, ~, l] = symbfact (A, "sym", "lower"); %! assert (l, sparse (tril (true (3)))); -%!testif HAVE_CHOLMOD <42587> +%!testif HAVE_CHOLMOD <*42587> +%!testif HAVE_CHOLMOD <*42587> %! ## singular matrix %! A = sparse ([1 0 8;0 1 8;8 8 1]); %! [count, h, parent, post, r] = symbfact (A); diff -r 10248986f14c -r b6144e6dda9e libinterp/octave-value/ov-cx-diag.cc --- a/libinterp/octave-value/ov-cx-diag.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/octave-value/ov-cx-diag.cc Fri Jun 09 15:34:03 2017 -0400 @@ -252,5 +252,6 @@ } /* -%!assert <36368> (diag ([1+i, 1-i])^2 , diag ([2i, -2i]), 4*eps) +%!assert <*36368> (diag ([1+i, 1-i])^2 , diag ([2i, -2i]), 4*eps) +%!assert <*36368> (diag ([1+i, 1-i])^2 , diag ([2i, -2i]), 4*eps) */ diff -r 10248986f14c -r b6144e6dda9e libinterp/octave-value/ov-fcn-handle.cc --- a/libinterp/octave-value/ov-fcn-handle.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/octave-value/ov-fcn-handle.cc Fri Jun 09 15:34:03 2017 -0400 @@ -1294,7 +1294,8 @@ } /* -%!test <33857> +%!test <*33857> +%!test <*33857> %! a = 2; %! f = @(x) a + x; %! g = @(x) 2 * x; @@ -1346,7 +1347,8 @@ %! endif %!endfunction -%!test <35876> +%!test <*35876> +%!test <*35876> %! a = 2; %! f = @(x) a + x; %! g = @(x) 2 * x; diff -r 10248986f14c -r b6144e6dda9e libinterp/octave-value/ov-java.cc --- a/libinterp/octave-value/ov-java.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/octave-value/ov-java.cc Fri Jun 09 15:34:03 2017 -0400 @@ -3223,7 +3223,8 @@ %! assert (javaMethod ("binarySearch", "java.util.Arrays", uint16 ([90 100 128]), uint16 (128)), 2); ## Check we can create objects that wrap java literals -%!testif HAVE_JAVA; usejava ("jvm") <38821> +%!testif HAVE_JAVA; usejava ("jvm") <*38821> +%!testif HAVE_JAVA; usejava ("jvm") <*38821> %! assert (class (javaObject ("java.lang.Byte", uint8 (1))), "java.lang.Byte"); %! assert (class (javaObject ("java.lang.Byte", int8 (1))), "java.lang.Byte"); %! assert (class (javaObject ("java.lang.Short", uint16 (1))), "java.lang.Short"); @@ -3234,7 +3235,8 @@ %! assert (class (javaObject ("java.lang.Long", int64 (1))), "java.lang.Long"); ## Test for automatic conversion of specific numeric classes -%!testif HAVE_JAVA; usejava ("jvm") <48013> +%!testif HAVE_JAVA; usejava ("jvm") <*48013> +%!testif HAVE_JAVA; usejava ("jvm") <*48013> %! assert (javaMethod ("valueOf", "java.lang.Byte", int8 (1)), 1) %! assert (javaMethod ("valueOf", "java.lang.Short", int16 (1)), 1) %! assert (javaMethod ("valueOf", "java.lang.Integer", int32 (1)), 1) @@ -3245,7 +3247,8 @@ %! assert (class (javaMethod ("valueOf", "java.math.BigInteger", int64 (1))), "java.math.BigInteger") ## Automatic conversion from string cell array into String[] -%!testif HAVE_JAVA; usejava ("jvm") <45290> +%!testif HAVE_JAVA; usejava ("jvm") <*45290> +%!testif HAVE_JAVA; usejava ("jvm") <*45290> %! assert (javaMethod ("binarySearch", "java.util.Arrays", {"aaa", "bbb", "ccc", "zzz"}, "aaa"), 0); %! assert (javaMethod ("binarySearch", "java.util.Arrays", {"aaa", "bbb", "ccc", "zzz"}, "zzz"), 3); %! assert (javaMethod ("binarySearch", "java.util.Arrays", {"aaa", "bbb", "ccc", "zzz"}, "hhh") < 0); diff -r 10248986f14c -r b6144e6dda9e libinterp/parse-tree/pt-mat.cc --- a/libinterp/parse-tree/pt-mat.cc Fri Jun 09 14:06:41 2017 -0400 +++ b/libinterp/parse-tree/pt-mat.cc Fri Jun 09 15:34:03 2017 -0400 @@ -343,7 +343,8 @@ %!assert (class ([cell(1), struct("foo", "bar")]), "cell") %!error [struct("foo", "bar"), cell(1)] -%!test <39041> assert (class ([cell(0), struct()]), "cell") +%!test <*39041> assert (class ([cell(0), struct()]), "cell") +%!test <*39041> assert (class ([cell(0), struct()]), "cell") %!test <51086> assert (class ([struct(), cell(0)]), "struct") %!assert ([,1], 1) diff -r 10248986f14c -r b6144e6dda9e scripts/general/accumarray.m --- a/scripts/general/accumarray.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/accumarray.m Fri Jun 09 15:34:03 2017 -0400 @@ -440,7 +440,8 @@ %!error (accumarray ([1,2,3],1:2)) ## Handle empty arrays -%!test <47287> +%!test <*47287> +%!test <*47287> %! ## min, max, and sum are special cases within accumarray so test them. %! funcs = {@(x) length (x) > 1, @min, @max, @sum}; %! for idx = 1:numel (funcs) diff -r 10248986f14c -r b6144e6dda9e scripts/general/bitset.m --- a/scripts/general/bitset.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/bitset.m Fri Jun 09 15:34:03 2017 -0400 @@ -101,7 +101,8 @@ %! endfor %! endfor -%!assert <36458> (bitset (uint8 ([1, 2;3 4]), 1, [0 1; 0 1]), +%!assert <*36458> (bitset (uint8 ([1, 2;3 4]), 1, [0 1; 0 1]), +%!assert <*36458> (bitset (uint8 ([1, 2;3 4]), 1, [0 1; 0 1]), %! uint8 ([0, 3; 2 5])) %!error bitset (1) diff -r 10248986f14c -r b6144e6dda9e scripts/general/inputParser.m --- a/scripts/general/inputParser.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/inputParser.m Fri Jun 09 15:34:03 2017 -0400 @@ -658,7 +658,8 @@ %! {"file", "foo", 80, true, "circle"}); ## We must not perform validation of default values -%!test <45837> +%!test <*45837> +%!test <*45837> %! p = inputParser; %! p.addParameter ("Dir", [], @ischar); %! p.parse (); @@ -744,7 +745,8 @@ ## This behaviour means that a positional option can never be a string ## that is the name of a parameter key. This is required for Matlab ## compatibility. -%!test <50752> +%!test <*50752> +%!test <*50752> %! p = inputParser (); %! p.addOptional ("op1", "val"); %! p.addParameter ("line", "tree"); @@ -784,7 +786,8 @@ %! fail ('p.parse ("line", "line", 89)', %! "non-string for Parameter name or Switch") -%!test <50752> +%!test <*50752> +%!test <*50752> %! ## This fails in Matlab but works in Octave. It is a bug there %! ## that we do not replicate. %! p = inputParser (); @@ -793,7 +796,8 @@ %! p.parse ("line"); %! assert (p.Results, struct ("op1", "line", "line", "circle")) -%!test <50752> +%!test <*50752> +%!test <*50752> %! p = inputParser; %! p.addOptional ("op1", "val1"); %! p.addSwitch ("line"); diff -r 10248986f14c -r b6144e6dda9e scripts/general/interp2.m --- a/scripts/general/interp2.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/interp2.m Fri Jun 09 15:34:03 2017 -0400 @@ -519,11 +519,14 @@ %! assert (interp2 (X, 2.5, 2.5, "nearest"), 3); ## re-order monotonically decreasing -%!assert <41838> (interp2 ([1 2 3], [3 2 1], magic (3), 2.5, 3), 3.5) -%!assert <41838> (interp2 ([3 2 1], [1 2 3], magic (3), 1.5, 1), 3.5) +%!assert <*41838> (interp2 ([1 2 3], [3 2 1], magic (3), 2.5, 3), 3.5) +%!assert <*41838> (interp2 ([1 2 3], [3 2 1], magic (3), 2.5, 3), 3.5) +%!assert <*41838> (interp2 ([3 2 1], [1 2 3], magic (3), 1.5, 1), 3.5) +%!assert <*41838> (interp2 ([3 2 1], [1 2 3], magic (3), 1.5, 1), 3.5) ## Linear interpretation with vector XI doesn't lead to matrix output -%!assert <49506> (interp2 ([2 3], [2 3 4], [1 2; 3 4; 5 6], [2 3], 3, "linear"), [3 4]) +%!assert <*49506> (interp2 ([2 3], [2 3 4], [1 2; 3 4; 5 6], [2 3], 3, "linear"), [3 4]) +%!assert <*49506> (interp2 ([2 3], [2 3 4], [1 2; 3 4; 5 6], [2 3], 3, "linear"), [3 4]) %!shared z, zout, tol %! z = [1 3 5; 3 5 7; 5 7 9]; diff -r 10248986f14c -r b6144e6dda9e scripts/general/interpft.m --- a/scripts/general/interpft.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/interpft.m Fri Jun 09 15:34:03 2017 -0400 @@ -123,7 +123,8 @@ %!assert (interpft ([y,y],n), [y,y], 20*eps) ## Test case with complex input -%!test <39566> +%!test <*39566> +%!test <*39566> %! x = (1 + j) * [1:4]'; %! y = ifft ([15 + 15*j; -6; -1.5 - 1.5*j; 0; -1.5 - 1.5*j; -6*j]); %! assert (interpft (x, 6), y, 10*eps); diff -r 10248986f14c -r b6144e6dda9e scripts/general/num2str.m --- a/scripts/general/num2str.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/num2str.m Fri Jun 09 15:34:03 2017 -0400 @@ -247,9 +247,11 @@ %! assert (num2str (1e23), "100000000000000000000000"); ## Test for extra rows generated from newlines in format -%!assert <44864> (rows (num2str (magic (3), "%3d %3d %3d\n")), 3) +%!assert <*44864> (rows (num2str (magic (3), "%3d %3d %3d\n")), 3) +%!assert <*44864> (rows (num2str (magic (3), "%3d %3d %3d\n")), 3) -%!assert <45174> (num2str ([65 66 67], "%s"), "ABC") +%!assert <*45174> (num2str ([65 66 67], "%s"), "ABC") +%!assert <*45174> (num2str ([65 66 67], "%s"), "ABC") %!error num2str () %!error num2str (1, 2, 3) diff -r 10248986f14c -r b6144e6dda9e scripts/general/postpad.m --- a/scripts/general/postpad.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/postpad.m Fri Jun 09 15:34:03 2017 -0400 @@ -106,7 +106,8 @@ %!assert (postpad ([1; 2], 2, 3, 2), [1 3; 2 3]) %! ## Test with string concatenation -%!assert <44162> (postpad ("Octave", 16, "x"), "Octavexxxxxxxxxx") +%!assert <*44162> (postpad ("Octave", 16, "x"), "Octavexxxxxxxxxx") +%!assert <*44162> (postpad ("Octave", 16, "x"), "Octavexxxxxxxxxx") %!assert (postpad ("Octave", 4), "Octa") %!error postpad () diff -r 10248986f14c -r b6144e6dda9e scripts/general/prepad.m --- a/scripts/general/prepad.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/prepad.m Fri Jun 09 15:34:03 2017 -0400 @@ -109,7 +109,8 @@ %!assert (prepad ([1;2], 2, 2, 3), reshape ([2;2;1;2], 2, 1, 2)) %! ## Test with string concatenation -%!assert <44162> (prepad ("Octave", 16, "x"), "xxxxxxxxxxOctave") +%!assert <*44162> (prepad ("Octave", 16, "x"), "xxxxxxxxxxOctave") +%!assert <*44162> (prepad ("Octave", 16, "x"), "xxxxxxxxxxOctave") %!assert (prepad ("Octave", 4), "tave") ## FIXME: We need tests for multidimensional arrays. diff -r 10248986f14c -r b6144e6dda9e scripts/general/rat.m --- a/scripts/general/rat.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/general/rat.m Fri Jun 09 15:34:03 2017 -0400 @@ -159,7 +159,8 @@ %! assert (n, [1, 3, 1]); %! assert (d, [2, 10, 3]); -%!assert <43374> (eval (rat (0.75)), [0.75]) +%!assert <*43374> (eval (rat (0.75)), [0.75]) +%!assert <*43374> (eval (rat (0.75)), [0.75]) %!error rat () %!error rat (1, 2, 3) diff -r 10248986f14c -r b6144e6dda9e scripts/geometry/rectint.m --- a/scripts/geometry/rectint.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/geometry/rectint.m Fri Jun 09 15:34:03 2017 -0400 @@ -94,10 +94,14 @@ %!assert (rectint ([0 0 1 1;0.5 0.5 1 1;-1 -1 2 2], [1 1 2 2]), [0;0.25;0]) %!assert (rectint ([1 1 2 2], [0 0 1 1;0.5 0.5 1 1;-1 -1 2 2]), [0 0.25 0]) -%!assert <44904> (rectint ([0 0 5 5], [6 6 5 5]), 0) -%!assert <44904> (rectint ([0 0 5 5], [0 6 5 5]), 0) -%!assert <44904> (rectint ([0 0 5 5], [6 0 5 5]), 0) -%!assert <44904> (rectint ([0 0 0 5 5 5], [0 0 6 5 5 5]), 0) +%!assert <*44904> (rectint ([0 0 5 5], [6 6 5 5]), 0) +%!assert <*44904> (rectint ([0 0 5 5], [6 6 5 5]), 0) +%!assert <*44904> (rectint ([0 0 5 5], [0 6 5 5]), 0) +%!assert <*44904> (rectint ([0 0 5 5], [0 6 5 5]), 0) +%!assert <*44904> (rectint ([0 0 5 5], [6 0 5 5]), 0) +%!assert <*44904> (rectint ([0 0 5 5], [6 0 5 5]), 0) +%!assert <*44904> (rectint ([0 0 0 5 5 5], [0 0 6 5 5 5]), 0) +%!assert <*44904> (rectint ([0 0 0 5 5 5], [0 0 6 5 5 5]), 0) ## Test volumes %!shared r1, r2, r3, r4, r5 diff -r 10248986f14c -r b6144e6dda9e scripts/geometry/voronoi.m --- a/scripts/geometry/voronoi.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/geometry/voronoi.m Fri Jun 09 15:34:03 2017 -0400 @@ -200,19 +200,22 @@ %! assert (vx(2,:), zeros (1, columns (vx)), eps); %! assert (vy(2,:), zeros (1, columns (vy)), eps); -%!testif HAVE_QHULL <40996> +%!testif HAVE_QHULL <*40996> +%!testif HAVE_QHULL <*40996> %! ## Special case of just 2 points %! x = [0 1]; y = [1 0]; %! [vx, vy] = voronoi (x,y); %! assert (vx, [-0.7; 1.7], eps); %! assert (vy, [-0.7; 1.7], eps); -%!testif HAVE_QHULL <38295> +%!testif HAVE_QHULL <*38295> +%!testif HAVE_QHULL <*38295> %! x = [1,2,3]; y = [2,3,1]; %! [vx, vy] = voronoi (x,y); %! assert (columns (vx), 3); -%!testif HAVE_QHULL <37270> +%!testif HAVE_QHULL <*37270> +%!testif HAVE_QHULL <*37270> %! ## Duplicate points can cause an internal error %! x = [1,2,3, 3]; y = [2,3,1, 1]; %! [vx, vy] = voronoi (x,y); diff -r 10248986f14c -r b6144e6dda9e scripts/image/image.m --- a/scripts/image/image.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/image/image.m Fri Jun 09 15:34:03 2017 -0400 @@ -228,7 +228,8 @@ %! title ("image (-x, -y, img)"); ## test hidden properties x/ydatamode -%!test <42121> +%!test <*42121> +%!test <*42121> %! hf = figure ("visible", "off"); %! unwind_protect %! nx = 64; ny = 64; diff -r 10248986f14c -r b6144e6dda9e scripts/image/imwrite.m --- a/scripts/image/imwrite.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/image/imwrite.m Fri Jun 09 15:34:03 2017 -0400 @@ -230,7 +230,8 @@ %!endfunction ## BMP images must be saved uncompressed by default -%!testif HAVE_MAGICK <45565> +%!testif HAVE_MAGICK <*45565> +%!testif HAVE_MAGICK <*45565> %! assert (get_bmp_compression ("", [], "BMP"), 0); %! assert (get_bmp_compression ("", [], "bmp"), 0); %! assert (get_bmp_compression (".BMP"), 0); diff -r 10248986f14c -r b6144e6dda9e scripts/io/importdata.m --- a/scripts/io/importdata.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/io/importdata.m Fri Jun 09 15:34:03 2017 -0400 @@ -529,7 +529,8 @@ %! assert (d, "\t"); %! assert (h, 0); -%!test <43393> +%!test <*43393> +%!test <*43393> %! ## Distinguish double from complex when no delimiter is supplied %! fn = tmpnam (); %! fid = fopen (fn, "w"); diff -r 10248986f14c -r b6144e6dda9e scripts/io/strread.m --- a/scripts/io/strread.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/io/strread.m Fri Jun 09 15:34:03 2017 -0400 @@ -894,7 +894,8 @@ %! "commentstyle", "shell"), ... %! {"Hello"; "World!"}); -%!test <49454> +%!test <*49454> +%!test <*49454> %! assert (strread ("hello%foo\nworld, another%bar\r\nday", "%s", ... %! "commentstyle", "matlab", "delimiter", " ,"),... %! {"hello"; "world"; "another"; "day"}); @@ -923,13 +924,15 @@ %! assert (a, int32 (10)); %! assert (b, {"a"}); -%!test <33536> +%!test <*33536> +%!test <*33536> %! [a, b, c] = strread ("1,,2", "%s%s%s", "delimiter", ","); %! assert (a{1}, "1"); %! assert (b{1}, ""); %! assert (c{1}, "2"); -%!test <33536> +%!test <*33536> +%!test <*33536> %!test %! a = strread ("[SomeText]", "[%s", "delimiter", "]"); %! assert (a{1}, "SomeText"); @@ -984,7 +987,8 @@ %! assert (c', [13, 24, 34]); %! assert (d', [15, 25, 35]); -%!assert <44750> (strread ('/home/foo/','%s','delimiter','/','MultipleDelimsAsOne',1), +%!assert <*44750> (strread ('/home/foo/','%s','delimiter','/','MultipleDelimsAsOne',1), +%!assert <*44750> (strread ('/home/foo/','%s','delimiter','/','MultipleDelimsAsOne',1), %! {"home"; "foo"}) ## delimiter as sq_string and dq_string @@ -1041,13 +1045,15 @@ %! assert (a, NaN); %! assert (b, NaN); -%!test <35999> +%!test <*35999> +%!test <*35999> %! [a, b, c] = strread ("", "%f"); %! assert (isempty (a)); %! assert (isempty (b)); %! assert (isempty (c)); -%!test <37023> +%!test <*37023> +%!test <*37023> %! [a, b] = strread (" 1. 1 \n 2 3 \n", "%f %f", "endofline", "\n"); %! assert (a, [1; 2], 1e-15); %! assert (b, [1; 3], 1e-15); @@ -1057,28 +1063,32 @@ %! [NaN; 2; NaN; 4; 5; NaN; 7]) ## Test #1 bug #42609 -%!test <42609> +%!test <*42609> +%!test <*42609> %! [a, b, c] = strread ("1 2 3\n4 5 6\n7 8 9\n", "%f %f %f\n"); %! assert (a, [1; 4; 7]); %! assert (b, [2; 5; 8]); %! assert (c, [3; 6; 9]); ## Test #2 bug #42609 -%!test <42609> +%!test <*42609> +%!test <*42609> %! [a, b, c] = strread ("1 2\n3\n4 5\n6\n7 8\n9\n", "%f %f\n%f"); %! assert (a, [1;4;7]); %! assert (b, [2; 5; 8]); %! assert (c, [3; 6; 9]); ## Test #3 bug #42609 -%!test <42609> +%!test <*42609> +%!test <*42609> %! [a, b, c] = strread ("1 2 3\n4 5 6\n7 8 9\n", '%f %f %f\n'); %! assert (a, [1; 4; 7]); %! assert (b, [2; 5; 8]); %! assert (c, [3; 6; 9]); ## Test #4 bug #42609 -%!test <42609> +%!test <*42609> +%!test <*42609> %! [a, b, c] = strread ("1 2\n3\n4 5\n6\n7 8\n9\n", '%f %f\n%f'); %! assert (a, [1;4;7]); %! assert (b, [2; 5; 8]); @@ -1107,7 +1117,8 @@ %!assert (strread ("Total: 32.5 % (of cm values)","Total: %f % (of cm values)"), 32.5, 1e-5) ## Test various forms of string format specifiers -%!test <45712> +%!test <*45712> +%!test <*45712> %! str = "14 :1 z:2 z:3 z:5 z:11"; %! [a, b, c, d] = strread (str, "%f %s %*s %3s %*3s %f", "delimiter", ":"); %! assert ({a, b, c, d}, {14, {"1 z"}, {"3 z"}, 11}); diff -r 10248986f14c -r b6144e6dda9e scripts/io/textread.m --- a/scripts/io/textread.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/io/textread.m Fri Jun 09 15:34:03 2017 -0400 @@ -476,7 +476,8 @@ #%! assert (A, [0 2 0 4; 5 0 0 0], 1e-6); ### Test endofline -#%!test <45046> +#%!test <*45046> +#%!test <*45046> #%! f = tempname (); #%! fid = fopen (f, "w"); #%! fprintf (fid, "a\rb\rc"); @@ -490,7 +491,8 @@ #%! unlink (f); ### Properly process single-quoted EOL args -#%!test <46477> +#%!test <*46477> +#%!test <*46477> #%! f = tempname (); #%! fid = fopen (f, "w"); #%! fprintf (fid, "hello, world!"); diff -r 10248986f14c -r b6144e6dda9e scripts/miscellaneous/orderfields.m --- a/scripts/miscellaneous/orderfields.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/miscellaneous/orderfields.m Fri Jun 09 15:34:03 2017 -0400 @@ -195,7 +195,8 @@ %! assert (aa(2).y{1}, 6); ## Corner case of empty struct -%!assert <40224> (orderfields (struct ()), struct ()) +%!assert <*40224> (orderfields (struct ()), struct ()) +%!assert <*40224> (orderfields (struct ()), struct ()) %!test %! s(2,2).a = 1; %! s(1,1).b = 2; diff -r 10248986f14c -r b6144e6dda9e scripts/optimization/qp.m --- a/scripts/optimization/qp.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/optimization/qp.m Fri Jun 09 15:34:03 2017 -0400 @@ -421,7 +421,8 @@ ## Test infeasible initial guess -%!testif HAVE_GLPK <40536> +%!testif HAVE_GLPK <*40536> +%!testif HAVE_GLPK <*40536> %! %! H = 1; q = 0; # objective: x -> 0.5 x^2 %! A = 1; lb = 1; ub = +inf; # constraint: x >= 1 diff -r 10248986f14c -r b6144e6dda9e scripts/plot/appearance/axis.m --- a/scripts/plot/appearance/axis.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/plot/appearance/axis.m Fri Jun 09 15:34:03 2017 -0400 @@ -673,7 +673,8 @@ %! end_unwind_protect ## Test 'axis tight' with differently oriented, differently numbered data vecs -%!test <40036> +%!test <*40036> +%!test <*40036> %! hf = figure ("visible", "off"); %! unwind_protect %! Z = peaks (linspace (-3, 3, 49), linspace (-2, 2, 29)); diff -r 10248986f14c -r b6144e6dda9e scripts/plot/appearance/grid.m --- a/scripts/plot/appearance/grid.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/plot/appearance/grid.m Fri Jun 09 15:34:03 2017 -0400 @@ -192,7 +192,8 @@ %! title ("Minor grid adapts to xticks (bug #45850)") ## linear scaling -%!test <48533> +%!test <*48533> +%!test <*48533> %! hf = figure ("visible", "off"); %! unwind_protect %! hax = axes (); @@ -251,7 +252,8 @@ %! end_unwind_protect ## semilog scaling -%!test <48533> +%!test <*48533> +%!test <*48533> %! hf = figure ("visible", "off"); %! unwind_protect %! hax = axes (); diff -r 10248986f14c -r b6144e6dda9e scripts/plot/appearance/legend.m --- a/scripts/plot/appearance/legend.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/plot/appearance/legend.m Fri Jun 09 15:34:03 2017 -0400 @@ -1629,7 +1629,8 @@ %! graphics_toolkit (toolkit); %! end_unwind_protect -%!test <42035> +%!test <*42035> +%!test <*42035> %! h = figure ("visible", "off"); %! unwind_protect %! hax1 = subplot (1,2,1); diff -r 10248986f14c -r b6144e6dda9e scripts/plot/appearance/title.m --- a/scripts/plot/appearance/title.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/plot/appearance/title.m Fri Jun 09 15:34:03 2017 -0400 @@ -113,7 +113,8 @@ %! close (hf); %! end_unwind_protect -%!test <49469> +%!test <*49469> +%!test <*49469> %! hf = figure ("visible", "off"); %! unwind_protect %! ht = title ("Test FontSize Property"); diff -r 10248986f14c -r b6144e6dda9e scripts/plot/draw/hist.m --- a/scripts/plot/draw/hist.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/plot/draw/hist.m Fri Jun 09 15:34:03 2017 -0400 @@ -218,10 +218,13 @@ %! endfor %!assert (hist (1,1), 1) %!assert (size (hist (randn (750,240), 200)), [200,240]) -%!assert <42394> (isempty (hist (rand (10,2), 0:5, 1)), false) -%!assert <42394> (isempty (hist (rand (10,2), 0:5, [1 1])), false) +%!assert <*42394> (isempty (hist (rand (10,2), 0:5, 1)), false) +%!assert <*42394> (isempty (hist (rand (10,2), 0:5, 1)), false) +%!assert <*42394> (isempty (hist (rand (10,2), 0:5, [1 1])), false) +%!assert <*42394> (isempty (hist (rand (10,2), 0:5, [1 1])), false) -%!test <47707> +%!test <*47707> +%!test <*47707> %! y = [1 9 2 2 9 3 8 9 1 7 1 1 3 2 4 4 8 2 1 9 4 1 ... %! 2 3 1 1 6 5 5 3 9 9 1 1 8 7 7 2 4 1]; %! [n, x] = hist (y, 10); diff -r 10248986f14c -r b6144e6dda9e scripts/polynomial/residue.m --- a/scripts/polynomial/residue.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/polynomial/residue.m Fri Jun 09 15:34:03 2017 -0400 @@ -406,7 +406,8 @@ %! assert (ar, a, 1e-12); ## The following test is due to Bernard Grung -%!test <34266> +%!test <*34266> +%!test <*34266> %! z1 = 7.0372976777e6; %! p1 = -3.1415926536e9; %! p2 = -4.9964813512e8; @@ -424,7 +425,8 @@ %! assert (br, [0,0,b], 1e-7); %! assert (ar, a, 1e-8); -%!test <49291> +%!test <*49291> +%!test <*49291> %! rf = [1e3, 2e3, 1e3, 2e3]; %! cf = [316.2e-9, 50e-9, 31.6e-9, 5e-9]; %! [num, den] = residue (1./cf,-1./(rf.*cf),0); @@ -432,7 +434,8 @@ %! assert (numel (den), 5); %! assert (den(1), 1); -%!test <51148> +%!test <*51148> +%!test <*51148> %! r = [1.0000e+18, 3.5714e+12, 2.2222e+11, 2.1739e+10]; %! pin = [-1.9231e+15, -1.6234e+09, -4.1152e+07, -1.8116e+06]; %! k = 0; diff -r 10248986f14c -r b6144e6dda9e scripts/set/setdiff.m --- a/scripts/set/setdiff.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/set/setdiff.m Fri Jun 09 15:34:03 2017 -0400 @@ -115,12 +115,18 @@ %! assert (c, a(ia)); ## Test output orientation compatibility -%!assert <42577> (setdiff ([1:5], 2), [1,3,4,5]) -%!assert <42577> (setdiff ([1:5]', 2), [1;3;4;5]) -%!assert <42577> (setdiff ([1:5], [2:3]), [1,4,5]) -%!assert <42577> (setdiff ([1:5], [2:3]'), [1,4,5]) -%!assert <42577> (setdiff ([1:5]', [2:3]), [1;4;5]) -%!assert <42577> (setdiff ([1:5]', [2:3]'), [1;4;5]) +%!assert <*42577> (setdiff ([1:5], 2), [1,3,4,5]) +%!assert <*42577> (setdiff ([1:5], 2), [1,3,4,5]) +%!assert <*42577> (setdiff ([1:5]', 2), [1;3;4;5]) +%!assert <*42577> (setdiff ([1:5]', 2), [1;3;4;5]) +%!assert <*42577> (setdiff ([1:5], [2:3]), [1,4,5]) +%!assert <*42577> (setdiff ([1:5], [2:3]), [1,4,5]) +%!assert <*42577> (setdiff ([1:5], [2:3]'), [1,4,5]) +%!assert <*42577> (setdiff ([1:5], [2:3]'), [1,4,5]) +%!assert <*42577> (setdiff ([1:5]', [2:3]), [1;4;5]) +%!assert <*42577> (setdiff ([1:5]', [2:3]), [1;4;5]) +%!assert <*42577> (setdiff ([1:5]', [2:3]'), [1;4;5]) +%!assert <*42577> (setdiff ([1:5]', [2:3]'), [1;4;5]) %!test %! a = rand (3,3,3); diff -r 10248986f14c -r b6144e6dda9e scripts/signal/fftshift.m --- a/scripts/signal/fftshift.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/signal/fftshift.m Fri Jun 09 15:34:03 2017 -0400 @@ -139,7 +139,8 @@ %! assert (fftshift (y), "bcdefga"); ## Test N-dimensional input -%!test <45207> +%!test <*45207> +%!test <*45207> %! x = [0:3]; %! x = x + x' + reshape (x, [1 1 4]); %! y1 = [4 5 2 3; 5 6 3 4; 2 3 0 1; 3 4 1 2]; diff -r 10248986f14c -r b6144e6dda9e scripts/signal/ifftshift.m --- a/scripts/signal/ifftshift.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/signal/ifftshift.m Fri Jun 09 15:34:03 2017 -0400 @@ -124,7 +124,8 @@ %! assert (ifftshift (y), "defgabc"); ## Test N-dimensional input -%!test <45207> +%!test <*45207> +%!test <*45207> %! x = [0:3]; %! x = x + x' + reshape (x, [1 1 4]); %! y1 = [4 5 2 3; 5 6 3 4; 2 3 0 1; 3 4 1 2]; diff -r 10248986f14c -r b6144e6dda9e scripts/specfun/nthroot.m --- a/scripts/specfun/nthroot.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/specfun/nthroot.m Fri Jun 09 15:34:03 2017 -0400 @@ -94,7 +94,8 @@ %!assert (nthroot (-Inf, -7), 0) ## This should not generate a division by zero warning -%!test <43492> +%!test <*43492> +%!test <*43492> %! warnmsg = lastwarn (); %! assert (nthroot (0, 2), 0); %! assert (lastwarn (), warnmsg); diff -r 10248986f14c -r b6144e6dda9e scripts/special-matrix/magic.m --- a/scripts/special-matrix/magic.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/special-matrix/magic.m Fri Jun 09 15:34:03 2017 -0400 @@ -88,7 +88,8 @@ ## Not a magic square but we must return something (bug #46672). ## While one day we may change the actual return of magic (2), ## this properties still must be true. -%!test <46672> +%!test <*46672> +%!test <*46672> %! m = magic (2); %! assert (size (m), [2 2]); %! assert (unique (m), [1; 2; 3; 4]); diff -r 10248986f14c -r b6144e6dda9e scripts/statistics/base/median.m --- a/scripts/statistics/base/median.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/statistics/base/median.m Fri Jun 09 15:34:03 2017 -0400 @@ -118,8 +118,10 @@ %! b = rand (3,4,6,5); %! x = sort (a, 4); %! y = sort (b, 3); -%!assert <35679> (median (a, 4), x(:, :, :, 3)) -%!assert <35679> (median (b, 3), (y(:, :, 3, :) + y(:, :, 4, :))/2) +%!assert <*35679> (median (a, 4), x(:, :, :, 3)) +%!assert <*35679> (median (a, 4), x(:, :, :, 3)) +%!assert <*35679> (median (b, 3), (y(:, :, 3, :) + y(:, :, 4, :))/2) +%!assert <*35679> (median (b, 3), (y(:, :, 3, :) + y(:, :, 4, :))/2) ## Test non-floating point types %!assert (median ([true, false]), true) diff -r 10248986f14c -r b6144e6dda9e scripts/statistics/base/quantile.m --- a/scripts/statistics/base/quantile.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/statistics/base/quantile.m Fri Jun 09 15:34:03 2017 -0400 @@ -321,7 +321,8 @@ %! yexp = median (x, dim); %! assert (yobs, yexp); -%!assert <45455> (quantile ([1 3 2], 0.5, 1), [1 3 2]) +%!assert <*45455> (quantile ([1 3 2], 0.5, 1), [1 3 2]) +%!assert <*45455> (quantile ([1 3 2], 0.5, 1), [1 3 2]) ## Test input validation %!error quantile () diff -r 10248986f14c -r b6144e6dda9e scripts/strings/base2dec.m --- a/scripts/strings/base2dec.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/strings/base2dec.m Fri Jun 09 15:34:03 2017 -0400 @@ -121,7 +121,8 @@ %!assert (base2dec ("-1", 2), NaN) %!assert (base2dec ({"A1", "1A"}, 16), [161; 26]) -%!assert <35621> (base2dec (["0"; "1"], 2), [0; 1]) +%!assert <*35621> (base2dec (["0"; "1"], 2), [0; 1]) +%!assert <*35621> (base2dec (["0"; "1"], 2), [0; 1]) ## Test input validation %!error base2dec () diff -r 10248986f14c -r b6144e6dda9e scripts/strings/strcat.m --- a/scripts/strings/strcat.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/strings/strcat.m Fri Jun 09 15:34:03 2017 -0400 @@ -151,8 +151,10 @@ %!assert (all (strcmp (strcat ("a", {"bb", "ccc"}), {"abb", "accc"}))) ## test with a single string or cell input -%!assert <49094> (strcat ("foo "), "foo") -%!assert <49094> (strcat ({"foo"}), {"foo"}) +%!assert <*49094> (strcat ("foo "), "foo") +%!assert <*49094> (strcat ("foo "), "foo") +%!assert <*49094> (strcat ({"foo"}), {"foo"}) +%!assert <*49094> (strcat ({"foo"}), {"foo"}) %!assert (strcat (1), char (1)) %!assert (strcat (1, 2), strcat (char (1), char (2))) diff -r 10248986f14c -r b6144e6dda9e scripts/strings/strmatch.m --- a/scripts/strings/strmatch.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/strings/strmatch.m Fri Jun 09 15:34:03 2017 -0400 @@ -114,7 +114,8 @@ %!assert (strmatch ('', { '', '% comment', 'var a = 5', ''}, "exact"), [1,4]) ## Weird Matlab corner cases -%!test <49601> +%!test <*49601> +%!test <*49601> %! assert (strmatch (" ", " "), 1); %! assert (strmatch (" ", " "), 1); %! assert (strmatch (" ", " "), []); diff -r 10248986f14c -r b6144e6dda9e scripts/strings/strsplit.m --- a/scripts/strings/strsplit.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/strings/strsplit.m Fri Jun 09 15:34:03 2017 -0400 @@ -297,10 +297,13 @@ %! assert (strsplit ("aa", "a"), {"", ""}); %! assert (strsplit ("aaa", "a"), {"", ""}); -%!assert <44641> (strsplit ("xxx (strsplit ('xxx\yyy', '\'), {"xxx", "yyy"}) +%!assert <*44641> (strsplit ("xxx (strsplit ("xxx (strsplit ('xxx\yyy', '\'), {"xxx", "yyy"}) +%!assert <*44641> (strsplit ('xxx\yyy', '\'), {"xxx", "yyy"}) -%!assert <47403> (strsplit ('xxx+yyy', '+'), {"xxx", "yyy"}) +%!assert <*47403> (strsplit ('xxx+yyy', '+'), {"xxx", "yyy"}) +%!assert <*47403> (strsplit ('xxx+yyy', '+'), {"xxx", "yyy"}) ## Test input validation %!error strsplit () diff -r 10248986f14c -r b6144e6dda9e scripts/testfun/__run_test_suite__.m --- a/scripts/testfun/__run_test_suite__.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/testfun/__run_test_suite__.m Fri Jun 09 15:34:03 2017 -0400 @@ -21,7 +21,7 @@ ## Undocumented internal function. ## @end deftypefn -function [pass, fail, xfail, xbug, skip, rtskip] = __run_test_suite__ (fcndirs, fixedtestdirs) +function [pass, fail, xfail, xbug, skip, rtskip, regress] = __run_test_suite__ (fcndirs, fixedtestdirs) testsdir = __octave_config_info__ ("octtestsdir"); libinterptestdir = fullfile (testsdir, "libinterp"); @@ -53,29 +53,31 @@ error ("__run_test_suite__: could not open %s for writing", logfile); endif test ("", "explain", fid); - dp = dn = dxf = dxb = dsk = drtsk = 0; + dp = dn = dxf = dxb = dsk = drtsk = drgrs = 0; puts ("\nIntegrated test scripts:\n\n"); for i = 1:length (fcndirs) - [p, n, xf, xb, sk, rtsk] = run_test_script (fid, fcndirs{i}); + [p, n, xf, xb, sk, rtsk, rgrs] = run_test_script (fid, fcndirs{i}); dp += p; dn += n; dxf += xf; dxb += xb; dsk += sk; drtsk += rtsk; + drgrs += rgrs; endfor puts ("\nFixed test scripts:\n\n"); for i = 1:length (fixedtestdirs) - [p, n, xf, xb, sk, rtsk] = run_test_dir (fid, fixedtestdirs{i}); + [p, n, xf, xb, sk, rtsk, rgrs] = run_test_dir (fid, fixedtestdirs{i}); dp += p; dn += n; dxf += xf; dxb += xb; dsk += sk; drtsk += rtsk; + drgrs += rgrs; endfor puts ("\nSummary:\n\n"); - nfail = dn - dp - dxf - dxb; + nfail = dn - dp - dxf - dxb - drgrs; printf (" %-30s %6d\n", "PASS", dp); printf (" %-30s %6d\n", "FAIL", nfail); if (dxf > 0) @@ -84,6 +86,9 @@ if (dxb > 0) printf (" %-30s %6d\n", "XFAIL (reported bug)", dxb); endif + if (drgrs > 0) + printf (" %-30s %6d\n", "XFAIL (regression)", drgrs); + endif if (dsk > 0) printf (" %-30s %6d\n", "SKIPPED (feature)", dsk); endif @@ -139,6 +144,7 @@ xbug = dxb; skip = dsk; rtskip = drtsk; + regress = drgrs; endif endfunction @@ -148,11 +154,11 @@ printf (" %s %s", nm, filler); endfunction -function print_pass_fail (p, n, xf, xb, sk, rtsk) +function print_pass_fail (p, n, xf, xb, sk, rtsk, rgrs) - if ((n + sk + rtsk) > 0) + if ((n + sk + rtsk + rgrs) > 0) printf (" PASS %4d/%-4d", p, n); - nfail = n - p - xf - xb; + nfail = n - p - xf - xb - rgrs; if (nfail > 0) printf ("\n%71s %3d", "FAIL ", nfail); endif @@ -162,12 +168,15 @@ if (rtsk > 0) printf ("\n%71s %3d", "(run-time condition) SKIP ", rtsk); endif - if (xf > 0) - printf ("\n%71s %3d", "(expected failure) XFAIL", xf); + if (rgrs > 0) + printf ("\n%71s %3d", "(regression) XFAIL", rgrs); endif if (xb > 0) printf ("\n%71s %3d", "(reported bug) XFAIL", xb); endif + if (xf > 0) + printf ("\n%71s %3d", "(expected failure) XFAIL", xf); + endif endif puts ("\n"); @@ -208,23 +217,24 @@ endfunction -function [dp, dn, dxf, dxb, dsk, drtsk] = run_test_dir (fid, d) +function [dp, dn, dxf, dxb, dsk, drtsk, drgrs] = run_test_dir (fid, d) global files_with_tests; global files_with_no_tests; lst = dir (d); - dp = dn = dxf = dxb = dsk = drtsk = 0; + dp = dn = dxf = dxb = dsk = drtsk = drgrs = 0; for i = 1:length (lst) nm = lst(i).name; if (lst(i).isdir && nm(1) != "." && ! strcmp (nm, "private") && nm(1) != "@") - [p, n, xf, xb, sk, rtsk] = run_test_dir (fid, [d, filesep, nm]); + [p, n, xf, xb, sk, rtsk, rgrs] = run_test_dir (fid, [d, filesep, nm]); dp += p; dn += n; dxf += xf; dxb += xb; dsk += sk; drtsk += rtsk; + drgrs += rgrs; endif endfor @@ -238,8 +248,8 @@ ffnm = fullfile (d, nm); if (has_tests (ffnm)) print_test_file_name (nm); - [p, n, xf, xb, sk, rtsk] = test (nm, "quiet", fid); - print_pass_fail (p, n, xf, xb, sk, rtsk); + [p, n, xf, xb, sk, rtsk, rgrs] = test (nm, "quiet", fid); + print_pass_fail (p, n, xf, xb, sk, rtsk, rgrs); files_with_tests(end+1) = ffnm; else files_with_no_tests(end+1) = ffnm; @@ -250,6 +260,7 @@ dxb += xb; dsk += sk; drtsk += rtsk; + drgrs += rgrs; endif endfor unwind_protect_cleanup @@ -258,24 +269,25 @@ endfunction -function [dp, dn, dxf, dxb, dsk, drtsk] = run_test_script (fid, d) +function [dp, dn, dxf, dxb, dsk, drtsk, drgrs] = run_test_script (fid, d) global files_with_tests; global files_with_no_tests; global topsrcdir; global topbuilddir; lst = dir (d); - dp = dn = dxf = dxb = dsk = drtsk = 0; + dp = dn = dxf = dxb = dsk = drtsk = drgrs = 0; for i = 1:length (lst) nm = lst(i).name; if (lst(i).isdir && nm(1) != ".") - [p, n, xf, xb, sk, rtsk] = run_test_script (fid, [d, filesep, nm]); + [p, n, xf, xb, sk, rtsk, rgrs] = run_test_script (fid, [d, filesep, nm]); dp += p; dn += n; dxf += xf; dxb += xb; dsk += sk; drtsk += rtsk; + drgrs += rgrs; endif endfor @@ -296,14 +308,15 @@ tmp = strrep (f, [topsrcdir, filesep], ""); tmp = strrep (tmp, [topbuilddir, filesep], ""); print_test_file_name (tmp); - [p, n, xf, xb, sk, rtsk] = test (f, "quiet", fid); - print_pass_fail (p, n, xf, xb, sk, rtsk); + [p, n, xf, xb, sk, rtsk, rgrs] = test (f, "quiet", fid); + print_pass_fail (p, n, xf, xb, sk, rtsk, rgrs); dp += p; dn += n; dxf += xf; dxb += xb; dsk += sk; drtsk += rtsk; + drgrs += rgrs; files_with_tests(end+1) = f; else ## To reduce the list length, only mark .cc files that contain diff -r 10248986f14c -r b6144e6dda9e scripts/testfun/test.m --- a/scripts/testfun/test.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/testfun/test.m Fri Jun 09 15:34:03 2017 -0400 @@ -22,7 +22,7 @@ ## @deftypefnx {} {} test ("@var{name}", "quiet|normal|verbose", @var{fid}) ## @deftypefnx {} {} test ("@var{name}", "quiet|normal|verbose", @var{fname}) ## @deftypefnx {} {@var{success} =} test (@dots{}) -## @deftypefnx {} {[@var{n}, @var{nmax}, @var{nxfail}, @var{nbug}, @var{nskip}, @var{nrtskip}] =} test (@dots{}) +## @deftypefnx {} {[@var{n}, @var{nmax}, @var{nxfail}, @var{nbug}, @var{nskip}, @var{nrtskip}, @var{nregression}] =} test (@dots{}) ## @deftypefnx {} {[@var{code}, @var{idx}] =} test ("@var{name}", "grabdemo") ## @deftypefnx {} {} test ([], "explain", @var{fid}) ## @deftypefnx {} {} test ([], "explain", @var{fname}) @@ -83,8 +83,9 @@ ## the total number of tests in the file (@var{nmax}), the number of xtest ## failures (@var{nxfail}), the number of tests failed due known bugs ## (@var{nbug}), the number of tests skipped due to missing features -## (@var{nskip}), and the number of tests skipped due to run-time -## conditions (@var{nrtskip}) are returned. +## (@var{nskip}), the number of tests skipped due to run-time +## conditions (@var{nrtskip}), and the number of regressions +## (@var{nregression}) are returned. ## ## Example ## @@ -120,7 +121,7 @@ ## Shared variables are eval'ed into the current workspace and therefore might ## collide with the names used in the test.m function itself. -function [__n, __nmax, __nxfail, __nbug, __nskip, __nrtskip] = test (__name, __flag = "normal", __fid = []) +function [__n, __nmax, __nxfail, __nbug, __nskip, __nrtskip, __nregression] = test (__name, __flag = "normal", __fid = []) ## Output from test is prefixed by a "key" to quickly understand the issue. persistent __signal_fail = "!!!!! "; @@ -297,7 +298,7 @@ ## Process each block separately, initially with no shared variables. __tests = __successes = 0; - __xfail = __xbug = __xskip = __xrtskip = 0; + __xfail = __xbug = __xskip = __xrtskip = __xregression = 0; __shared = " "; __shared_r = " "; __clearfcn = ""; @@ -332,6 +333,7 @@ __istest = false; __isxtest = false; __bug_id = ""; + __fixed_bug = false; ### DEMO @@ -434,10 +436,17 @@ ## There is no processing to be done here, just skip to next block. __code = ""; -### ASSERT/FAIL +### ASSERT +### ASSERT +### FAIL +### FAIL +### +### BUG-ID is a bug number from the bug tracker. A prefix of '*' +### indicates a bug that has been fixed. Tests that fail for fixed +### bugs are reported as regressions. elseif (strcmp (__type, "assert") || strcmp (__type, "fail")) - [__bug_id, __code] = getbugid (__code); + [__bug_id, __code, __fixed_bug] = getbugid (__code); if (isempty (__bug_id)) __istest = true; else @@ -529,8 +538,8 @@ ### TESTIF HAVE_FEATURE ### TESTIF HAVE_FEATURE ; RUNTIME_CONDITION -### TESTIF HAVE_FEATURE -### TESTIF HAVE_FEATURE ; RUNTIME_CONDITION +### TESTIF HAVE_FEATURE +### TESTIF HAVE_FEATURE ; RUNTIME_CONDITION ### ### HAVE_FEATURE is a comma- or whitespace separated list of ### macro names that may be checked with __have_feature__. @@ -538,6 +547,10 @@ ### RUNTIME_CONDITION is an expression to evaluate to check ### whether some condition is met when the test is executed. For ### example, have_window_system. +### +### BUG-ID is a bug number from the bug tracker. A prefix of '*' +### indicates a bug that has been fixed. Tests that fail for fixed +### bugs are reported as regressions. elseif (strcmp (__type, "testif")) __e = regexp (__code, '.$', 'lineanchors', 'once'); @@ -550,6 +563,10 @@ __idx2 = index (__tmp, ">"); if (__idx2) __bug_id = __tmp(1:__idx2-1); + if (strncmp (__bug_id, "*", 1)) + __bug_id = __bug_id(2:end); + __fixed_bug = true; + endif __feat_line = __feat_line(1:__idx1-1); endif endif @@ -583,10 +600,14 @@ endif ### TEST -### TEST +### TEST +### +### BUG-ID is a bug number from the bug tracker. A prefix of '*' +### indicates a bug that has been fixed. Tests that fail for fixed +### bugs are reported as regressions. elseif (strcmp (__type, "test")) - [__bug_id, __code] = getbugid (__code); + [__bug_id, __code, __fixed_bug] = getbugid (__code); if (! isempty (__bug_id)) __isxtest = true; else @@ -594,11 +615,16 @@ endif ## Code will be evaluated below. -### XTEST +### XTEST +### XTEST +### +### BUG-ID is a bug number from the bug tracker. A prefix of '*' +### indicates a bug that has been fixed. Tests that fail for fixed +### bugs are reported as regressions. elseif (strcmp (__type, "xtest")) __isxtest = true; - [__bug_id, __code] = getbugid (__code); + [__bug_id, __code, __fixed_bug] = getbugid (__code); ## Code will be evaluated below. ### Comment block. @@ -636,14 +662,27 @@ __success = false; if (__isxtest) if (isempty (__bug_id)) - __xfail += 1; - __msg = "known failure"; + if (__fixed_bug) + __xregression += 1; + __msg = "regression"; + else + __xfail += 1; + __msg = "known failure"; + endif else - __xbug += 1; + if (__fixed_bug) + __xregression += 1; + else + __xbug += 1; + endif if (all (isdigit (__bug_id))) __bug_id = ["http://octave.org/testfailure/?" __bug_id]; endif - __msg = ["known bug: " __bug_id]; + if (__fixed_bug) + __msg = ["regression: " __bug_id]; + else + __msg = ["known bug: " __bug_id]; + endif endif else __msg = "test failed"; @@ -739,12 +778,13 @@ elseif (nargout == 1) __n = __all_success; else - __n = __successes; - __nmax = __tests; + __n = __successes; + __nmax = __tests; __nxfail = __xfail; - __nbug = __xbug; - __nskip = __xskip; + __nbug = __xbug; + __nskip = __xskip; __nrtskip = __xrtskip; + __nregression = __xregression; endif endfunction @@ -803,16 +843,21 @@ endfunction ## Strip from ' code'. -function [bug_id, rest] = getbugid (str) +function [bug_id, rest, fixed] = getbugid (str) bug_id = ""; - id = []; rest = str; + fixed = false; + str = trimleft (str); if (! isempty (str) && str(1) == "<") close = index (str, ">"); if (close) bug_id = str(2:close-1); + if (strncmp (bug_id, "*", 1)) + bug_id = bug_id(2:end); + fixed = true; + endif rest = str(close+1:end); endif endif diff -r 10248986f14c -r b6144e6dda9e scripts/time/datestr.m --- a/scripts/time/datestr.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/time/datestr.m Fri Jun 09 15:34:03 2017 -0400 @@ -332,7 +332,8 @@ %!test %! obs = toupper (datestr (testtime,16)); %! assert (obs, " 2:33 AM"); -%!test <48071> +%!test <*48071> +%!test <*48071> %! testtime2 = testtime; %! testtime2(4) = 15; %! obs = toupper (datestr (testtime2,16)); diff -r 10248986f14c -r b6144e6dda9e scripts/time/datevec.m --- a/scripts/time/datevec.m Fri Jun 09 14:06:41 2017 -0400 +++ b/scripts/time/datevec.m Fri Jun 09 15:34:03 2017 -0400 @@ -362,7 +362,8 @@ %! [2015,6,1,15,7,12.12]) ## Test structure of return value -%!test <42334> +%!test <*42334> +%!test <*42334> %! [~, ~, d] = datevec ([1 2; 3 4]); %! assert (d, [1 2; 3 4]);