45caeeb7817f5c62d66dee6e15f086448999ee32
[scilab.git] / scilab / modules / functions / tests / unit_tests / exec.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2009 - DIGITEO - Allan CORNET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 tab_ref = [
9 "世界您好",
10 "азеазея",
11 "ハロー・ワールド",
12 "เฮลโลเวิลด์",
13 "حريات وحقوق",
14 "תוכנית"];
15
16 str_exec = "disp(''OK'');";
17
18 for i = 1 : size(tab_ref,"*")
19     mkdir(TMPDIR + filesep() + tab_ref(i));
20     fd = mopen(TMPDIR + filesep() + tab_ref(i) + filesep() + tab_ref(i) + ".sce","wt");
21     mputl(str_exec,fd);
22     mclose(fd);
23     exec(TMPDIR + filesep() + tab_ref(i) + filesep() + tab_ref(i) + ".sce");
24     mdelete(TMPDIR + filesep() + tab_ref(i) + filesep() + tab_ref(i) + ".sce");
25     rmdir(TMPDIR + filesep() + tab_ref(i));
26 end
27
28 // create a script file
29 mputl("a=1;b=2",TMPDIR+"/myscript");
30 // execute it
31 exec(TMPDIR+"/myscript")
32 if isdef("a")<> %t then pause,end
33 if isdef("b")<> %t then pause,end
34 assert_checkequal(a, 1);
35 assert_checkequal(b, 2);
36
37
38 // create a function
39 deff("y=foo(x)","a=x+1;y=a^2");
40 clear a b
41 // call the function
42 k = foo(1);
43 if isdef("k")<> %t then pause,end
44 if isdef("a")<> %f then pause,end
45 assert_checkequal(k, 4);
46 clear k y
47
48 // create a function and call this body as a script
49 deff("script()","a=x+1;y=a^2");
50 x=4; //create x to make it known by script
51 exec(script);
52 if isdef("y")<> %t then pause,end
53 if isdef("a")<> %t then pause,end
54 assert_checkequal(y, 25);
55