소스 검색

Added Test for dial

Shelikhoo 7 년 전
부모
커밋
4e609c9758
1개의 변경된 파일38개의 추가작업 그리고 0개의 파일을 삭제
  1. 38 0
      transport/internet/domainsocket/listener_test.go

+ 38 - 0
transport/internet/domainsocket/listener_test.go

@@ -92,3 +92,41 @@ func TestListenA(t *testing.T) {
 	fin()
 	listener.Down()
 }
+
+func TestListenDial(t *testing.T) {
+	listener, err := domainsocket.ListenDS(context.Background(), "\x00/tmp/ts")
+	asrt := assert.With(t)
+	asrt(err, assert.IsNil)
+	asrt(listener, assert.IsNotNil)
+	errolu := listener.LowerUP()
+	asrt(errolu, assert.IsNil)
+	ctx, fin := context.WithCancel(context.Background())
+	chi := make(chan net.Conn, 2)
+	go func() {
+		for {
+			select {
+			case conn := <-chi:
+				test := make([]byte, 256)
+				nc, errc := conn.Read(test)
+				asrt(errc, assert.IsNil)
+				conn.Write(test[:nc])
+				time.Sleep(time.Second)
+				conn.Close()
+			case <-ctx.Done():
+				return
+			}
+		}
+	}()
+	listener.UP(chi, false)
+	con, erro := domainsocket.DialDS(context.Background(), "\x00/tmp/ts")
+	asrt(erro, assert.IsNil)
+	b := []byte("ABC")
+	c := []byte("XXX")
+	_, erron := con.Write(b)
+	asrt(erron, assert.IsNil)
+	con.Read(c)
+	con.Close()
+	asrt(b[0]-c[0] == 0, assert.IsTrue)
+	fin()
+	listener.Down()
+}