Black Lives Matter. Support the Equal Justice Initiative.

Source file src/net/internal/socktest/main_test.go

Documentation: net/internal/socktest

     1  // Copyright 2015 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 !js && !plan9
     6  // +build !js,!plan9
     7  
     8  package socktest_test
     9  
    10  import (
    11  	"net/internal/socktest"
    12  	"os"
    13  	"sync"
    14  	"syscall"
    15  	"testing"
    16  )
    17  
    18  var sw socktest.Switch
    19  
    20  func TestMain(m *testing.M) {
    21  	installTestHooks()
    22  
    23  	st := m.Run()
    24  
    25  	for s := range sw.Sockets() {
    26  		closeFunc(s)
    27  	}
    28  	uninstallTestHooks()
    29  	os.Exit(st)
    30  }
    31  
    32  func TestSwitch(t *testing.T) {
    33  	const N = 10
    34  	var wg sync.WaitGroup
    35  	wg.Add(N)
    36  	for i := 0; i < N; i++ {
    37  		go func() {
    38  			defer wg.Done()
    39  			for _, family := range []int{syscall.AF_INET, syscall.AF_INET6} {
    40  				socketFunc(family, syscall.SOCK_STREAM, syscall.IPPROTO_TCP)
    41  			}
    42  		}()
    43  	}
    44  	wg.Wait()
    45  }
    46  
    47  func TestSocket(t *testing.T) {
    48  	for _, f := range []socktest.Filter{
    49  		func(st *socktest.Status) (socktest.AfterFilter, error) { return nil, nil },
    50  		nil,
    51  	} {
    52  		sw.Set(socktest.FilterSocket, f)
    53  		for _, family := range []int{syscall.AF_INET, syscall.AF_INET6} {
    54  			socketFunc(family, syscall.SOCK_STREAM, syscall.IPPROTO_TCP)
    55  		}
    56  	}
    57  }
    58  

View as plain text