Test moved from core to functions
[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 // <-- Non-regression test for bug 2509 -->
9 //
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/show_bug.cgi?id=2509
12 //
13 // <-- Short Description -->
14 // execstr forgets to store the function name and line number when in the errcatch mode
15
16 prot=funcprot();funcprot(0)
17
18
19 //uncompiled macros
20 deff('foo','a=aaaa','n')
21 if execstr('foo()','errcatch')<>4 then pause,end
22 [str,n,l,f]=lasterror(%t);
23 if l<>2|f<>'foo' then pause,end
24
25 try, 
26   foo();
27 catch 
28   [str,n,l,f]=lasterror(%t); 
29   if l<>2|f<>'foo' then pause,end;
30 end
31
32 if exec(foo,'errcatch')<>4 then pause,end
33 [str,n,l,f]=lasterror(%t);
34 if l<>2|f<>'foo' then pause,end
35
36 //compiled macros
37 deff('foo','a=aaaa')
38 if execstr('foo()','errcatch')<>4 then pause,end
39 [str,n,l,f]=lasterror(%t);
40 if l<>2|f<>'foo' then pause,end
41
42 try, 
43   foo();
44 catch 
45   [str,n,l,f]=lasterror(%t); 
46   if l<>2|f<>'foo' then pause,end;
47 end
48
49 if exec(foo,'errcatch')<>4 then pause,end
50 [str,n,l,f]=lasterror(%t);
51 if l<>2|f<>'foo' then pause,end
52
53 //scripts
54 foo=['a=1';'a=aaaa'];
55 if execstr(foo,'errcatch')<>4 then pause,end
56 [str,n,l,f]=lasterror(%t);
57 if l<>2|f<>'' then pause,end
58
59 //complex situations
60 deff('foo','execstr(''a=aaaa'')')
61 if execstr('foo()','errcatch')<>4 then pause,end
62 [str,n,l,f]=lasterror(%t);
63 if l<>1|f<>'' then pause,end
64
65
66 funcprot(prot)