Alexandre Julliard : msvcrt/tests: Fix the printf pointer formatting tests on 64-bit.

Alexandre Julliard julliard at winehq.org
Sun Jan 4 09:09:07 CST 2009


Module: wine
Branch: master
Commit: 159dfb219c8e34f955cda5b65d69385bfbb1a86d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=159dfb219c8e34f955cda5b65d69385bfbb1a86d

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sun Jan  4 14:11:02 2009 +0100

msvcrt/tests: Fix the printf pointer formatting tests on 64-bit.

---

 dlls/msvcrt/tests/printf.c |   75 +++++++++++++++++++++++++++++++------------
 1 files changed, 54 insertions(+), 21 deletions(-)

diff --git a/dlls/msvcrt/tests/printf.c b/dlls/msvcrt/tests/printf.c
index 1603893..9d31f86 100644
--- a/dlls/msvcrt/tests/printf.c
+++ b/dlls/msvcrt/tests/printf.c
@@ -277,20 +277,50 @@ static void test_sprintf( void )
     ok(!strcmp(buffer,"1   "),"Character zero-padded and/or not left-adjusted \"%s\"\n",buffer);
     ok( r==4, "return count wrong\n");
 
-    format = "%p";
-    r = sprintf(buffer,format,(void *)57);
-    ok(!strcmp(buffer,"00000039"),"Pointer formatted incorrectly \"%s\"\n",buffer);
-    ok( r==8, "return count wrong\n");
-
-    format = "%#012p";
-    r = sprintf(buffer,format,(void *)57);
-    ok(!strcmp(buffer,"  0X00000039"),"Pointer formatted incorrectly\n");
-    ok( r==12, "return count wrong\n");
-
-    format = "%Fp";
-    r = sprintf(buffer,format,(void *)57);
-    ok(!strcmp(buffer,"00000039"),"Pointer formatted incorrectly \"%s\"\n",buffer);
-    ok( r==8, "return count wrong\n");
+    if (sizeof(void *) == 8)
+    {
+        format = "%p";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"0000000000000039"),"Pointer formatted incorrectly \"%s\"\n",buffer);
+        ok( r==16, "return count wrong\n");
+
+        format = "%#020p";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"  0X0000000000000039"),"Pointer formatted incorrectly\n");
+        ok( r==20, "return count wrong\n");
+
+        format = "%Fp";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"0000000000000039"),"Pointer formatted incorrectly \"%s\"\n",buffer);
+        ok( r==16, "return count wrong\n");
+
+        format = "%#-020p";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"0X0000000000000039  "),"Pointer formatted incorrectly\n");
+        ok( r==20, "return count wrong\n");
+    }
+    else
+    {
+        format = "%p";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"00000039"),"Pointer formatted incorrectly \"%s\"\n",buffer);
+        ok( r==8, "return count wrong\n");
+
+        format = "%#012p";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"  0X00000039"),"Pointer formatted incorrectly\n");
+        ok( r==12, "return count wrong\n");
+
+        format = "%Fp";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"00000039"),"Pointer formatted incorrectly \"%s\"\n",buffer);
+        ok( r==8, "return count wrong\n");
+
+        format = "%#-012p";
+        r = sprintf(buffer,format,(void *)57);
+        ok(!strcmp(buffer,"0X00000039  "),"Pointer formatted incorrectly\n");
+        ok( r==12, "return count wrong\n");
+    }
 
     format = "%04s";
     r = sprintf(buffer,format,"foo");
@@ -312,11 +342,6 @@ static void test_sprintf( void )
     ok(!strcmp(buffer,"foo  "),"Negative field width ignored \"%s\"\n",buffer);
     ok( r==5, "return count wrong\n");
 
-    format = "%#-012p";
-    r = sprintf(buffer,format,(void *)57);
-    ok(!strcmp(buffer,"0X00000039  "),"Pointer formatted incorrectly\n");
-    ok( r==12, "return count wrong\n");
-
     format = "hello";
     r = sprintf(buffer, format);
     ok(!strcmp(buffer,"hello"), "failed\n");
@@ -455,8 +480,16 @@ static void test_sprintf( void )
 
     format = "%p";
     r = sprintf(buffer, format,0);
-    ok(!strcmp(buffer,"00000000"), "failed\n");
-    ok( r==8, "return count wrong\n");
+    if (sizeof(void *) == 8)
+    {
+        ok(!strcmp(buffer,"0000000000000000"), "failed\n");
+        ok( r==16, "return count wrong\n");
+    }
+    else
+    {
+        ok(!strcmp(buffer,"00000000"), "failed\n");
+        ok( r==8, "return count wrong\n");
+    }
 
     format = "%s";
     r = sprintf(buffer, format,0);




More information about the wine-cvs mailing list