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