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