Bug #13396 fixed - MBLOCK didn't work with an external file containing the modelica...
[scilab.git] / scilab / modules / xcos / tests / nonreg_tests / bug_13396.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
4 //
5 // This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- XCOS TEST -->
9 //
10 //<-- ENGLISH IMPOSED -->
11 //
12 // <-- Non-regression test for bug 13396 -->
13 //
14 // <-- Bugzilla URL -->
15 // http://bugzilla.scilab.org/show_bug.cgi?id=13396
16 //
17 // <-- Short Description -->
18 // MBLOCK did not work with an external file containing the modelica class
19 //
20
21 global toggle;
22 toggle = %T;
23
24 assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/nonreg_tests/bug_13396.zcos"));
25
26 prot = funcprot();
27 funcprot(0);
28 level = ilib_verbose();
29 ilib_verbose(0);
30
31 // create external file
32 fd = mopen(TMPDIR+"/bug_13396.mo", "wt");
33 txt = ["class bug_13396"; ..
34 "    parameter Real R = 1.000000e-01;"; ..
35 "    Pin p,n;"; ..
36 "    Real i,v;"; ..
37 "equation"; ..
38 "    i = p.i;"; ..
39 "    n.i = -i;"; ..
40 "    v = p.v - n.v;"; ..
41 "    R * i = v;"; ..
42 "end bug_13396;"];
43 mputl(txt, fd);
44 mclose(fd);
45
46 // overload of scicos_getvalue and msg box
47 function str = x_mdialog(desc, labels, ini)
48     global toggle;
49     if toggle then
50         ini($) = TMPDIR + "/bug_13396.mo";
51         str = ini;
52         toggle = ~toggle;
53     else
54         str = []; // cancelling
55     end
56 endfunction
57 function messagebox(msg, msg_title)
58 endfunction
59
60 // set the path for external file
61 for i = 1:size(scs_m.objs)
62     if typeof(scs_m.objs(i)) == "Block" & scs_m.objs(i).gui == "MBLOCK" then
63         scs_m.objs(i).graphics.exprs(9) = TMPDIR + "/bug_13396.mo";
64         scs_m.objs(i).model.sim(1) = TMPDIR + "/bug_13396.mo";
65         MBLOCK("set", scs_m.objs(i));
66         break
67     end
68 end
69 // compile the diagram
70 [cpr, ok] = xcos_compile(scs_m);
71 assert_checktrue(ok);
72 // simulate the diagram
73 xcos_simulate(scs_m, 4);
74
75 funcprot(prot);
76 ilib_verbose(level);
77
78 mdelete(TMPDIR+"/bug_13396.mo");
79