setupapi: add case sensitivity string table tests

Andrew Ziem ahziem1 at mailbolt.com
Mon May 1 01:06:14 CDT 2006


These test case sensitivity in setupapi string tables, and all the parts I
modified pass on Microsoft's 98 and XP.   As this is my first Wine patch,
comments are especially welcome.

Index: stringtable.c
===================================================================
RCS file: /home/wine/wine/dlls/setupapi/tests/stringtable.c,v
retrieving revision 1.2
diff -u -r1.2 stringtable.c
--- stringtable.c       23 Sep 2005 10:09:47 -0000      1.2
+++ stringtable.c       1 May 2006 05:59:55 -0000
@@ -48,6 +48,8 @@

 HMODULE hdll;
 static WCHAR string[] = {'s','t','r','i','n','g',0};
+static WCHAR String[] = {'S','t','r','i','n','g',0};
+static WCHAR foo[] = {'f','o','o',0};
 HANDLE table, table2;  /* Handles pointing to our tables */

 static void load_it_up(void)
@@ -89,10 +91,23 @@

 static void test_StringTableAddString(void)
 {
-    DWORD retval;
+    DWORD retval, retval2, retval3, retval4;

+    /* case insensitive */
     retval=pStringTableAddString(table,string,0);
     ok(retval!=-1,"Failed to add string to String Table\n");
+
+    retval2=pStringTableAddString(table,String,0);
+    ok(retval2!=-1,"Failed to add String to String Table\n");
+    ok(retval=retval2,"string and String have different IDs in String Table\n");
+
+    retval3=pStringTableAddString(table,foo,0);
+    ok(retval3!=-1,"Failed to add foo to String Table\n");
+    ok(retval3!=retval2,"foo and String share the same ID in String Table\n");
+
+    /* case sensitive */
+    retval4=pStringTableAddString(table,String,ST_CASE_SENSITIVE_COMPARE);
+    ok(retval!=retval4,"String and string share same ID in Table\n");
 }

 static void test_StringTableDuplicate(void)
@@ -105,11 +120,29 @@
 {
     DWORD retval, retval2;

+    /* case insensitive */
     retval=pStringTableLookUpString(table,string,0);
     ok(retval!=-1,"Failed find string in String Table 1\n");

-    retval2=pStringTableLookUpString(table2,string,0);
-    ok(retval2!=-1,"Failed find string in String Table 2\n");
+    retval=pStringTableLookUpString(table2,string,0);
+    ok(retval!=-1,"Failed find string in String Table 2\n");
+
+    retval=pStringTableLookUpString(table,String,0);
+    ok(retval!=-1,"Failed find String in String Table 1\n");
+
+    retval=pStringTableLookUpString(table2,String,0);
+    ok(retval!=-1,"Failed find String in String Table 2\n");
+
+    retval=pStringTableLookUpString(table,foo,0);
+    ok(retval!=-1,"Failed find foo in String Table 1\n");
+
+    retval=pStringTableLookUpString(table2,foo,0);
+    ok(retval!=-1,"Failed find foo in String Table 2\n");
+
+    /* case sensitive */
+    retval=pStringTableLookUpString(table,string,ST_CASE_SENSITIVE_COMPARE);
+    retval2=pStringTableLookUpString(table,String,ST_CASE_SENSITIVE_COMPARE);
+    ok(retval!=retval2,"Lookup of string = String in Table 1\n");
 }

 static void test_StringTableStringFromId(void)





More information about the wine-patches mailing list