⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winsockevent.c

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 C
字号:
#include <windows.h>
#include <winsock2.h>
#include "regtests.h"

#define TestHandle (HANDLE) 1

static BOOL CloseHandleSuccessCalled = FALSE;

static BOOL STDCALL
MockCloseHandleSuccess(HANDLE hObject)
{
  CloseHandleSuccessCalled = TRUE;
  _AssertEqualValue(TestHandle, hObject);
  return TRUE;
}

static HOOK HooksSuccess[] =
{
  {"CloseHandle", MockCloseHandleSuccess},
  {NULL, NULL}
};

static void
TestWSACloseEventSuccess()
{
  BOOL result;
  
  _SetHooks(HooksSuccess);
  result = WSACloseEvent(TestHandle);
  _AssertTrue(result);
  _AssertEqualValue(NO_ERROR, WSAGetLastError());
  _AssertTrue(CloseHandleSuccessCalled);
  _UnsetAllHooks();
}


static BOOL CloseHandleFailureCalled = FALSE;

static BOOL STDCALL
MockCloseHandleFailure(HANDLE hObject)
{
  CloseHandleFailureCalled = TRUE;
  return FALSE;
}

static HOOK HooksFailure[] =
{
  {"CloseHandle", MockCloseHandleFailure},
  {NULL, NULL}
};

static void
TestWSACloseEventFailure()
{
  BOOL result;
  
  _SetHooks(HooksFailure);
  result = WSACloseEvent(TestHandle);
  _AssertFalse(result);
  _AssertEqualValue(WSA_INVALID_HANDLE, WSAGetLastError());
  _AssertTrue(CloseHandleFailureCalled);
  _UnsetAllHooks();
}


static void
TestWSACloseEvent()
{
  TestWSACloseEventSuccess();
  TestWSACloseEventFailure();
}

static void
RunTest()
{
  WSADATA WSAData;

  WSAStartup(MAKEWORD(2, 0), &WSAData);
  TestWSACloseEvent();
  WSACleanup();
}

_Dispatcher(WinsockeventTest, "Winsock 2 event")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -