Author: tfaber
Date: Tue Jul 10 08:07:44 2012
New Revision: 56862

URL: http://svn.reactos.org/svn/reactos?rev=56862&view=rev
Log:
[USER32_APITEST]
- Handle some wsprintf-specific cases in the CRT sprintf test

Modified:
    trunk/rostests/apitests/crt/sprintf.c

Modified: trunk/rostests/apitests/crt/sprintf.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/sprintf.c?rev=56862&r1=56861&r2=56862&view=diff
==============================================================================
--- trunk/rostests/apitests/crt/sprintf.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/crt/sprintf.c [iso-8859-1] Tue Jul 10 08:07:44 2012
@@ -151,9 +151,11 @@
     ok_str(Buffer, "hello");
     ok_int(Length, 5);
 
-    /* TODO: wsprintf can't do * */
-#ifndef TEST_USER32
     Length = sprintf(Buffer, "%*s", -8, "hello");
+#ifdef TEST_USER32
+    ok_str(Buffer, "*s");
+    ok_int(Length, 2);
+#else
     ok_str(Buffer, "hello   ");
     ok_int(Length, 8);
 #endif
@@ -179,13 +181,16 @@
     ok_str(Buffer, "hell");
     ok_int(Length, 4);
     
-#ifndef TEST_USER32
     StartSeh()
         Length = sprintf(Buffer, "%.*s", -1, "hello");
-        ok_str(Buffer, "hello");
-        ok_int(Length, 5);
-    EndSeh(STATUS_SUCCESS);
-#endif
+#ifdef TEST_USER32
+        ok_str(Buffer, "*s");
+        ok_int(Length, 2);
+#else
+        ok_str(Buffer, "hello");
+        ok_int(Length, 5);
+#endif
+    EndSeh(STATUS_SUCCESS);
 
     String = AllocateGuarded(6);
     if (!String)
@@ -219,32 +224,47 @@
         ok_int(Length, 4);
     EndSeh(STATUS_SUCCESS);
 
-    /* TODO: wsprintf can't do *, and also seems to use strlen despite a
-     * precision being given */
-#ifndef TEST_USER32
     String[5] = '!';
     StartSeh()
         Length = sprintf(Buffer, "%.5s", String);
         ok_str(Buffer, "hello");
         ok_int(Length, 5);
-    EndSeh(STATUS_SUCCESS);
+#ifdef TEST_USER32
+    EndSeh(STATUS_ACCESS_VIOLATION);
+#else
+    EndSeh(STATUS_SUCCESS);
+#endif
 
     StartSeh()
         Length = sprintf(Buffer, "%.6s", String);
         ok_str(Buffer, "hello!");
         ok_int(Length, 6);
-    EndSeh(STATUS_SUCCESS);
+#ifdef TEST_USER32
+    EndSeh(STATUS_ACCESS_VIOLATION);
+#else
+    EndSeh(STATUS_SUCCESS);
+#endif
 
     StartSeh()
         Length = sprintf(Buffer, "%.*s", 5, String);
-        ok_str(Buffer, "hello");
-        ok_int(Length, 5);
+#ifdef TEST_USER32
+        ok_str(Buffer, "*s");
+        ok_int(Length, 2);
+#else
+        ok_str(Buffer, "hello");
+        ok_int(Length, 5);
+#endif
     EndSeh(STATUS_SUCCESS);
 
     StartSeh()
         Length = sprintf(Buffer, "%.*s", 6, String);
+#ifdef TEST_USER32
+        ok_str(Buffer, "*s");
+        ok_int(Length, 2);
+#else
         ok_str(Buffer, "hello!");
         ok_int(Length, 6);
+#endif
     EndSeh(STATUS_SUCCESS);
 
     /* both field width and precision */
@@ -252,20 +272,33 @@
         Length = sprintf(Buffer, "%8.5s", String);
         ok_str(Buffer, "   hello");
         ok_int(Length, 8);
-    EndSeh(STATUS_SUCCESS);
+#ifdef TEST_USER32
+    EndSeh(STATUS_ACCESS_VIOLATION);
+#else
+    EndSeh(STATUS_SUCCESS);
+#endif
 
     StartSeh()
         Length = sprintf(Buffer, "%-*.6s", -8, String);
+#ifdef TEST_USER32
+        ok_str(Buffer, "*.6s");
+        ok_int(Length, 4);
+#else
         ok_str(Buffer, "hello!  ");
         ok_int(Length, 8);
+#endif
     EndSeh(STATUS_SUCCESS);
 
     StartSeh()
         Length = sprintf(Buffer, "%*.*s", -8, 6, String);
+#ifdef TEST_USER32
+        ok_str(Buffer, "*.*s");
+        ok_int(Length, 4);
+#else
         ok_str(Buffer, "hello!  ");
         ok_int(Length, 8);
-    EndSeh(STATUS_SUCCESS);
-#endif
+#endif
+    EndSeh(STATUS_SUCCESS);
 
     FreeGuarded(String);
 }


Reply via email to