Module: wine Branch: master Commit: eb13a49de9e153a2a9e3b436198cf17313b0fb13 URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb13a49de9e153a2a9e3b43619...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Jun 21 12:17:43 2013 +0200
msvcrt: Add some _mbstok tests.
---
dlls/msvcr90/tests/msvcr90.c | 5 +++++ dlls/msvcrt/tests/string.c | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/dlls/msvcr90/tests/msvcr90.c b/dlls/msvcr90/tests/msvcr90.c index fe3fa58..e4eee04 100644 --- a/dlls/msvcr90/tests/msvcr90.c +++ b/dlls/msvcr90/tests/msvcr90.c @@ -93,6 +93,7 @@ static __msvcrt_ulong* (__cdecl *p_doserrno)(void); static void (__cdecl *p_srand)(unsigned int); static char* (__cdecl *p_strtok)(char*, const char*); static wchar_t* (__cdecl *p_wcstok)(wchar_t*, const wchar_t*); +static unsigned char* (__cdecl *p__mbstok)(unsigned char*, const unsigned char*); static char* (__cdecl *p_strerror)(int); static wchar_t* (__cdecl *p_wcserror)(int); static char* (__cdecl *p_tmpnam)(char*); @@ -279,6 +280,7 @@ static BOOL init(void) SET(p_srand, "srand"); SET(p_strtok, "strtok"); SET(p_wcstok, "wcstok"); + SET(p__mbstok, "_mbstok"); SET(p_strerror, "strerror"); SET(p_wcserror, "_wcserror"); SET(p_tmpnam, "tmpnam"); @@ -1038,6 +1040,7 @@ static void test_getptd(void) DWORD tid = GetCurrentThreadId(); wchar_t testW[] = {'t','e','s','t',0}, tW[] = {'t',0}, *wp; char test[] = "test", *p; + unsigned char mbstok_test[] = "test", *up; struct tm time; __time64_t secs = 0; int dec, sign; @@ -1053,6 +1056,8 @@ static void test_getptd(void) ok(ptd->strtok_next == p+3, "ptd->strtok_next is incorrect\n"); wp = p_wcstok(testW, tW); ok(ptd->wcstok_next == wp+3, "ptd->wcstok_next is incorrect\n"); + up = p__mbstok(mbstok_test, (unsigned char*)"t"); + ok(ptd->mbstok_next == up+3, "ptd->mbstok_next is incorrect\n"); ok(p_strerror(0) == ptd->strerror_buffer, "ptd->strerror_buffer is incorrect\n"); ok(p_wcserror(0) == ptd->wcserror_buffer, "ptd->wcserror_buffer is incorrect\n"); ok(p_tmpnam(NULL) == ptd->tmpnam_buffer, "ptd->tmpnam_buffer is incorrect\n"); diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c index 6115377..15b6e4d 100644 --- a/dlls/msvcrt/tests/string.c +++ b/dlls/msvcrt/tests/string.c @@ -2193,6 +2193,24 @@ static void test__mbslwr_s(void) buffer); }
+static void test__mbstok(void) +{ + const unsigned char delim[] = "t"; + + char str[] = "!.!test"; + unsigned char *ret; + + strtok(str, "!"); + + ret = _mbstok(NULL, delim); + /* most versions of msvcrt use the same buffer for strtok and _mbstok */ + ok(!ret || broken((char*)ret==str+4), + "_mbstok(NULL, "t") = %p, expected NULL (%p)\n", ret, str); + + ret = _mbstok(NULL, delim); + ok(!ret, "_mbstok(NULL, "t") = %p, expected NULL\n", ret); +} + static void test__ultoa_s(void) { errno_t ret; @@ -2615,6 +2633,7 @@ START_TEST(string) test_mbctombb(); test_ismbclegal(); test_strtok(); + test__mbstok(); test_wcscpy_s(); test__wcsupr_s(); test_strtol();