bug #14047: wrong behaviour of break ( continue ) in if outside of loop.
[scilab.git] / scilab / modules / ast / tests / nonreg_tests / bug_14047.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 // <-- CLI SHELL MODE -->
8 //
9 // <-- Non-regression test for bug 14047 -->
10 //
11 // <-- Bugzilla URL -->
12 // http://bugzilla.scilab.org/14047
13 //
14 // <-- Short Description -->
15 // wrong behaviour of break ( continue ) in if outside of loop
16
17 function y = testBreak()
18     if 1 then
19         y = 2;
20         break;
21         y = 3;
22     end
23 endfunction
24
25 assert_checkequal(testBreak(), 3);
26
27
28 function y = testContinue()
29     if 1 then
30         y = 2;
31         continue;
32         y = 3;
33     end
34 endfunction
35
36 assert_checkequal(testContinue(), 3);
37
38 clear testBreak testContinue
39 //check normal behaviour
40 function y = testBreak()
41     y = 0;
42     for i = 1:5
43         if i == 3 then
44             break;
45         end
46
47         y = y + 1;
48     end
49 endfunction
50
51 assert_checkequal(testBreak(), 2);
52
53 function y = testContinue()
54     y = 0;
55     for i = 1:5
56         if i == 3 then
57             continue;
58         end
59
60         y = y + 1;
61     end
62 endfunction
63
64 assert_checkequal(testContinue(), 4);