[PATCH 1/2] msvcrt/tests: Added _strnicoll tests.

Eryk Wieliczko ewdevel at gmail.com
Thu Feb 10 19:22:22 CST 2011


---
 dlls/msvcrt/tests/string.c |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c
index c532fce..41d304b 100644
--- a/dlls/msvcrt/tests/string.c
+++ b/dlls/msvcrt/tests/string.c
@@ -64,6 +64,7 @@ static int (__cdecl *p_wcscpy_s)(wchar_t *wcDest, size_t size, const wchar_t *wc
 static int (__cdecl *p_wcsncat_s)(wchar_t *dst, size_t elem, const wchar_t *src, size_t count);
 static int (__cdecl *p_wcsupr_s)(wchar_t *str, size_t size);
 static size_t (__cdecl *p_strnlen)(const char *, size_t);
+static int (__cdecl *p_strnicoll)(const char *, const char *, size_t);
 static __int64 (__cdecl *p_strtoi64)(const char *, char **, int);
 static unsigned __int64 (__cdecl *p_strtoui64)(const char *, char **, int);
 static int (__cdecl *pwcstombs_s)(size_t*,char*,size_t,const wchar_t*,size_t);
@@ -954,6 +955,42 @@ static void test_strnlen(void)
     ok(res == 0, "Returned length = %d\n", (int)res);
 }
 
+static const struct {
+    const char* str1;
+    const char* str2;
+    const int digits;
+    const int res;
+} testcases_strnicoll[] = {
+    { "aaaa", "bbbb", 4, -1 },
+    { "bbbb", "aaaa", 4, 1 },
+    { "aaaa", "aaaa", 4, 0 },
+    { "aaac", "aaab", 3, 0 },
+    { "bbbb", "aaaa", 0, 0 },
+    { "aaaa", "bbbb", 0, 0 },
+    { "aaba", "aaaa", 3, 1 },
+    { "aaaa", "aaba", 3, -1 },
+    { "aaaa", "bbbb", 100, -1 },
+    /* end mark */
+    { 0}
+};
+
+static void test__strnicoll(void)
+{
+    int i, res;
+
+    if(!p_strnicoll) {
+        win_skip("_strnicoll not found\n");
+        return;
+    }
+
+    for(i = 0; testcases_strnicoll[i].str1; i++) {
+        res = p_strnicoll(testcases_strnicoll[i].str1, testcases_strnicoll[i].str2, testcases_strnicoll[i].digits);
+        ok(res == testcases_strnicoll[i].res, "str1 = %s, str2 = %s, digits = %d, returned = %d - should be %d\n",
+            testcases_strnicoll[i].str1, testcases_strnicoll[i].str2, testcases_strnicoll[i].digits,
+            res, testcases_strnicoll[i].res );
+    }
+}
+
 static void test__strtoi64(void)
 {
     static const char no1[] = "31923";
@@ -1723,6 +1760,7 @@ START_TEST(string)
     p_wcsncat_s = (void *)GetProcAddress( hMsvcrt,"wcsncat_s" );
     p_wcsupr_s = (void *)GetProcAddress( hMsvcrt,"_wcsupr_s" );
     p_strnlen = (void *)GetProcAddress( hMsvcrt,"strnlen" );
+    p_strnicoll = (void *)GetProcAddress( hMsvcrt,"_strnicoll" );
     p_strtoi64 = (void *)GetProcAddress(hMsvcrt, "_strtoi64");
     p_strtoui64 = (void *)GetProcAddress(hMsvcrt, "_strtoui64");
     pmbstowcs_s = (void *)GetProcAddress(hMsvcrt, "mbstowcs_s");
@@ -1762,6 +1800,7 @@ START_TEST(string)
     test__wcsupr_s();
     test_strtol();
     test_strnlen();
+    test__strnicoll();
     test__strtoi64();
     test__strtod();
     test_mbstowcs();
-- 
1.7.0.4




More information about the wine-patches mailing list