1
2
3
4
5
6
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