Better syntax
[scilab.git] / scilab / modules / mexlib / tests / nonreg_tests / bug_614.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2006-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- Non-regression test for bug 614 -->
9 //
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/show_bug.cgi?id=614
12 //
13 // <-- Short Description -->
14 //    mxGetDimensions() from mex.h and mexlib.c do not work 
15 //    properly. The reason is that it returns a pointer to int 
16 //    like Matlab, but in fact, the dimensions in scilab are in 
17 //    double format.
18 //
19 //    Also occur in other OS's.
20
21 my_current_directory = pwd();
22 cd(TMPDIR);
23 cd('..');
24 TMP_directory = pwd();
25 mputl('ilib_mex_build(''libmex'',[''mexf16'',''mexfunction16'',''cmex''],[''mexfunction16.c''],[],''Makelib'','''','''','''')','builder.sce');
26
27 mputl([
28 '#include ""mex.h""'
29 'void mexFunction(nlhs, plhs, nrhs, prhs)'
30 '     int nlhs, nrhs;'
31 '     mxArray *plhs[]; mxArray *prhs[];'
32 '{'
33 '  int *dims = mxGetDimensions(prhs[0]);'
34 '  sciprint(""%d %d %d\n"",dims[0],dims[1],dims[2]);'
35 '}'
36 ],'mexfunction16.c');
37
38 exec('builder.sce');
39 exec('loader.sce');
40
41 diary('bug614.dia')
42 mexf16(rand(2,3,2))
43 diary(0)
44
45 dia = mgetl('bug614.dia');
46 cd(my_current_directory);
47
48 if find(dia == "2 3 2") == [] then pause,end