-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathinit_test.go
More file actions
55 lines (48 loc) · 1.69 KB
/
init_test.go
File metadata and controls
55 lines (48 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package main
import (
"fmt"
"io"
"net"
"os"
"strings"
"testing"
"time"
"github.com/stretchr/testify/require"
)
func TestInit(t *testing.T) {
r := require.New(t)
config.proxyAddrs = nil
r.True(strings.Contains(config.String(), "proxy_timeout_ms=1000"))
conn, err := net.Dial("tcp", configAddr)
r.NoError(err)
go io.Copy(os.Stdout, conn)
_, err = fmt.Fprintln(conn, "proxy_timeout_ms=2000")
r.NoError(err)
time.Sleep(time.Millisecond * 10)
r.True(strings.Contains(config.String(), "proxy_timeout_ms=2000"))
r.Equal(2000*time.Millisecond, config.connectTimeouts)
_, err = fmt.Fprintln(conn, "socks5_proxy=127.0.0.1:100,127.0.0.1:101")
r.NoError(err)
time.Sleep(time.Millisecond * 10)
r.Equal("127.0.0.1:100", config.proxyAddrs[0].String())
r.Equal("127.0.0.1:101", config.proxyAddrs[1].String())
_, err = fmt.Fprintln(conn, "not_proxy=192.168.1.0/24")
r.NoError(err)
time.Sleep(time.Millisecond * 10)
r.True(config.ShouldNotProxy(net.IP{192, 168, 1, 100}))
r.False(config.ShouldNotProxy(net.IP{192, 168, 2, 100}))
_, err = fmt.Fprintln(conn, "not_proxy=192.168.1.0/24,192.168.2.0/24")
r.NoError(err)
time.Sleep(time.Millisecond * 10)
r.Equal(1, strings.Count(config.String(), "192.168.1.0/24"))
r.Equal(1, strings.Count(config.String(), "192.168.2.0/24"))
_, err = fmt.Fprintln(conn, "socks5_proxy=192.168.111.111:1000")
r.NoError(err)
time.Sleep(time.Millisecond * 10)
r.Equal("192.168.111.111:1000", config.GetProxyAddr().String())
_, err = fmt.Fprintln(conn, "socks5_proxy=192.168.111.112:2222")
r.NoError(err)
time.Sleep(time.Millisecond * 10)
r.Equal("192.168.111.112:2222", config.GetProxyAddr().String())
r.Equal([]string{"192.168.111.112:2222"}, config.GetProxyAddrs())
}