5a04cb654adba6b2686b14524140c1f57ae161fc
[scilab.git] / scilab / modules / dynamic_link / tests / unit_tests / call.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA
4 // Copyright (C) 2009 - DIGITEO
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
11
12 copyfile(fullfile(SCI, "modules/dynamic_link/tests/unit_tests", "call_tests.c"), fullfile(TMPDIR, "call_tests.c"));
13 old = pwd();
14 cd(TMPDIR);
15
16 intef = ["call_0_0" "call_i1_0" "call_d1_0" "call_0_i1" "call_0_d1" "call_i1_i1" "call_d1_d1" "call_i1_i1_bis" "call_d1_d1_bis" "call_i1_d1"];
17
18 ilib_for_link(intef, "call_tests.c", [], "c");
19 exec loader.sce;
20
21 //no args
22 call("call_0_0");
23
24 //1 out int
25 v = call("call_i1_0", "out", [1 1], 1, "i");
26 assert_checkequal(v, 42);
27
28 //1 out double
29 v = call("call_d1_0", "out", [1 1], 1, "d");
30 assert_checkequal(v, %pi);
31
32 //1 in int
33 call("call_0_i1", 42, 1, "i");
34
35 //1 in double
36 call("call_0_d1", %pi, 1, "d");
37
38 //1 in int, 1 out int
39 v = call("call_i1_i1", 21, 1, "i", "out", [1 1], 1, "i");
40 assert_checkequal(v, 42);
41 v = call("call_i1_i1", 21, 1, "i", "out", 1);
42 assert_checkequal(v, 42);
43
44 //1 in double, 1 out double
45 v = call("call_d1_d1", %pi, 1, "d", "out", [1 1], 1, "d");
46 assert_checkequal(v, 2*%pi);
47 v = call("call_d1_d1", %pi, 1, "d", "out", 1);
48 assert_checkequal(v, 2*%pi);
49
50 //1 in int, 1 out int
51 v = call("call_i1_i1_bis", 21, 1, "i", "out", [1 1], 2, "i");
52 assert_checkequal(v, 42);
53
54 //1 in double, 1 out double
55 v = call("call_d1_d1_bis", %pi, 1, "d", "out", [1 1], 2, "d");
56 assert_checkequal(v, 2*%pi);
57
58 //1 in int, 1 out double
59 v = call("call_i1_d1", 21, 1, "i", "out", [1 1], 2, "d");
60 assert_checkequal(v, 21*%pi);
61
62 ulink();
63 cd(old);