mseek parameter offset passed as double for file size more than 2GB.
[scilab.git] / scilab / modules / fileio / tests / nonreg_tests / bug_6511.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2010 - DIGITEO - Allan CORNET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- LONG TIME EXECUTION -->
8 // <-- Non-regression test for bug 6511 -->
9 //
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/show_bug.cgi?id=6511
12 //
13 // <-- Short Description -->
14 // mseek and mtell do not manage files > 2 Gbytes on 64 bits
15 // creates a very big file > 2 Go and try to read
16 // resquires 10 minutes or more to execute
17
18 SIZE_FILE = 4e8;
19 file3 = TMPDIR + "/test3.bin";
20 fd1= mopen(file3,"wb");
21 for i=1:SIZE_FILE, mput(i,"d"); end
22 mseek(0);
23 mput(678,"d");
24 mseek(0,fd1,"end");
25 lastpos = mtell(fd1);
26 mput(932,"d");
27 mtell(fd1);
28 mclose(fd1);
29
30 fd2= mopen(file3,"rb");
31
32 mseek(0,fd2,"set");
33 res = mget(1,"d",fd2);
34 if res <> 678 then pause,end;
35
36 mseek(0,fd2);
37 mseek(lastpos,fd2);
38 res = mget(1,"d",fd2);
39 if res <> 932 then pause,end;
40
41 mclose(fd2);
42
43 // delete file after (to save space on disk)
44 mdelete(file3);