mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 14:40:56 +00:00
fdopen: don't rewind the file after creating the FILE* handle. Added
unit test for that.
This commit is contained in:
parent
3d60c63adf
commit
c78902221f
@ -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;
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
Makefile
|
||||
file.ok
|
||||
msvcrt_test.exe.spec.c
|
||||
scanf.ok
|
||||
testlist.c
|
||||
|
@ -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
51
dlls/msvcrt/tests/file.c
Normal 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();
|
||||
}
|
Loading…
Reference in New Issue
Block a user