Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
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
package buf_test
 
import (
    "crypto/tls"
    "io"
    "testing"
 
    . "github.com/v2fly/v2ray-core/v5/common/buf"
    "github.com/v2fly/v2ray-core/v5/common/net"
    "github.com/v2fly/v2ray-core/v5/testing/servers/tcp"
)
 
func TestWriterCreation(t *testing.T) {
    tcpServer := tcp.Server{}
    dest, err := tcpServer.Start()
    if err != nil {
        t.Fatal("failed to start tcp server: ", err)
    }
    defer tcpServer.Close()
 
    conn, err := net.Dial("tcp", dest.NetAddr())
    if err != nil {
        t.Fatal("failed to dial a TCP connection: ", err)
    }
    defer conn.Close()
 
    {
        writer := NewWriter(conn)
        if _, ok := writer.(*BufferToBytesWriter); !ok {
            t.Fatal("writer is not a BufferToBytesWriter")
        }
 
        writer2 := NewWriter(writer.(io.Writer))
        if writer2 != writer {
            t.Fatal("writer is not reused")
        }
    }
 
    tlsConn := tls.Client(conn, &tls.Config{
        InsecureSkipVerify: true,
    })
    defer tlsConn.Close()
 
    {
        writer := NewWriter(tlsConn)
        if _, ok := writer.(*SequentialWriter); !ok {
            t.Fatal("writer is not a SequentialWriter")
        }
    }
}