test,win: fix -Wcast-function-type warnings

This commit is contained in:
Ben Noordhuis 2025-08-24 11:46:03 +02:00
parent 3813460d57
commit db276cb730
2 changed files with 14 additions and 11 deletions

View File

@ -214,7 +214,10 @@ static int maybe_run_test(int argc, char **argv) {
#ifdef _WIN32
DWORD flags;
HMODULE kernelbase_module;
sCompareObjectHandles pCompareObjectHandles; /* function introduced in Windows 10 */
union {
FARPROC proc;
sCompareObjectHandles pCompareObjectHandles; /* Windows >= 10 */
} u;
#endif
notify_parent_process();
ASSERT_EQ(sizeof(closed_fd), read(0, &closed_fd, sizeof(closed_fd)));
@ -224,10 +227,9 @@ static int maybe_run_test(int argc, char **argv) {
ASSERT_GT((intptr_t) open_fd, 0);
ASSERT_NE(0, GetHandleInformation(open_fd, &flags));
kernelbase_module = GetModuleHandleW(L"kernelbase.dll");
pCompareObjectHandles = (sCompareObjectHandles)
GetProcAddress(kernelbase_module, "CompareObjectHandles");
ASSERT_NE(pCompareObjectHandles == NULL || \
!pCompareObjectHandles(open_fd, closed_fd), 0);
u.proc = GetProcAddress(kernelbase_module, "CompareObjectHandles");
if (u.pCompareObjectHandles != NULL)
ASSERT_EQ(FALSE, u.pCompareObjectHandles(open_fd, closed_fd));
#else
ASSERT_GT(open_fd, 2);
ASSERT_GT(closed_fd, 2);

View File

@ -1678,7 +1678,10 @@ TEST_IMPL(spawn_fs_open) {
#ifdef _WIN32
const char dev_null[] = "NUL";
HMODULE kernelbase_module;
sCompareObjectHandles pCompareObjectHandles; /* function introduced in Windows 10 */
union {
FARPROC proc;
sCompareObjectHandles pCompareObjectHandles; /* Windows >= 10 */
} u;
#else
const char dev_null[] = "/dev/null";
#endif
@ -1702,11 +1705,9 @@ TEST_IMPL(spawn_fs_open) {
ASSERT_NE(0, DuplicateHandle(GetCurrentProcess(), fd, GetCurrentProcess(), &dup_fd,
0, /* inherit */ TRUE, DUPLICATE_SAME_ACCESS));
kernelbase_module = GetModuleHandleW(L"kernelbase.dll");
pCompareObjectHandles = (sCompareObjectHandles)
GetProcAddress(kernelbase_module, "CompareObjectHandles");
ASSERT_NE(pCompareObjectHandles == NULL ||
pCompareObjectHandles(fd, dup_fd),
0);
u.proc = GetProcAddress(kernelbase_module, "CompareObjectHandles");
if (u.pCompareObjectHandles != NULL)
ASSERT_EQ(TRUE, u.pCompareObjectHandles(fd, dup_fd));
#else
dup_fd = dup(fd);
#endif