Review mxMalloc and add relevant tests 51/19351/3
Siddhartha Gairola [Fri, 21 Jul 2017 18:24:29 +0000 (23:24 +0530)]
Change-Id: I606c3631fce862e3b943e4dd7009bf40219f9060

scilab/modules/mexlib/tests/unit_tests/mxMalloc.dia.ref [new file with mode: 0644]
scilab/modules/mexlib/tests/unit_tests/mxMalloc.tst

diff --git a/scilab/modules/mexlib/tests/unit_tests/mxMalloc.dia.ref b/scilab/modules/mexlib/tests/unit_tests/mxMalloc.dia.ref
new file mode 100644 (file)
index 0000000..b7f3bc9
--- /dev/null
@@ -0,0 +1,40 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017-2017 - Gsoc 2017 - Siddhartha Gairola
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- CLI SHELL MODE -->
+// ============================================================================
+// Unitary tests for mxMalloc mex function
+// ============================================================================
+cd(TMPDIR);
+ilib_verbose(0);
+mputl(["#include ""mex.h""";
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
+"{";
+" int *buf = NULL;";
+" int check1 = 0;";
+" int check2 = 0;";
+" if (buf != NULL) {";
+"    check1 = 1;";
+" }";
+" buf = mxMalloc(16);";
+" if (buf != NULL) {";
+"    check2 = 1;";
+" mexPrintf(""Buffer is Not NULL.\n"");";
+" }";
+" mxFree(buf);";
+" mxArray* pOut1 = mxCreateLogicalScalar(check1);";
+" mxArray* pOut2 = mxCreateLogicalScalar(check2);";
+" plhs[0] = pOut1;";
+" plhs[1] = pOut2;";
+"}"],"mxMalloc.c");
+ilib_mex_build("libmextest",["mxMalloc","mxMalloc","cmex"], "mxMalloc.c",[]);
+exec("loader.sce");
+[res1, res2] = mxMalloc();
+Buffer is Not NULL.
+
+assert_checkfalse(res1);
+assert_checktrue(res2);
index 2bea6fa..0eff4d5 100644 (file)
@@ -1,31 +1,41 @@
 // ============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2011-2011 - Gsoc 2011 - Iuri SILVIO
+// Copyright (C) 2017-2017 - Gsoc 2017 - Siddhartha Gairola
 //
 //  This file is distributed under the same license as the Scilab package.
 // ============================================================================
 
 // <-- CLI SHELL MODE -->
-//
-// <-- NOT FIXED -->
 // ============================================================================
 // Unitary tests for mxMalloc mex function
 // ============================================================================
 
 cd(TMPDIR);
 ilib_verbose(0);
+
 mputl(["#include ""mex.h""";
 "void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
 "{";
-"    double *data = mxMalloc(2 * sizeof(double *));";
-"    data[0] = 1.0;";
-"    data[1] = 3.2;";
-"    plhs[0] = mxCreateDoubleMatrix(2, 1, mxREAL);"
-"    mxSetPr(plhs[0], data);";
-"}"],"mexmalloc.c");
-ilib_mex_build("libmextest",["malloc","mexmalloc","cmex"], "mexmalloc.c",[]);
+" int *buf = NULL;";
+" int check1 = 0;";
+" int check2 = 0;";
+" if (buf != NULL) {";
+"    check1 = 1;";
+" }";
+" buf = mxMalloc(16);";
+" if (buf != NULL) {";
+"    check2 = 1;";
+" mexPrintf(""Buffer is Not NULL.\n"");";
+" }";
+" mxFree(buf);";
+" mxArray* pOut1 = mxCreateLogicalScalar(check1);";
+" mxArray* pOut2 = mxCreateLogicalScalar(check2);";
+" plhs[0] = pOut1;";
+" plhs[1] = pOut2;";
+"}"],"mxMalloc.c");
+ilib_mex_build("libmextest",["mxMalloc","mxMalloc","cmex"], "mxMalloc.c",[]);
 exec("loader.sce");
 
-r = malloc();
-assert_checkequal(r(1), 1);
-assert_checkequal(r(2), 3.2);
+[res1, res2] = mxMalloc();
+assert_checkfalse(res1);
+assert_checktrue(res2);