Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118/* * PROJECT: ReactOS api tests * LICENSE: GPL - See COPYING in the top level directory * PURPOSE: Test for _splitpath * PROGRAMMER: Timo Kreuzer */
#include <apitest.h>
#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <stdarg.h>
START_TEST(splitpath){ char drive[5]; char dir[64]; char fname[32]; char ext[10]; DWORD version;
version = GetNTVersion();
drive[2] = 0xFF; _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"); ok_int(drive[2], 0);
*_errno() = 0; _splitpath("c:\\dir1\\dir2\\file.ext", 0, 0, 0, 0); ok_int(*_errno(), 0);
if (version >= _WIN32_WINNT_VISTA) { *_errno() = 0; _splitpath(0, drive, dir, fname, ext); ok_int(*_errno(), EINVAL); ok_str(drive, ""); ok_str(dir, ""); ok_str(fname, ""); ok_str(ext, ""); } else { win_skip("This test only succeed on NT6+\n"); }
_splitpath("\\\\?\\c:\\dir1\\dir2\\file.ext", drive, dir, fname, ext); if ((version >= _WIN32_WINNT_VISTA) && (version < 0xA00)) { ok_str(drive, "c:"); ok_str(dir, "\\dir1\\dir2\\"); } else { ok_str(drive, ""); ok_str(dir, "\\\\?\\c:\\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); if ((version >= _WIN32_WINNT_VISTA) && (version < _WIN32_WINNT_WIN10)) { ok_str(drive, "0:"); ok_str(dir, "/dir1\\dir2/"); } else { ok_str(drive, ""); ok_str(dir, "\\\\?\\0:/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");
}