https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2eb96f0c40d4431b0d7d1d...
commit 2eb96f0c40d4431b0d7d1de211494375302ec611 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Sun Jan 5 00:51:13 2020 +0100 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Sat Feb 8 22:09:13 2020 +0100
[ROSTESTS] Update test helpers to allow custom file/line info --- .../rostests/apitests/browseui/IACLCustomMRU.cpp | 10 +++--- .../apitests/ntdll/RtlNtPathNameToDosPathName.c | 34 ++++++++++---------- modules/rostests/apitests/user32/CreateWindowEx.c | 3 +- sdk/include/reactos/wine/test.h | 36 +++++++++++++--------- 4 files changed, 46 insertions(+), 37 deletions(-)
diff --git a/modules/rostests/apitests/browseui/IACLCustomMRU.cpp b/modules/rostests/apitests/browseui/IACLCustomMRU.cpp index 1f2025daca9..9cf5ef765d4 100644 --- a/modules/rostests/apitests/browseui/IACLCustomMRU.cpp +++ b/modules/rostests/apitests/browseui/IACLCustomMRU.cpp @@ -1,8 +1,8 @@ /* * PROJECT: ReactOS api tests - * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) + * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) * PURPOSE: Test for IACLCustomMRU objects - * COPYRIGHT: Copyright 2017 Mark Jansen (mark.jansen@reactos.org) + * COPYRIGHT: Copyright 2017-2020 Mark Jansen (mark.jansen@reactos.org) */
#define _UNICODE @@ -22,7 +22,7 @@ ULONG DbgPrint(PCH Format,...); #include <strsafe.h> #include <initguid.h>
-#define ok_hex_(file, line, key, expression, result) \ +#define ok_hex2(file, line, key, expression, result) \ do { \ int _value = (expression); \ ok_(file, line)(_value == (result), "Wrong value for '%s', expected: " #result " (0x%x), got: 0x%x for %c\n", \ @@ -84,7 +84,7 @@ static void verify_mru_(const char* file, int line, IACLCustomMRU* mru, PCWSTR M CStringW tmp; tmp += Key; LSTATUS Status = key.QueryStringValue(tmp, Value, &nChars); - ok_hex_(file, line, Key, Status, ERROR_SUCCESS); + ok_hex2(file, line, Key, Status, ERROR_SUCCESS); if (Status == ERROR_SUCCESS) { ok_(file, line)(!wcscmp(Value, Entry), "Expected value %c to be %S, was %S\n", (char)Key, Entry, Value); @@ -98,7 +98,7 @@ static void verify_mru_(const char* file, int line, IACLCustomMRU* mru, PCWSTR M WCHAR Value[MAX_PATH]; ULONG nChars = _countof(Value); LSTATUS Status = key.QueryStringValue(L"MRUList", Value, &nChars); - ok_hex_(file, line, Key, Status, ERROR_SUCCESS); + ok_hex2(file, line, Key, Status, ERROR_SUCCESS); if (Status == ERROR_SUCCESS) { ok_(file, line)(!wcscmp(Value, MRUString), "Expected MRUList to be %S, was %S\n", MRUString, Value); diff --git a/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c b/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c index 311dfd8d535..44309249dd5 100644 --- a/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c +++ b/modules/rostests/apitests/ntdll/RtlNtPathNameToDosPathName.c @@ -1,15 +1,15 @@ /* - * PROJECT: ReactOS api tests - * LICENSE: GPLv2+ - See COPYING in the top level directory - * PURPOSE: Test for RtlNtPathNameToDosPathName - * PROGRAMMER: Mark Jansen + * PROJECT: ReactOS api tests + * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) + * PURPOSE: Test for RtlNtPathNameToDosPathName + * COPYRIGHT: Copyright 2017-2020 Mark Jansen (mark.jansen@reactos.org) */
#include "precomp.h"
NTSTATUS (NTAPI *pRtlNtPathNameToDosPathName)(ULONG Flags, PRTL_UNICODE_STRING_BUFFER Path, PULONG Type, PULONG Unknown4);
-#define ok_hex_(expression, result) \ +#define ok_hex2(expression, result) \ do { \ int _value = (expression); \ winetest_ok(_value == (result), "Wrong value for '%s', expected: " #result " (0x%x), got: 0x%x\n", \ @@ -17,14 +17,14 @@ NTSTATUS (NTAPI *pRtlNtPathNameToDosPathName)(ULONG Flags, PRTL_UNICODE_STRING_B } while (0)
-#define ok_ptr_(expression, result) \ +#define ok_ptr2(expression, result) \ do { \ void *_value = (expression); \ winetest_ok(_value == (result), "Wrong value for '%s', expected: " #result " (%p), got: %p\n", \ #expression, (void*)(result), _value); \ } while (0)
-#define ok_wstr_(x, y) \ +#define ok_wstr2(x, y) \ winetest_ok(wcscmp(x, y) == 0, "Wrong string. Expected '%S', got '%S'\n", y, x)
@@ -369,14 +369,14 @@ static void test_table(struct test_entry* Entry) RtlEnsureBufferSize(RTL_SKIP_BUFFER_COPY, &Buffer.ByteBuffer, Buffer.String.MaximumLength); memcpy(Buffer.ByteBuffer.Buffer, Buffer.String.Buffer, Buffer.String.MaximumLength);
- ok_hex_(pRtlNtPathNameToDosPathName(0, &Buffer, &Type, NULL), STATUS_SUCCESS); + ok_hex2(pRtlNtPathNameToDosPathName(0, &Buffer, &Type, NULL), STATUS_SUCCESS);
- ok_hex_(Type, Entry->Type); - ok_wstr_(Buffer.String.Buffer, Entry->OutputPath); + ok_hex2(Type, Entry->Type); + ok_wstr2(Buffer.String.Buffer, Entry->OutputPath); /* If there is no change in the path, the pointer is unchanged */ if (!wcscmp(Entry->InputPath, Entry->OutputPath)) { - ok_ptr_(Buffer.String.Buffer, Entry->InputPath); + ok_ptr2(Buffer.String.Buffer, Entry->InputPath); } else { @@ -385,16 +385,16 @@ static void test_table(struct test_entry* Entry) (PUCHAR)Buffer.String.Buffer <= (Buffer.ByteBuffer.StaticBuffer + Buffer.ByteBuffer.StaticSize), "Expected Buffer to point inside StaticBuffer\n"); } - ok_wstr_((const WCHAR *)Buffer.ByteBuffer.Buffer, Entry->OutputPath); + ok_wstr2((const WCHAR *)Buffer.ByteBuffer.Buffer, Entry->OutputPath);
- ok_hex_(Buffer.MinimumStaticBufferForTerminalNul, 0); + ok_hex2(Buffer.MinimumStaticBufferForTerminalNul, 0);
/* For none of our tests should we exceed the StaticBuffer size! */ - ok_ptr_(Buffer.ByteBuffer.Buffer, Buffer.ByteBuffer.StaticBuffer); - ok_hex_(Buffer.ByteBuffer.Size, Buffer.ByteBuffer.StaticSize); + ok_ptr2(Buffer.ByteBuffer.Buffer, Buffer.ByteBuffer.StaticBuffer); + ok_hex2(Buffer.ByteBuffer.Size, Buffer.ByteBuffer.StaticSize);
- ok_hex_(Buffer.ByteBuffer.ReservedForAllocatedSize, 0); - ok_ptr_(Buffer.ByteBuffer.ReservedForIMalloc, NULL); + ok_hex2(Buffer.ByteBuffer.ReservedForAllocatedSize, 0); + ok_ptr2(Buffer.ByteBuffer.ReservedForIMalloc, NULL);
RtlFreeBuffer(&Buffer.ByteBuffer); } diff --git a/modules/rostests/apitests/user32/CreateWindowEx.c b/modules/rostests/apitests/user32/CreateWindowEx.c index 068dbc5208f..c048f903469 100644 --- a/modules/rostests/apitests/user32/CreateWindowEx.c +++ b/modules/rostests/apitests/user32/CreateWindowEx.c @@ -3,7 +3,7 @@ * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory * PURPOSE: Test for CreateWindowEx * PROGRAMMERS: Thomas Faber thomas.faber@reactos.org - * Mark Jansen + * Mark Jansen (mark.jansen@reactos.org) */
#include "precomp.h" @@ -94,6 +94,7 @@ DWORD g_ChildNcExpectExStyle = 0; DWORD g_ChildExpectStyle = 0; DWORD g_ChildExpectExStyle = 0;
+#undef ok_hex_ #define ok_hex_(expression, result) \ do { \ int _value = (expression); \ diff --git a/sdk/include/reactos/wine/test.h b/sdk/include/reactos/wine/test.h index 4da38a4533a..d3e0c76d8ff 100644 --- a/sdk/include/reactos/wine/test.h +++ b/sdk/include/reactos/wine/test.h @@ -821,47 +821,55 @@ int main( int argc, char **argv )
// Some helpful definitions
-#define ok_hex(expression, result) \ +#define ok_hex_(file, line, expression, result) \ do { \ int _value = (expression); \ - ok(_value == (result), "Wrong value for '%s', expected: " #result " (0x%x), got: 0x%x\n", \ + ok_(file, line)(_value == (result), "Wrong value for '%s', expected: " #result " (0x%x), got: 0x%x\n", \ #expression, (int)(result), _value); \ } while (0) +#define ok_hex(expression, result) ok_hex_(__FILE__, __LINE__, expression, result)
-#define ok_dec(expression, result) \ +#define ok_dec_(file, line, expression, result) \ do { \ int _value = (expression); \ - ok(_value == (result), "Wrong value for '%s', expected: " #result " (%d), got: %d\n", \ + ok_(file, line)(_value == (result), "Wrong value for '%s', expected: " #result " (%d), got: %d\n", \ #expression, (int)(result), _value); \ } while (0) +#define ok_dec(expression, result) ok_dec_(__FILE__, __LINE__, expression, result)
-#define ok_ptr(expression, result) \ +#define ok_ptr_(file, line, expression, result) \ do { \ void *_value = (expression); \ - ok(_value == (result), "Wrong value for '%s', expected: " #result " (%p), got: %p\n", \ + ok_(file, line)(_value == (result), "Wrong value for '%s', expected: " #result " (%p), got: %p\n", \ #expression, (void*)(result), _value); \ } while (0) +#define ok_ptr(expression, result) ok_ptr_(__FILE__, __LINE__, expression, result)
-#define ok_size_t(expression, result) \ +#define ok_size_t_(file, line, expression, result) \ do { \ size_t _value = (expression); \ - ok(_value == (result), "Wrong value for '%s', expected: " #result " (%Ix), got: %Ix\n", \ + ok_(file, line)(_value == (result), "Wrong value for '%s', expected: " #result " (%Ix), got: %Ix\n", \ #expression, (size_t)(result), _value); \ } while (0) +#define ok_size_t(expression, result) ok_size_t_(__FILE__, __LINE__, expression, result)
#define ok_char(expression, result) ok_hex(expression, result)
-#define ok_err(error) \ - ok(GetLastError() == (error), "Wrong last error. Expected " #error ", got 0x%lx\n", GetLastError()) +#define ok_err_(file, line, error) \ + ok_(file, line)(GetLastError() == (error), "Wrong last error. Expected " #error ", got 0x%lx\n", GetLastError()) +#define ok_err(error) ok_err_(__FILE__, __LINE__, error)
-#define ok_str(x, y) \ - ok(strcmp(x, y) == 0, "Wrong string. Expected '%s', got '%s'\n", y, x) +#define ok_str_(file, line, x, y) \ + ok_(file, line)(strcmp(x, y) == 0, "Wrong string. Expected '%s', got '%s'\n", y, x) +#define ok_str(x, y) ok_str_(__FILE__, __LINE__, x, y)
-#define ok_wstr(x, y) \ - ok(wcscmp(x, y) == 0, "Wrong string. Expected '%S', got '%S'\n", y, x) +#define ok_wstr_(file, line, x, y) \ + ok_(file, line)(wcscmp(x, y) == 0, "Wrong string. Expected '%S', got '%S'\n", y, x) +#define ok_wstr(x, y) ok_wstr_(__FILE__, __LINE__, x, y)
#define ok_long(expression, result) ok_hex(expression, result) #define ok_int(expression, result) ok_dec(expression, result) +#define ok_int_(file, line, expression, result) ok_dec_(file, line, expression, result) #define ok_ntstatus(status, expected) ok_hex(status, expected) #define ok_hdl ok_ptr