• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2024 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build windows
6
7package net
8
9import (
10	"internal/syscall/windows"
11	"syscall"
12	"testing"
13)
14
15const (
16	syscall_TCP_KEEPIDLE  = windows.TCP_KEEPIDLE
17	syscall_TCP_KEEPCNT   = windows.TCP_KEEPCNT
18	syscall_TCP_KEEPINTVL = windows.TCP_KEEPINTVL
19)
20
21type fdType = syscall.Handle
22
23func maybeSkipKeepAliveTest(t *testing.T) {
24	// TODO(panjf2000): Unlike Unix-like OS's, old Windows (prior to Windows 10, version 1709)
25	// 	doesn't provide any ways to retrieve the current TCP keep-alive settings, therefore
26	// 	we're not able to run the test suite similar to Unix-like OS's on Windows.
27	//  Try to find another proper approach to test the keep-alive settings on old Windows.
28	if !windows.SupportTCPKeepAliveIdle() || !windows.SupportTCPKeepAliveInterval() || !windows.SupportTCPKeepAliveCount() {
29		t.Skip("skipping on windows")
30	}
31}
32