Peter Oberndorfer : msvcrt: Add a test for scanf %p.
Alexandre Julliard
julliard at winehq.org
Wed Jul 2 06:03:29 CDT 2008
Module: wine
Branch: master
Commit: 02fb99e6b360a6f321f716b57df97ca79ec1b9f3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=02fb99e6b360a6f321f716b57df97ca79ec1b9f3
Author: Peter Oberndorfer <kumbayo84 at arcor.de>
Date: Tue Jul 1 21:14:51 2008 +0200
msvcrt: Add a test for scanf %p.
---
dlls/msvcrt/tests/scanf.c | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/msvcrt/tests/scanf.c b/dlls/msvcrt/tests/scanf.c
index 65bea46..c2a695b 100644
--- a/dlls/msvcrt/tests/scanf.c
+++ b/dlls/msvcrt/tests/scanf.c
@@ -28,6 +28,7 @@ static void test_sscanf( void )
char format[20];
int result, ret;
char c;
+ void *ptr;
float res1= -82.6267f, res2= 27.76f, res11, res12;
static const char pname[]=" St. Petersburg, Florida\n";
int hour=21,min=59,sec=20;
@@ -39,6 +40,34 @@ static void test_sscanf( void )
ret = sscanf(buffer, "%d", &result);
ok( ret == EOF,"sscanf returns %x instead of %x\n", ret, EOF );
+ /* check %p */
+ todo_wine {
+ ok( sscanf("000000000046F170", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0x46F170,"sscanf reads %p instead of %x\n", ptr, 0x46F170 );
+
+ ok( sscanf("0046F171", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0x46F171,"sscanf reads %p instead of %x\n", ptr, 0x46F171 );
+
+ ok( sscanf("46F172", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0x46F172,"sscanf reads %p instead of %x\n", ptr, 0x46F172 );
+
+ ok( sscanf("0x46F173", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0,"sscanf reads %p instead of %x\n", ptr, 0 );
+
+ ok( sscanf("-46F174", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0xFFB90E8C,"sscanf reads %p instead of %x\n", ptr, 0xFFB90E8C );
+
+ ok( sscanf("+46F175", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0x46F175,"sscanf reads %p instead of %x\n", ptr, 0x46F175 );
+
+ /* check %p with no hex digits */
+ ok( sscanf("1233", "%p", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0x1233,"sscanf reads %p instead of %x\n", ptr, 0x1233 );
+
+ ok( sscanf("1234", "%P", &ptr) == 1, "sscanf failed\n" );
+ ok( ptr == (void *)0x1234,"sscanf reads %p instead of %x\n", ptr, 0x1234 );
+ }
+
/* check %x */
strcpy(buffer,"0x519");
ok( sscanf(buffer, "%x", &result) == 1, "sscanf failed\n" );
More information about the wine-cvs
mailing list