bug 13890 : fix macro getd, avoid use of stack order
[scilab.git] / scilab / modules / functions / tests / nonreg_tests / bug_13890.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 //
10 // <-- Non-regression test for bug 13890 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=13890
14 //
15 // <-- Short Description -->
16 // Bug when use getd with a ".sci" file with more than one function
17
18 str1 = ["function macro1_1()";
19         "    disp(""macro1_1"");";
20         "endfunction";
21         "";
22         "function macro1_2()";
23         "    disp(""macro1_2"");";
24         "endfunction";
25         "";
26         "function macro1_3()";
27         "    disp(""macro1_3"");";
28         "endfunction";
29         "";
30         "function macro1_4()";
31         "    disp(""macro1_4"");";
32         "endfunction"];
33
34 str2 = ["function macro2_1()";
35         "    disp(""macro2_1"");";
36         "endfunction";
37         "";
38         "function macro2_2()";
39         "    disp(""macro2_2"");";
40         "endfunction";
41         "";
42         "function macro2_3()";
43         "    disp(""macro2_3"");";
44         "endfunction";
45         "";
46         "function macro2_4()";
47         "    disp(""macro2_4"");";
48         "endfunction"];
49
50 mkdir(TMPDIR + "/bug_13890");
51 mputl(str1, TMPDIR + "/bug_13890/macro1.sci");
52 mputl(str2, TMPDIR + "/bug_13890/macro2.sci");
53
54 assert_checktrue(exists("macro1_1") == 0);
55 assert_checktrue(exists("macro1_2") == 0);
56 assert_checktrue(exists("macro1_3") == 0);
57 assert_checktrue(exists("macro1_4") == 0);
58
59 assert_checktrue(exists("macro2_1") == 0);
60 assert_checktrue(exists("macro2_2") == 0);
61 assert_checktrue(exists("macro2_3") == 0);
62 assert_checktrue(exists("macro2_4") == 0);
63
64 getd(TMPDIR + "/bug_13890");
65
66 assert_checkfalse(exists("macro1_1") == 0);
67 assert_checkfalse(exists("macro1_2") == 0);
68 assert_checkfalse(exists("macro1_3") == 0);
69 assert_checkfalse(exists("macro1_4") == 0);
70
71 assert_checkfalse(exists("macro2_1") == 0);
72 assert_checkfalse(exists("macro2_2") == 0);
73 assert_checkfalse(exists("macro2_3") == 0);
74 assert_checkfalse(exists("macro2_4") == 0);