test fixed about lasterror function name.
[scilab.git] / scilab / modules / functions / tests / nonreg_tests / bug_2509.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2009 - INRIA - Serge Steer
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 // <-- Non-regression test for bug 2509 -->
10 //
11 // <-- Bugzilla URL -->
12 // http://bugzilla.scilab.org/show_bug.cgi?id=2509
13 //
14 // <-- Short Description -->
15 // execstr forgets to store the function name and line number when in the errcatch mode
16
17 prot=funcprot();funcprot(0);
18
19
20 //uncompiled macros
21 deff("foo","a=aaaa","n")
22 if execstr("foo()","errcatch")==0 then pause,end
23 [str,n,l,f]=lasterror(%t);
24 if l<>2|f<>"foo" then pause,end
25
26 try
27     foo();
28 catch
29     [str,n,l,f]=lasterror(%t);
30     if l<>2|f<>"foo" then pause,end;
31 end
32
33 if exec(foo,"errcatch")==0 then pause,end
34 [str,n,l,f]=lasterror(%t);
35 if l<>2|f<>"foo" then pause,end
36
37 //compiled macros
38 deff("foo","a=aaaa")
39 if execstr("foo()","errcatch")==0 then pause,end
40 [str,n,l,f]=lasterror(%t);
41 if l<>2|f<>"foo" then pause,end
42
43 try
44     foo();
45 catch
46     [str,n,l,f]=lasterror(%t);
47     if l<>2|f<>"foo" then pause,end;
48 end
49
50 if exec(foo,"errcatch")==0 then pause,end
51 [str,n,l,f]=lasterror(%t);
52 if l<>2|f<>"foo" then pause,end
53
54 //scripts
55 foo=["a=1";"a=aaaa"];
56 if execstr(foo,"errcatch")==0 then pause,end
57 [str,n,l,f]=lasterror(%t);
58 if l<>2|f<>"" then pause,end
59
60 //complex situations
61 deff("foo","execstr(''a=aaaa'')")
62 if execstr("foo()","errcatch")==0 then pause,end
63 [str,n,l,f]=lasterror(%t);
64 if l<>1|f<>"foo" then pause,end
65
66
67 funcprot(prot);