bug #14573: varargout misworked when it was used in addition to fixed output arguments
[scilab.git] / scilab / modules / core / tests / nonreg_tests / bug_14573.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2017 - ESI - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10 //
11 // <-- Non-regression test for bug 14573 -->
12 //
13 //
14 // <-- Bugzilla URL -->
15 // http://bugzilla.scilab.org/14573
16 //
17 // <-- Short Description -->
18 // varargout misworked when it was used in addition to fixed output arguments.
19
20 //1 var + varargout
21 function [res, varargout] = test(a)
22   res = "abc";
23   varargout = list(%i);
24 endfunction
25
26 r = test();
27 assert_checkequal(r, "abc");
28
29 r = test(4.321);
30 assert_checkequal(r, "abc");
31
32 [r1, r2] = test(%pi);
33 assert_checkequal(r, "abc");
34 assert_checkequal(r2, %i);
35
36 err = execstr("[o1, o2, o3] = test(%pi);", "errcatch");
37 assert_checkfalse(err == 0);
38
39
40 //2 vars + varargout
41 function [res1, res2, varargout] = test2(a)
42   res1 = "abc";
43   res2 = "def";
44   varargout = list(%i);
45 endfunction
46
47 r = test2();
48 assert_checkequal(r, "abc");
49
50 r = test2(4.321);
51 assert_checkequal(r, "abc");
52
53 [r1, r2] = test2(%pi);
54 assert_checkequal(r1, "abc");
55 assert_checkequal(r2, "def");
56
57 [r1, r2, r3] = test2(%pi);
58 assert_checkequal(r1, "abc");
59 assert_checkequal(r2, "def");
60 assert_checkequal(r3, %i);
61
62 err = execstr("[r1, r2, r3, r4] = test2(%pi);", "errcatch");
63 assert_checkfalse(err == 0);