From: Thomas Faber Date: Tue, 10 Jul 2012 08:07:44 +0000 (+0000) Subject: [USER32_APITEST] X-Git-Tag: backups/ros-csrss@57560~681 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=20d01189dbf8e0b604eaad3126c2bc900d7d5502 [USER32_APITEST] - Handle some wsprintf-specific cases in the CRT sprintf test svn path=/trunk/; revision=56862 --- diff --git a/rostests/apitests/crt/sprintf.c b/rostests/apitests/crt/sprintf.c index 790f9b4df75..27658f27aab 100644 --- a/rostests/apitests/crt/sprintf.c +++ b/rostests/apitests/crt/sprintf.c @@ -151,9 +151,11 @@ START_TEST(sprintf) 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 @@ START_TEST(sprintf) ok_str(Buffer, "hell"); ok_int(Length, 4); -#ifndef TEST_USER32 StartSeh() Length = sprintf(Buffer, "%.*s", -1, "hello"); +#ifdef TEST_USER32 + ok_str(Buffer, "*s"); + ok_int(Length, 2); +#else ok_str(Buffer, "hello"); ok_int(Length, 5); - EndSeh(STATUS_SUCCESS); #endif + EndSeh(STATUS_SUCCESS); String = AllocateGuarded(6); if (!String) @@ -219,32 +224,47 @@ START_TEST(sprintf) 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); +#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); +#ifdef TEST_USER32 + EndSeh(STATUS_ACCESS_VIOLATION); +#else EndSeh(STATUS_SUCCESS); +#endif StartSeh() Length = sprintf(Buffer, "%.*s", 5, String); +#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 @@ START_TEST(sprintf) Length = sprintf(Buffer, "%8.5s", String); ok_str(Buffer, " hello"); ok_int(Length, 8); +#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 + EndSeh(STATUS_SUCCESS); FreeGuarded(String); }