More msvcrt scanf tests

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Sun Feb 22 15:33:19 CST 2004


Changelog
	dlls/msvcrt/test/scanf.c
	More tests (I64, L)  and mark sprintf tests todo_wine()
-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/dlls/msvcrt/tests/scanf.c
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/tests/scanf.c,v
retrieving revision 1.13
diff -u -r1.13 scanf.c
--- wine/dlls/msvcrt/tests/scanf.c	27 Jan 2004 04:01:10 -0000	1.13
+++ wine/dlls/msvcrt/tests/scanf.c	22 Feb 2004 21:24:41 -0000
@@ -31,6 +31,8 @@
     char pname[]=" St. Petersburg, Florida\n";
     int hour=21,min=59,sec=20;
     int  number,number_so_far;
+    ULONGLONG ulong_long;
+    LONGLONG long_long;
 
     
     /* check EOF */
@@ -95,23 +97,49 @@
     ret = sscanf(buffer, "%d", &result);
     ok( ret == 1 , "Wrong number of arguments read\n");
     ok(result == 123, "Wrong number read\n");
+
+    strcpy(buffer,"0x1234567890");
+    ret = sscanf(buffer,"%I64x",&ulong_long);
+    ok( ret == 1 , "Wrong number of arguments read for I64\n");
+    ok(ulong_long == 0x1234567890, "Wrong number read %I64X\n",ulong_long);
+
+    strcpy(buffer,"12345678901234");
+    ret = sscanf(buffer,"%I64d",&long_long);
+    ok( ret == 1 , "Wrong number of arguments read for I64\n");
+    ok(long_long == 12345678901234, "Wrong number read %Ld\n",long_long);
+
+    strcpy(buffer,"-12345678901234");
+    ret = sscanf(buffer,"%I64d",&long_long);
+    ok( ret == 1 , "Wrong number of arguments read for I64\n");
+    ok(long_long == -12345678901234, "Wrong number read %Ld\n",long_long);
+
+    strcpy(buffer,"0x1234567890");
+    ret = sscanf(buffer,"%Lx",&ulong_long);
+    ok( ret == 1 , "Wrong number of arguments read for L\n");
+    ok(ulong_long == 0x1234567890, "Wrong number read %I64X\n",ulong_long);
+
+    strcpy(buffer,"12345678901234");
+    ret = sscanf(buffer,"%I64d",&long_long);
+    ok( ret == 1 , "Wrong number of arguments read for I64\n");
+    ok(long_long == 12345678901234, "Wrong number read %Ld\n",long_long);
+
+    strcpy(buffer,"-12345678901234");
+    ret = sscanf(buffer,"%I64d",&long_long);
+    ok( ret == 1 , "Wrong number of arguments read for I64\n");
+    ok(long_long == -12345678901234, "Wrong number read %Ld\n",long_long);
 }
 
 static void test_sprintf( void )
 {
     char buffer[100];
-    const char *I64d = "%I64d";
+    const char *I64x = "%I64x";
     double pnumber=789456123;
     sprintf(buffer,"%+#23.15e",pnumber);
-    todo_wine
-      {
-	ok(strstr(buffer,"e+008") != 0,"Sprintf different \"%s\"\n",buffer);
-      }
-    sprintf(buffer,I64d,((ULONGLONG)0xffffffff)*0xffffffff);
-    todo_wine
-      {
-	ok(strlen(buffer) == 19,"Problem with long long \"%s\"\n",buffer);
-      }
+    todo_wine 	ok(strstr(buffer,"e+008") != 0,"Sprintf different \"%s\"\n",buffer);
+    sprintf(buffer,I64x,(ULONGLONG)0xffffffffffffffff);
+    todo_wine ok(strlen(buffer) == 16,"Problem with long long \"%s\"\n",buffer);
+    sprintf(buffer,"%Ld",(ULONGLONG)0xfffffffffffffff);
+    todo_wine ok(strlen(buffer) == 2,"Problem with long long \"%s\"\n",buffer);
 }
 
 static void test_snprintf (void)



More information about the wine-patches mailing list