9c2cc067d5f48050e222b423737c81d644d6c144
[scilab.git] / scilab / modules / core / tests / unit_tests / varargout.tst
1 //<-- CLI SHELL MODE -->
2 // =============================================================================
3 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 // Copyright (C) 2011 - DIGITEO - Bruno JOFRET
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 //
10 // Return 3 values
11 //
12 function varargout=__test_function__()
13   varargout(1) = 42;
14   varargout(2) = "value";
15   varargout(3) = list(51);
16 endfunction
17
18 // Simple call
19 __test_function__();
20
21 a = __test_function__();
22 if a <> 42 then pause, end;
23 clear a;
24
25 [a,b] = __test_function__();
26 if a <> 42 then pause, end;
27 if b <> "value" then pause, end;
28 clear a;
29 clear b;
30
31 [a,b,c] = __test_function__();
32 if a <> 42 then pause, end;
33 if b <> "value" then pause, end;
34 if c <> list(51) then pause, end;
35 clear a;
36 clear b;
37 clear c;
38
39 // Check call with too much output values.
40 ierr = execstr("[a,b,c,d] = __test_function__();", "errcatch");
41 assert_checkfalse(ierr == 0);
42
43 //
44 // Return a list of 3 elements with second missing.
45 //
46 function varargout=__test_function2__()
47   varargout(1) = 42;
48   varargout(3) = "value";
49 endfunction
50
51 // Simple call
52 __test_function2__();
53
54 a = __test_function2__();
55 if a <> 42 then pause, end;
56 clear a;
57
58 // varargout(2) is undefined
59 ierr = execstr("[a,b] = __test_function2__();", "errcatch");
60 assert_checkfalse(ierr == 0);
61
62 //
63 // varargout is not set : should not work.
64 //
65 function varargout=__test_function3__()
66 endfunction
67
68 ierr = execstr("__test_function3__();", "errcatch");
69 assert_checkfalse(ierr == 0);