1 /* 2 * PROJECT: ReactOS api tests 3 * LICENSE: GPLv2+ - See COPYING in the top level directory 4 * PURPOSE: Test for FormatMessage and resources 5 * PROGRAMMERS: Pierre Schweitzer 6 */ 7 8 #include <apitest.h> 9 #include <FormatMessage.h> 10 11 WCHAR First[] = L"This is a test message.\r\n"; 12 WCHAR Second[] = L"This is a second test message.\r\n"; 13 14 START_TEST(FormatMessage) 15 { 16 PWSTR Buffer; 17 DWORD Written; 18 19 Buffer = NULL; 20 Written = FormatMessageW(FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ALLOCATE_BUFFER, 21 NULL, MSG_FIRST_MESSAGE, 0, (LPWSTR)&Buffer, 0, NULL); 22 ok(Written != 0, "Unexpected error: %lx\n", GetLastError()); 23 ok(Buffer != NULL, "No buffer allocated\n"); 24 ok(Written == (sizeof(First) - sizeof(UNICODE_NULL)) / sizeof(WCHAR), 25 "Invalid size: %ld (expected: %d)\n", 26 Written, (sizeof(First) - sizeof(UNICODE_NULL)) / sizeof(WCHAR)); 27 ok(RtlCompareMemory(Buffer, First, sizeof(First) - sizeof(UNICODE_NULL)) == 28 sizeof(First) - sizeof(UNICODE_NULL), 29 "Mismatching string: %S (expected : %S)\n", Buffer, First); 30 LocalFree(Buffer); 31 32 Buffer = NULL; 33 Written = FormatMessageW(FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ALLOCATE_BUFFER, 34 NULL, MSG_SECOND_MESSAGE, 0, (LPWSTR)&Buffer, 0, NULL); 35 ok(Written != 0, "Unexpected error: %lx\n", GetLastError()); 36 ok(Buffer != NULL, "No buffer allocated\n"); 37 ok(Written == (sizeof(Second) - sizeof(UNICODE_NULL)) / sizeof(WCHAR), 38 "Invalid size: %ld (expected: %d)\n", 39 Written, (sizeof(Second) - sizeof(UNICODE_NULL)) / sizeof(WCHAR)); 40 ok(RtlCompareMemory(Buffer, Second, sizeof(Second) - sizeof(UNICODE_NULL)) == 41 sizeof(Second) - sizeof(UNICODE_NULL), 42 "Mismatching string: %S (expected: %S)\n", Buffer, Second); 43 LocalFree(Buffer); 44 45 Buffer = NULL; 46 Written = FormatMessageW(FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ALLOCATE_BUFFER, 47 NULL, MSG_SECOND_MESSAGE + 1, 0, (LPWSTR)&Buffer, 0, NULL); 48 ok(Written == 0, "Unexpected success: %ld\n", Written); 49 ok(Buffer == NULL, "Unexpected success: %p\n", Buffer); 50 ok(GetLastError() == 0x13d, "Unexpected error: %lx\n", GetLastError()); 51 } 52