Piotr Caban : msvcrt: Add some _mbstok tests.
Alexandre Julliard
julliard at winehq.org
Fri Jun 21 11:28:10 CDT 2013
Module: wine
Branch: master
Commit: eb13a49de9e153a2a9e3b436198cf17313b0fb13
URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb13a49de9e153a2a9e3b436198cf17313b0fb13
Author: Piotr Caban <piotr at 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();
More information about the wine-cvs
mailing list