Winsock 핵심 기능 테스트
이 자동화된 테스트는 루프백 인터페이스에 대해 핵심 Winsock 기능 중 일부를 반복하고 Winsock API 인터페이스가 올바르게 유지 관리되는지 여부를 확인합니다.
모든 테스트는 모두 루프백 인터페이스에 바인딩되는 IPv4 및 IPv6 소켓을 다룹니다. 변형은 다음과 같습니다.
Socket Catalog. Winsock 카탈로그를 열거하고, 반환된 각 protocolinfo 구조(각 프로토콜 튜플)에 대한 소켓을 만들고, 루프백 인터페이스에 바인딩합니다.
OVERLAPPED IO. IPv4 및 IPv6 TCP 스트림 소켓을 모두 만들고, 루프백을 통한 연결을 설정하고, 송신 호출 차단 및 겹치는 수신 호출을 통해 소켓 간에 데이터를 보냅니다. 모든 데이터는 수신된 것으로 확인됩니다.
TransmitFile 변형. TransmitFile이 데이터를 올바르게 보내는지 확인하고, IPv4 및 IPv6 소켓 모두에 대해 소켓 재사용을 위해 TF_DISCONNECT 플래그를 구현합니다. 260바이트 임시 파일을 만들고 TransmitFile을 사용해서 TCP 연결을 통해 전송합니다. 수신 대기 소켓은 AcceptEx를 사용하여 연결 및 소켓 재사용을 확인합니다.
ConditionalAccept. IPv4 및 IPv6 TCP 스트림 소켓 둘 다에 대한 조건부 수락 의미 체계를 확인합니다. 수신기 없이, 각각 CF_REJECT, CF_ACCEPT, CF_DEFER + CF_REJECT 및 CF_DEFER + CF_ACCEPT를 반환하는 5가지 연결을 테스트합니다.
Streams. IPv4 및 IPv6 TCP 스트림 소켓을 통한 보내기/받기를 차단합니다. 연결이 완료될 때까지 수신 대기 백로그가 0인 호출 수락을 연기합니다.
Datagrams. IPv4 및 IPv6 UDP 소켓을 통해 데이터그램을 보내고 받는지 확인합니다. 연결/보내기/받기 및 연결 없는 보내기/받기를 통해 데이터그램 보내기를 테스트합니다.
그런 다음, IPv4 및 IPv6 TCP 소켓 모두에서 연결 설정, 데이터 수신 및 소켓 닫기를 나타내는 READFDS 알림을 확인합니다.
바인딩. IPv4 및 IPv6 TCP 소켓의 바인딩 의미 체계인 기본 바인딩, SO_REUSEADDR 바인딩 및 SO_EXCLUSIVEADDRUSE 바인딩을 확인합니다.
ReadFile/WriteFile. 겹치는 ReadFile() 및 WriteFile() 함수가 IPv4 및 IPv6 TCP 소켓 모두에서 올바르게 작동하는지 확인합니다.
Shutdown. 연결을 설정하고, 수신 차단을 게시하고, 호출 종료가 0바이트 수신 상태로 수신을 완료하는지 여부를 검토하여 IPv4 및 IPv6 TCP 소켓에서 shutdown() 의미 체계를 확인합니다.
Addressing. j, 10진수 및 8진수 문자열의 IPv4 및 IPv6 주소가 해당 소켓 주소 구조 값(WSAAddressToString 및 WSAStringToAddress)으로 변환되는지 확인합니다.
멀티캐스트. IPv4 및 IPv6의 경우 IP_ADD_MEMBERSHIP 및 IPV6_ADD_MEMBERSHIP을 통해 멀티캐스트 그룹에 조인하고, 그룹에 데이터를 보내고 받고, 그룹을 떠나는지 확인합니다.
JoinLeaf. IPv4 및 IPv6의 경우 WSAJoinLeaf를 통해 멀티캐스트 그룹에 조인하고, 그룹에 데이터를 보내고 받고, 그룹을 떠나는지 확인합니다.
AsyncSelect. IPv4 및 IPv6 TCP 소켓의 경우 FD_CONNECT, FD_SEND 및 FD_READ Windows 메시지가 WSAAsyncSelect을 통해 처리되는지 확인합니다. 또한 멀티캐스트 소켓이 WSAJoinLeaf를 완료할 때 FD_CONNECT가 처리되는지 여부를 확인합니다.
IOCP. IPv4 및 IPv6 TCP 소켓의 경우 소켓이 I/O 완료 포트와 연결된 겹치는 수신 호출을 만듭니다. 겹치는 완료가 처리되고 모든 데이터가 수신되는지 여부도 확인합니다.
RAW socket. IPv4 및 IPv6의 경우 원시 소켓을 만들어 OVERLAPPED IO를 통해 ICMP(Internet Control Message Protocol) 메시지를 보내고 받습니다.
PnP. 루프백이 아닌 IP 주소가 첫 번째 비루프백에 추가되고 제거될 때 겹치는 주소 변경 알림이 신호로 전송되는지 여부를 확인합니다.
Winsock API에 대한 자세한 내용은 Windows 소켓 2를 참조하세요.
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 30 |
범주 | 개발 |
시간 제한(분) | 1800 |
다시 부팅 필요 | false |
특별한 구성 필요 | false |
형식 | automatic |
추가 설명서
이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.
테스트 실행
요구 사항에 대한 자세한 내용은 파일 시스템 테스트 필수 조건을 참조하세요.
또한 이 테스트에는 다음 소프트웨어가 필요합니다.
지원되는 애플리케이션 제품군과 함께 테스트할 필터 드라이버
유효한 IPv4 및 IPv6 주소가 있는 하나 이상의 연결된 네트워크 인터페이스
문제 해결
HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.
문제 해결 정보는 파일 시스템 테스트 문제 해결을 참조하세요.
모든 테스트 사례는 Pass 또는 Fail을 반환합니다. 테스트 세부 정보를 검토하려면 Windows HLK Studio에서 테스트 로그를 검토합니다.
참고
Windows 방화벽에는 방화벽이 테스트의 일부 기능을 차단할 수 있음을 시사하는 메시지가 표시될 수 있습니다. 그러나 방화벽은 테스트에 영향을 주지 않습니다. 이 메시지는 무시해도 괜찮습니다.
이 절차에서 성공적인 테스트 결과를 제공하지 않는 경우 디바이스별 또는 시스템별 세부 정보가 포함된 테스트 로그를 Windows HLK(Hardware Lab Kit) 지원 별칭에 제출합니다.
추가 정보
명령 구문
명령 옵션 | 설명 |
---|---|
Winsockfunctional -protocol ip -t “Winsock API\Current Protocols (IPv4/IPv6)\BVT” -wtt -r -dontdisable -ipsec -notrace |
이 핵심 인수를 제공해야 합니다. |
-lsponly |
LSP가 설치될 때 이 인수를 추가해야 합니다. |
참고
이 테스트 이진에 대한 명령줄 도움말을 보려면 /h를 입력합니다.
파일 목록
파일 | 위치 |
---|---|
WinsockFunctional.exe |
<[testbinroot]>\NTTest\NetTest\Winsock\common\ |
WinsockFunctional.wtl |
테스트 결과를 포함하는 자세한 출력 로그 |
Wsbvt.log |
테스트 결과의 요약 출력 로그 |
Bvterr.log |
테스트 결과의 요약 출력 로그 |
Fnshell.ini |
테스트에서 생성하고 사용하는 임시 .ini 파일 |
매개 변수
매개 변수 이름 | 매개 변수 설명 |
---|---|
LLU_LocalAdmin | 실행용 LLU |
LLU_NetAccessOnly | 복사용 LLU |