Author: tfaber Date: Wed Apr 25 13:06:30 2012 New Revision: 56419
URL: http://svn.reactos.org/svn/reactos?rev=56419&view=rev Log: [NTDLL_APITEST] - Try GetProcAddress even on private functions. Allows easier testing in ROS by temporarily exporting them.
Modified: trunk/rostests/apitests/ntdll/RtlDetermineDosPathNameType.c trunk/rostests/apitests/ntdll/RtlDoesFileExists.c trunk/rostests/apitests/ntdll/RtlGetFullPathName_Ustr.c
Modified: trunk/rostests/apitests/ntdll/RtlDetermineDosPathNameType.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/ntdll/RtlDetermin... ============================================================================== --- trunk/rostests/apitests/ntdll/RtlDetermineDosPathNameType.c [iso-8859-1] (original) +++ trunk/rostests/apitests/ntdll/RtlDetermineDosPathNameType.c [iso-8859-1] Wed Apr 25 13:06:30 2012 @@ -6,6 +6,7 @@ */
#define WIN32_NO_STATUS +#define UNICODE #include <wine/test.h> #include <pseh/pseh2.h> #include <ndk/mmfuncs.h> @@ -183,18 +184,22 @@ USHORT Length;
if (!RtlDetermineDosPathNameType_Ustr) - skip("RtlDetermineDosPathNameType_Ustr unavailable\n"); + { + RtlDetermineDosPathNameType_Ustr = (PVOID)GetProcAddress(GetModuleHandle(L"ntdll"), "RtlDetermineDosPathNameType_Ustr"); + if (!RtlDetermineDosPathNameType_Ustr) + skip("RtlDetermineDosPathNameType_Ustr unavailable\n"); + }
StartSeh() RtlDetermineDosPathNameType_U(NULL); EndSeh(STATUS_ACCESS_VIOLATION);
if (RtlDetermineDosPathNameType_Ustr) { - UNICODE_STRING PathString; - StartSeh() RtlDetermineDosPathNameType_Ustr(NULL); EndSeh(STATUS_ACCESS_VIOLATION); - - RtlInitEmptyUnicodeString(&PathString, NULL, MAXUSHORT); - PathType = RtlDetermineDosPathNameType_Ustr(&PathString); - ok(PathType == RtlPathTypeRelative, "PathType = %d\n", PathType); + UNICODE_STRING PathString; + StartSeh() RtlDetermineDosPathNameType_Ustr(NULL); EndSeh(STATUS_ACCESS_VIOLATION); + + RtlInitEmptyUnicodeString(&PathString, NULL, MAXUSHORT); + PathType = RtlDetermineDosPathNameType_Ustr(&PathString); + ok(PathType == RtlPathTypeRelative, "PathType = %d\n", PathType); }
for (i = 0; i < sizeof(Tests) / sizeof(Tests[0]); i++)
Modified: trunk/rostests/apitests/ntdll/RtlDoesFileExists.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/ntdll/RtlDoesFile... ============================================================================== --- trunk/rostests/apitests/ntdll/RtlDoesFileExists.c [iso-8859-1] (original) +++ trunk/rostests/apitests/ntdll/RtlDoesFileExists.c [iso-8859-1] Wed Apr 25 13:06:30 2012 @@ -163,10 +163,52 @@ BOOL Success; HANDLE Handle;
+ if (!RtlDoesFileExists_UEx) + { + RtlDoesFileExists_UEx = (PVOID)GetProcAddress(GetModuleHandle(L"ntdll"), "RtlDoesFileExists_UEx"); + if (!RtlDoesFileExists_UEx) + skip("RtlDoesFileExists_UEx unavailable\n"); + } + + if (!RtlDoesFileExists_UStr) + { + RtlDoesFileExists_UStr = (PVOID)GetProcAddress(GetModuleHandle(L"ntdll"), "RtlDoesFileExists_UStr"); + if (!RtlDoesFileExists_UStr) + skip("RtlDoesFileExists_UStr unavailable\n"); + } + + if (!RtlDoesFileExists_UstrEx) + { + RtlDoesFileExists_UstrEx = (PVOID)GetProcAddress(GetModuleHandle(L"ntdll"), "RtlDoesFileExists_UstrEx"); + if (!RtlDoesFileExists_UstrEx) + skip("RtlDoesFileExists_UstrEx unavailable\n"); + } + StartSeh() Ret = RtlDoesFileExists_U(NULL); ok(Ret == FALSE, "NULL file exists?!\n"); EndSeh(STATUS_SUCCESS); + + if (RtlDoesFileExists_UEx) + { + StartSeh() + Ret = RtlDoesFileExists_UEx(NULL, TRUE); + ok(Ret == FALSE, "NULL file exists?!\n"); + Ret = RtlDoesFileExists_UEx(NULL, FALSE); + ok(Ret == FALSE, "NULL file exists?!\n"); + EndSeh(STATUS_SUCCESS); + } + + if (RtlDoesFileExists_UStr) + { + StartSeh() Ret = RtlDoesFileExists_UStr(NULL); EndSeh(STATUS_ACCESS_VIOLATION); + } + + if (RtlDoesFileExists_UstrEx) + { + StartSeh() RtlDoesFileExists_UstrEx(NULL, FALSE); EndSeh(STATUS_ACCESS_VIOLATION); + StartSeh() RtlDoesFileExists_UstrEx(NULL, TRUE); EndSeh(STATUS_ACCESS_VIOLATION); + }
swprintf(FileName, L"C:\%ls", CustomPath); /* Make sure this directory doesn't exist */
Modified: trunk/rostests/apitests/ntdll/RtlGetFullPathName_Ustr.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/ntdll/RtlGetFullP... ============================================================================== --- trunk/rostests/apitests/ntdll/RtlGetFullPathName_Ustr.c [iso-8859-1] (original) +++ trunk/rostests/apitests/ntdll/RtlGetFullPathName_Ustr.c [iso-8859-1] Wed Apr 25 13:06:30 2012 @@ -6,6 +6,7 @@ */
#define WIN32_NO_STATUS +#define UNICODE #include <wine/test.h> #include <pseh/pseh2.h> #include <ndk/rtlfuncs.h> @@ -307,7 +308,14 @@ PATH_TYPE_AND_UNKNOWN PathType;
if (!RtlGetFullPathName_Ustr) - return; + { + RtlGetFullPathName_Ustr = (PVOID)GetProcAddress(GetModuleHandle(L"ntdll"), "RtlGetFullPathName_Ustr"); + if (!RtlGetFullPathName_Ustr) + { + skip("RtlGetFullPathName_Ustr unavailable\n"); + return; + } + }
/* NULL parameters */ StartSeh()