Sfoglia il codice sorgente

test case for writer creation

Darien Raymond 7 anni fa
parent
commit
e343fe80a2
2 ha cambiato i file con 51 aggiunte e 0 eliminazioni
  1. 50 0
      common/buf/io_test.go
  2. 1 0
      common/net/system.go

+ 50 - 0
common/buf/io_test.go

@@ -0,0 +1,50 @@
+package buf_test
+
+import (
+	"crypto/tls"
+	"io"
+	"testing"
+
+	. "v2ray.com/core/common/buf"
+	"v2ray.com/core/common/net"
+	"v2ray.com/core/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")
+		}
+	}
+}

+ 1 - 0
common/net/system.go

@@ -6,6 +6,7 @@ import "net"
 var DialTCP = net.DialTCP
 var DialUDP = net.DialUDP
 var DialUnix = net.DialUnix
+var Dial = net.Dial
 
 var Listen = net.Listen
 var ListenTCP = net.ListenTCP