2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for _sntprintf
5 * PROGRAMMER: Thomas Faber <thfabba@gmx.de>
8 #define WIN32_NO_STATUS
12 #include <pseh/pseh2.h>
13 #include <ndk/mmfuncs.h>
14 #include <ndk/rtlfuncs.h>
16 #define StartSeh() ExceptionStatus = STATUS_SUCCESS; _SEH2_TRY {
17 #define EndSeh(ExpectedStatus) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { ExceptionStatus = _SEH2_GetExceptionCode(); } _SEH2_END; ok(ExceptionStatus == ExpectedStatus, "Exception %lx, expected %lx\n", ExceptionStatus, ExpectedStatus)
19 /* winetest_platform is "windows" for us, so broken() doesn't do what it should :( */
23 START_TEST(_sntprintf
)
25 NTSTATUS ExceptionStatus
;
27 size_t BufferSize
= sizeof(Buffer
) / sizeof(Buffer
[0]);
31 Result
= _sntprintf(NULL
, 0, _T("Hello"));
37 EndSeh(STATUS_SUCCESS
);
40 Result
= _sntprintf(NULL
, 1, _T("Hello"));
42 broken(Result
== -1) /* Win7 */, "Result = %d\n", Result
);
43 #if defined(_UNICODE) || defined(TEST_CRTDLL)
44 EndSeh(STATUS_ACCESS_VIOLATION
);
46 EndSeh(STATUS_SUCCESS
);
50 FillMemory(Buffer
, sizeof(Buffer
), 0x55);
51 Result
= _sntprintf(Buffer
, BufferSize
, _T("Hello"));
53 ok(Buffer
[0] == _T('H'), "\n");
54 ok(Buffer
[1] == _T('e'), "\n");
55 ok(Buffer
[2] == _T('l'), "\n");
56 ok(Buffer
[3] == _T('l'), "\n");
57 ok(Buffer
[4] == _T('o'), "\n");
58 ok(Buffer
[5] == _T('\0'), "\n");
59 ok(Buffer
[6] == (_TCHAR
)0x5555, "\n");
60 EndSeh(STATUS_SUCCESS
);
63 FillMemory(Buffer
, sizeof(Buffer
), 0x55);
64 Result
= _sntprintf(Buffer
, 5, _T("Hello"));
66 ok(Buffer
[0] == _T('H'), "\n");
67 ok(Buffer
[1] == _T('e'), "\n");
68 ok(Buffer
[2] == _T('l'), "\n");
69 ok(Buffer
[3] == _T('l'), "\n");
70 ok(Buffer
[4] == _T('o'), "\n");
71 ok(Buffer
[5] == (_TCHAR
)0x5555, "\n");
72 EndSeh(STATUS_SUCCESS
);
75 FillMemory(Buffer
, sizeof(Buffer
), 0x55);
76 Result
= _sntprintf(Buffer
, 1, _T("Hello"));
78 ok(Buffer
[0] == _T('H'), "\n");
79 ok(Buffer
[1] == (_TCHAR
)0x5555, "\n");
80 EndSeh(STATUS_SUCCESS
);
83 FillMemory(Buffer
, sizeof(Buffer
), 0x55);
84 Result
= _sntprintf(Buffer
, 0, _T("Hello"));
86 ok(Buffer
[0] == (_TCHAR
)0x5555, "\n");
87 EndSeh(STATUS_SUCCESS
);