From: Thomas Faber Date: Tue, 17 Nov 2015 13:45:59 +0000 (+0000) Subject: [USER32_DYNAMIC_APITEST] X-Git-Tag: ReactOS-0.4.0~137 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=72d1f8be4f0ee541088e36b3c03bc99b8c93e690 [USER32_DYNAMIC_APITEST] - Add a test that uses LoadLibrary/FreeLibrary on user32.dll, causing it to re-initialize. CORE-10540 svn path=/trunk/; revision=69923 --- diff --git a/rostests/apitests/CMakeLists.txt b/rostests/apitests/CMakeLists.txt index c111e9caa3b..7513b519d00 100644 --- a/rostests/apitests/CMakeLists.txt +++ b/rostests/apitests/CMakeLists.txt @@ -22,6 +22,7 @@ add_subdirectory(setupapi) add_subdirectory(shell32) add_subdirectory(psapi) add_subdirectory(user32) +add_subdirectory(user32_dynamic) if(NOT ARCH STREQUAL "amd64") add_subdirectory(w32kdll) add_subdirectory(w32knapi) diff --git a/rostests/apitests/user32_dynamic/CMakeLists.txt b/rostests/apitests/user32_dynamic/CMakeLists.txt new file mode 100644 index 00000000000..496e5eac0c3 --- /dev/null +++ b/rostests/apitests/user32_dynamic/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_executable(user32_dynamic_apitest load.c testlist.c) +set_module_type(user32_dynamic_apitest win32cui) +add_importlibs(user32_dynamic_apitest msvcrt kernel32) +add_cd_file(TARGET user32_dynamic_apitest DESTINATION reactos/bin FOR all) diff --git a/rostests/apitests/user32_dynamic/load.c b/rostests/apitests/user32_dynamic/load.c new file mode 100644 index 00000000000..10599a4c4e4 --- /dev/null +++ b/rostests/apitests/user32_dynamic/load.c @@ -0,0 +1,49 @@ +/* + * PROJECT: ReactOS API tests + * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory + * PURPOSE: Test for loading/unloading user32.dll + * PROGRAMMERS: Thomas Faber + */ + +#include + +START_TEST(load) +{ + HMODULE hUser32; + HMODULE hUser32_2; + BOOL Ret; + DWORD Error; + + SetLastError(12345); + hUser32 = LoadLibraryW(L"user32"); + Error = GetLastError(); + ok(hUser32 != NULL, "LoadLibrary failed\n"); + ok(Error != 12345, "Error = %lu\n", Error); + + SetLastError(12345); + hUser32_2 = LoadLibraryW(L"user32"); + Error = GetLastError(); + ok(hUser32_2 == hUser32, "LoadLibrary failed\n"); + ok(Error == 12345, "Error = %lu\n", Error); + + Ret = FreeLibrary(hUser32); + Error = GetLastError(); + ok(Ret == TRUE, "FreeLibrary returned %d\n", Ret); + ok(Error == 12345, "Error = %lu\n", Error); + + Ret = FreeLibrary(hUser32); + Error = GetLastError(); + ok(Ret == TRUE, "FreeLibrary returned %d\n", Ret); + ok(Error == 12345, "Error = %lu\n", Error); + + SetLastError(12345); + hUser32 = LoadLibraryW(L"user32"); + Error = GetLastError(); + ok(hUser32 != NULL, "LoadLibrary failed\n"); + ok(Error == 12345, "Error = %lu\n", Error); + + Ret = FreeLibrary(hUser32); + Error = GetLastError(); + ok(Ret == TRUE, "FreeLibrary returned %d\n", Ret); + ok(Error == 12345, "Error = %lu\n", Error); +} diff --git a/rostests/apitests/user32_dynamic/testlist.c b/rostests/apitests/user32_dynamic/testlist.c new file mode 100644 index 00000000000..9d48d882520 --- /dev/null +++ b/rostests/apitests/user32_dynamic/testlist.c @@ -0,0 +1,10 @@ +#define STANDALONE +#include + +extern void func_load(void); + +const struct test winetest_testlist[] = +{ + { "load", func_load }, + { 0, 0 } +};