msvcrt: Added _setmode tests.

This commit is contained in:
Piotr Caban 2013-01-10 11:45:05 +01:00 committed by Alexandre Julliard
parent a0ef884542
commit f93259b305

View file

@ -1496,6 +1496,61 @@ static void test__wfopen_s( void )
ok(_unlink(name) == 0, "Couldn't unlink file named '%s'\n", name);
}
static void test_setmode(void)
{
const char name[] = "empty1";
int fd, ret;
if(!p_fopen_s) {
win_skip("unicode file modes are not available, skipping setmode tests\n");
return;
}
fd = _open(name, _O_CREAT|_O_WRONLY, _S_IWRITE);
ok(fd != -1, "failed to open file\n");
errno = 0xdeadbeef;
ret = _setmode(fd, 0xffffffff);
ok(ret == -1, "_setmode returned %x, expected -1\n", ret);
ok(errno == EINVAL, "errno = %d\n", errno);
errno = 0xdeadbeef;
ret = _setmode(fd, 0);
ok(ret == -1, "_setmode returned %x, expected -1\n", ret);
ok(errno == EINVAL, "errno = %d\n", errno);
errno = 0xdeadbeef;
ret = _setmode(fd, _O_BINARY|_O_TEXT);
ok(ret == -1, "_setmode returned %x, expected -1\n", ret);
ok(errno == EINVAL, "errno = %d\n", errno);
errno = 0xdeadbeef;
ret = _setmode(fd, _O_WTEXT|_O_U16TEXT);
ok(ret == -1, "_setmode returned %x, expected -1\n", ret);
ok(errno == EINVAL, "errno = %d\n", errno);
ret = _setmode(fd, _O_BINARY);
ok(ret == _O_TEXT, "_setmode returned %x, expected _O_TEXT\n", ret);
ret = _setmode(fd, _O_WTEXT);
ok(ret == _O_BINARY, "_setmode returned %x, expected _O_BINARY\n", ret);
ret = _setmode(fd, _O_TEXT);
ok(ret == _O_WTEXT, "_setmode returned %x, expected _O_WTEXT\n", ret);
ret = _setmode(fd, _O_U16TEXT);
ok(ret == _O_TEXT, "_setmode returned %x, expected _O_TEXT\n", ret);
ret = _setmode(fd, _O_U8TEXT);
ok(ret == _O_WTEXT, "_setmode returned %x, expected _O_WTEXT\n", ret);
ret = _setmode(fd, _O_TEXT);
ok(ret == _O_WTEXT, "_setmode returned %x, expected _O_WTEXT\n", ret);
_close(fd);
_unlink(name);
}
static void test_get_osfhandle(void)
{
int fd;
@ -1784,6 +1839,7 @@ START_TEST(file)
test_fopen_fclose_fcloseall();
test_fopen_s();
test__wfopen_s();
test_setmode();
test_fileops();
test_asciimode();
test_asciimode2();