1// ============================================================================
2// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3// Copyright (C) 2011-2011 - Gsoc 2011 - Iuri SILVIO
4//
5//  This file is distributed under the same license as the Scilab package.
6// ============================================================================
7//
8// <-- CLI SHELL MODE -->
9//
10// ============================================================================
11// Unitary tests for mexGetVariable mex function
12// ============================================================================
13
14cd(TMPDIR);
15ilib_verbose(0);
16mputl([ "#include ""mex.h""";
17"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
18"{";
19"    char *workspace = mxArrayToString(prhs[0]);";
20"    char *name = mxArrayToString(prhs[1]);";
21"    mxArray *pOut = mexGetVariable(workspace, name);";
22"    plhs[0] = pOut != NULL ? pOut : mxCreateString(""NULL"");";
23"}"],"mexgetVariable.c");
24ilib_mex_build("libmextest", ["getVariable", "mexgetVariable", "cmex"], "mexgetVariable.c", []);
25exec("loader.sce");
26
27//create a global var
28global globalvar;
29globalvar = "my global var";
30
31//create a global var and hide it
32global globalvar2;
33globalvar2 = "my global var2";
34clear globalvar2;
35
36//create a local var
37callervar = "my caller var";
38
39assert_checkequal(getVariable("global", "globalvar"), "my global var");
40assert_checkequal(getVariable("caller", "globalvar"), "NULL");
41assert_checkequal(getVariable("base", "globalvar"), "my global var");
42
43assert_checkequal(getVariable("global", "callervar"), "NULL");
44assert_checkequal(getVariable("caller", "callervar"), "my caller var");
45assert_checkequal(getVariable("base", "callervar"), "my caller var");
46
47assert_checkequal(getVariable("global", "globalvar2"), "NULL");
48assert_checkequal(getVariable("caller", "globalvar2"), "NULL");
49assert_checkequal(getVariable("base", "globalvar2"), "NULL");
50