* Bug #15046 fixed - Dynamic_link: call() couldn't mix inputs and outputs
[scilab.git] / scilab / modules / dynamic_link / tests / nonreg_tests / bug_15046.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2017 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- NO CHECK REF -->
9 // <-- CLI SHELL MODE -->
10 //
11 // <-- Non-regression test for bug 15046 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/show_bug.cgi?id=15046
15 //
16 // <-- Short Description -->
17 // call() couldn't mix inputs and outputs
18
19 ilib_verbose(0);
20 cd TMPDIR;
21 sub2 = [ ..
22 "      subroutine sub2(n, m)"; ..
23 "       implicit none"; ..
24 "       integer n, m"; ..
25 "       m=n+1"; ..
26 "      end"
27 ];
28 mputl(sub2, "sub2.f");
29 ilib_for_link("sub2", "sub2.f", [], "f");
30 exec loader.sce;
31
32 N = 3;
33 [M, K] = call("sub2", N, 1, "i", "out", [1, 1], 1, "i", [1, 1], 2, "i"); // M = N = 3, K = N+1 = 4
34
35 assert_checkequal([M K], [3 4]);
36
37 M = call("sub2", N, 1, "i", "out", [1, 1], 2, "i"); // M = N+1 = 4
38
39 assert_checkequal(M, 4);