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