fdopen: don't rewind the file after creating the FILE* handle. Added

unit test for that.
This commit is contained in:
Bill Currie 2002-12-17 04:18:07 +00:00 committed by Alexandre Julliard
parent 3d60c63adf
commit c78902221f
4 changed files with 53 additions and 2 deletions

View File

@ -620,8 +620,6 @@ MSVCRT_FILE* _fdopen(int fd, const char *mode)
MSVCRT_FILE* file = msvcrt_alloc_fp(fd);
TRACE(":fd (%d) mode (%s) FILE* (%p)\n",fd,mode,file);
if (file)
MSVCRT_rewind(file);
return file;
}

View File

@ -1,4 +1,5 @@
Makefile
file.ok
msvcrt_test.exe.spec.c
scanf.ok
testlist.c

View File

@ -7,6 +7,7 @@ IMPORTS = msvcrt
EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt
CTESTS = \
file.c \
scanf.c
@MAKE_TEST_RULES@

51
dlls/msvcrt/tests/file.c Normal file
View File

@ -0,0 +1,51 @@
/*
* Unit test suite for file functions
*
* Copyright 2002 Bill Currie
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <windef.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include "wine/test.h"
static void test_fdopen( void )
{
static char buffer[] = {0,1,2,3,4,5,6,7,8,9};
int fd;
FILE *file;
fd = open ("fdopen.tst", O_WRONLY | O_CREAT | O_BINARY);
write (fd, buffer, sizeof (buffer));
close (fd);
fd = open ("fdopen.tst", O_RDONLY | O_BINARY);
lseek (fd, 5, SEEK_SET);
file = fdopen (fd, "rb");
ok (fread (buffer, 1, sizeof (buffer), file) == 5, "read wrong byte count");
ok (memcmp (buffer, buffer + 5, 5) == 0, "read wrong bytes");
fclose (file);
unlink ("fdopen.tst");
}
START_TEST(file)
{
test_fdopen();
}