2 * PROJECT: ReactOS API tests
3 * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory
4 * PURPOSE: Test for AddCommas
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
15 DECLSPEC_IMPORT LPWSTR WINAPI
AddCommasW(DWORD lValue
, LPWSTR lpNumber
);
28 EndSeh(STATUS_ACCESS_VIOLATION
);
30 RtlFillMemory(Number
, sizeof(Number
), 0x55);
31 Ptr
= AddCommasW(0, Number
);
32 ok(Ptr
== Number
, "Ptr = %p, expected %p\n", Ptr
, Number
);
33 ok(Number
[0] == L
'0', "Number[0] = 0x%x\n", Number
[0]);
34 ok(Number
[1] == 0, "Number[1] = 0x%x\n", Number
[1]);
35 ok(Number
[2] == 0x5555, "Number[2] = 0x%x\n", Number
[2]);
37 Ret
= GetLocaleInfoW(LOCALE_USER_DEFAULT
,
40 RTL_NUMBER_OF(Separator
));
43 skip("GetLocaleInfoW failed with %lu\n", GetLastError());
46 Ret
= GetLocaleInfoW(LOCALE_USER_DEFAULT
,
49 RTL_NUMBER_OF(Grouping
));
52 skip("GetLocaleInfoW failed with %lu\n", GetLastError());
56 if (wcscmp(Grouping
, L
"3;0"))
58 skip("Skipping remaining tests due to incompatible locale (separator '%ls', grouping '%ls')\n",
63 RtlFillMemory(Number
, sizeof(Number
), 0x55);
64 Ptr
= AddCommasW(123456789, Number
);
65 ok(Ptr
== Number
, "Ptr = %p, expected %p\n", Ptr
, Number
);
66 StringCbPrintfW(Expected
, sizeof(Expected
), L
"123%ls456%ls789", Separator
, Separator
);
67 ok(!wcscmp(Number
, Expected
), "Number = '%ls', expected %ls\n", Number
, Expected
);
68 ok(Number
[wcslen(Number
) + 1] == 0x5555, "Number[N] = 0x%x\n", Number
[wcslen(Number
) + 1]);
70 RtlFillMemory(Number
, sizeof(Number
), 0x55);
71 Ptr
= AddCommasW(4294967295U, Number
);
72 ok(Ptr
== Number
, "Ptr = %p, expected %p\n", Ptr
, Number
);
73 StringCbPrintfW(Expected
, sizeof(Expected
), L
"4%ls294%ls967%ls295", Separator
, Separator
, Separator
);
74 ok(!wcscmp(Number
, Expected
), "Number = '%ls', expected %ls\n", Number
, Expected
);
75 ok(Number
[wcslen(Number
) + 1] == 0x5555, "Number[N] = 0x%x\n", Number
[wcslen(Number
) + 1]);