* Bug 16178 fixed: sci2exp() failed with input macros w/o argout
[scilab.git] / scilab / modules / string / tests / nonreg_tests / bug_16178.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2019 - Samuel GOUGEON
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 16178 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/16178
15 //
16 // <-- Short Description -->
17 // sci2exp() yielded an error for any input macro without argout
18 // -------------------------------------------------------------
19
20 function Q1()
21     a.b
22 endfunction
23 assert_checkequal(sci2exp(Q1), "createfun([""%fun()"";""a.b""])");
24 assert_checkequal(sci2exp(Q1,"Q"), "createfun([""Q()"";""a.b""])");
25
26
27 // The used internal createfun() failed for a function returning nothing:
28 // ---------------------------------------------------------------------
29 //--> f=createfun(["b=fun(a)";"b=a.b"])
30 // f  =
31 // [b]=f(a)     // OK
32 //
33 //--> f=createfun(["fun(a)";"b=a.b"])
34 // at line     1 of executed string
35 // at line    10 of function        deff      ( SCI\modules\functions\macros\deff.sci line 10 )
36 // at line    15 of function        createfun ( SCI\modules\functions\macros\createfun.sci line 27 )
37 //
38 // function f%fun(a)
39 //           ^~~~^
40 // Error: syntax error, unexpected identifier, expecting end of line or "," or ; or line comment
41
42 // NR Test:
43
44 %fghw = createfun(["fun(a)";"b=a.b"]);    // without output
45 assert_checkequal(type(%fghw), 13)
46
47 %fghw2 = createfun(["b=fun(a)";"b=a.b"]); // with output
48 assert_checkequal(type(%fghw2), 13)
49 s.b = %pi;
50 assert_checkequal(%fghw2(s), %pi)