mirror of
https://github.com/reactos/reactos.git
synced 2025-05-28 05:28:14 +00:00
[MSVCRT_APITEST]
Add tests for splitpath svn path=/trunk/; revision=52022
This commit is contained in:
parent
48c9bead3d
commit
3e584471ab
4 changed files with 135 additions and 0 deletions
12
rostests/apitests/msvcrt/CMakeLists.txt
Normal file
12
rostests/apitests/msvcrt/CMakeLists.txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
add_definitions(-D_DLL -D__USE_CRTIMP)
|
||||
|
||||
list(APPEND SOURCE
|
||||
splitpath.c
|
||||
testlist.c)
|
||||
|
||||
add_executable(msvcrt_apitest ${SOURCE})
|
||||
target_link_libraries(msvcrt_apitest wine)
|
||||
set_module_type(msvcrt_apitest win32cui)
|
||||
add_importlibs(msvcrt_apitest msvcrt kernel32)
|
||||
add_cd_file(TARGET msvcrt_apitest DESTINATION reactos/bin FOR all)
|
13
rostests/apitests/msvcrt/msvcrt_apitest.rbuild
Normal file
13
rostests/apitests/msvcrt/msvcrt_apitest.rbuild
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group>
|
||||
<module name="msvcrt_apitest" type="win32cui" installbase="bin" installname="msvcrt_apitest.exe">
|
||||
<include base="msvcrt_apitest">.</include>
|
||||
<library>wine</library>
|
||||
<library>pseh</library>
|
||||
<file>testlist.c</file>
|
||||
|
||||
<file>splitpath.c</file>
|
||||
|
||||
</module>
|
||||
</group>
|
94
rostests/apitests/msvcrt/splitpath.c
Normal file
94
rostests/apitests/msvcrt/splitpath.c
Normal file
|
@ -0,0 +1,94 @@
|
|||
/*
|
||||
* PROJECT: ReactOS api tests
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PURPOSE: Test for _splitpath
|
||||
* PROGRAMMER: Timo Kreuzer
|
||||
*/
|
||||
|
||||
#include <wine/test.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#define ok_str(x, y) \
|
||||
ok(strcmp(x, y) == 0, "got '%s', expected '%s'\n", x, y);
|
||||
|
||||
#define ok_int(x, y) \
|
||||
ok(x == y, "got %d, expected %d\n", x, y);
|
||||
|
||||
START_TEST(splitpath)
|
||||
{
|
||||
char drive[5];
|
||||
char dir[64];
|
||||
char fname[32];
|
||||
char ext[10];
|
||||
|
||||
_splitpath("c:\\dir1\\dir2\\file.ext", drive, dir, fname, ext);
|
||||
ok_str(drive, "c:");
|
||||
ok_str(dir, "\\dir1\\dir2\\");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, ".ext");
|
||||
|
||||
*_errno() = 0;
|
||||
_splitpath("c:\\dir1\\dir2\\file.ext", 0, 0, 0, 0);
|
||||
ok_int(*_errno(), 0);
|
||||
|
||||
*_errno() = 0;
|
||||
_splitpath(0, drive, dir, fname, ext);
|
||||
ok_int(*_errno(), EINVAL);
|
||||
ok_str(drive, "");
|
||||
ok_str(dir, "");
|
||||
ok_str(fname, "");
|
||||
ok_str(ext, "");
|
||||
|
||||
_splitpath("\\\\?\\c:\\dir1\\dir2\\file.ext", drive, dir, fname, ext);
|
||||
ok_str(drive, "c:");
|
||||
ok_str(dir, "\\dir1\\dir2\\");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, ".ext");
|
||||
|
||||
_splitpath("ab:\\dir1\\..\\file", drive, dir, fname, ext);
|
||||
ok_str(drive, "");
|
||||
ok_str(dir, "ab:\\dir1\\..\\");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, "");
|
||||
|
||||
_splitpath("//?/c:/dir1/dir2/file.ext", drive, dir, fname, ext);
|
||||
ok_str(drive, "");
|
||||
ok_str(dir, "//?/c:/dir1/dir2/");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, ".ext");
|
||||
|
||||
_splitpath("\\\\?\\0:/dir1\\dir2/file.", drive, dir, fname, ext);
|
||||
ok_str(drive, "0:");
|
||||
ok_str(dir, "/dir1\\dir2/");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, ".");
|
||||
|
||||
_splitpath("\\\\.\\c:\\dir1\\dir2\\.ext.ext2", drive, dir, fname, ext);
|
||||
ok_str(drive, "");
|
||||
ok_str(dir, "\\\\.\\c:\\dir1\\dir2\\");
|
||||
ok_str(fname, ".ext");
|
||||
ok_str(ext, ".ext2");
|
||||
|
||||
_splitpath("\\??\\c:\\dir1\\dir2\\file. ~ ", drive, dir, fname, ext);
|
||||
ok_str(drive, "");
|
||||
ok_str(dir, "\\??\\c:\\dir1\\dir2\\");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, ". ~ ");
|
||||
|
||||
_splitpath("x: dir1\\/dir2 \\.blub", drive, dir, fname, ext);
|
||||
ok_str(drive, "x:");
|
||||
ok_str(dir, " dir1\\/dir2 \\");
|
||||
ok_str(fname, "");
|
||||
ok_str(ext, ".blub");
|
||||
|
||||
_splitpath("/:\\dir1\\dir2\\file.ext", drive, dir, fname, ext);
|
||||
ok_str(drive, "/:");
|
||||
ok_str(dir, "\\dir1\\dir2\\");
|
||||
ok_str(fname, "file");
|
||||
ok_str(ext, ".ext");
|
||||
|
||||
}
|
||||
|
16
rostests/apitests/msvcrt/testlist.c
Normal file
16
rostests/apitests/msvcrt/testlist.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
#define WIN32_LEAN_AND_MEAN
|
||||
#define __ROS_LONG64__
|
||||
#include <windows.h>
|
||||
|
||||
#define STANDALONE
|
||||
#include "wine/test.h"
|
||||
|
||||
extern void func_splitpath(void);
|
||||
|
||||
const struct test winetest_testlist[] =
|
||||
{
|
||||
{ "splitpath", func_splitpath },
|
||||
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
Loading…
Reference in a new issue