Added mxArrayToUTF8String function and tests for the same 32/19332/11
Siddhartha Gairola [Tue, 11 Jul 2017 17:12:31 +0000 (22:12 +0530)]
Change-Id: I2c57b519ef76373c7ca144f40801f4b23eed5fb9

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

index d470ea7..899b292 100644 (file)
@@ -4,7 +4,7 @@
  *  Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET
  *  Copyright (C) 2011 - DIGITEO - Antoine ELIAS
  *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *  Copyright (C) 2012 - 2016 - Scilab Enterprises
  *  Copyright (C) 2017 - Gsoc 2017 - Siddhartha Gairola
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -742,8 +742,7 @@ char *mxArrayToString(const mxArray *ptr)
 
 char *mxArrayToUTF8String(const mxArray *array_ptr)
 {
-    //TODO
-    return NULL;
+    return mxArrayToString(array_ptr);
 }
 
 int mxGetString(const mxArray *ptr, char *str, int strl)
diff --git a/scilab/modules/mexlib/tests/unit_tests/mxArrayToUTF8String.dia.ref b/scilab/modules/mexlib/tests/unit_tests/mxArrayToUTF8String.dia.ref
new file mode 100644 (file)
index 0000000..76d6790
--- /dev/null
@@ -0,0 +1,35 @@
+// ============================================================================
+// 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 mxArrayToUTF8String mex function
+// ============================================================================
+cd(TMPDIR);
+ilib_verbose(0);
+mputl([ "#include ""mex.h""";
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
+"{";
+"    char *str = mxArrayToUTF8String(prhs[0]);";
+"    bool check = 0;";
+"    mexPrintf(""%s"", str);";
+"    if (strcmp(str, ""hello world"") == 0 || strcmp(str, ""twolines"") == 0)";
+"       check = 1;";
+"    mxArray* pOut = mxCreateLogicalScalar(check);";
+"    plhs[0] = pOut;";
+"}"],"mexArrayToUTF8String.c");
+ilib_mex_build("libmextest", ["arrayToUTF8String", "mexArrayToUTF8String", "cmex"], "mexArrayToUTF8String.c", []);
+exec("loader.sce");
+res1 = arrayToUTF8String("hello world");
+hello world
+res2 = arrayToUTF8String(["two"; "lines"]);
+twolines
+res3 = arrayToUTF8String(["random"]);
+random
+assert_checktrue(res1);
+assert_checktrue(res2);
+assert_checkfalse(res3);
diff --git a/scilab/modules/mexlib/tests/unit_tests/mxArrayToUTF8String.tst b/scilab/modules/mexlib/tests/unit_tests/mxArrayToUTF8String.tst
new file mode 100644 (file)
index 0000000..b213ccd
--- /dev/null
@@ -0,0 +1,35 @@
+// ============================================================================
+// 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 mxArrayToUTF8String mex function
+// ============================================================================
+
+cd(TMPDIR);
+ilib_verbose(0);
+mputl([ "#include ""mex.h""";
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
+"{";
+"    char *str = mxArrayToUTF8String(prhs[0]);";
+"    bool check = 0;";
+"    mexPrintf(""%s"", str);";
+"    if (strcmp(str, ""hello world"") == 0 || strcmp(str, ""twolines"") == 0)";
+"       check = 1;";
+"    mxArray* pOut = mxCreateLogicalScalar(check);";
+"    plhs[0] = pOut;";
+"}"],"mexArrayToUTF8String.c");
+ilib_mex_build("libmextest", ["arrayToUTF8String", "mexArrayToUTF8String", "cmex"], "mexArrayToUTF8String.c", []);
+exec("loader.sce");
+
+res1 = arrayToUTF8String("hello world");
+res2 = arrayToUTF8String(["two"; "lines"]);
+res3 = arrayToUTF8String(["random"]);
+
+assert_checktrue(res1);
+assert_checktrue(res2);
+assert_checkfalse(res3);