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