From 2f3670f60bcdcf92068ba60cc93b60572a9ca47f Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Wed, 18 Apr 2018 23:57:28 +0200 Subject: [PATCH] fix http error test --- testing/scenarios/http_test.go | 19 ++++++++++++++++--- testing/servers/tcp/tcp.go | 4 ++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/testing/scenarios/http_test.go b/testing/scenarios/http_test.go index 007b08b4e..eba906990 100644 --- a/testing/scenarios/http_test.go +++ b/testing/scenarios/http_test.go @@ -8,6 +8,7 @@ import ( "net/http" "net/url" "testing" + "time" "v2ray.com/core/common" "v2ray.com/core/common/buf" @@ -16,7 +17,6 @@ import ( "v2ray.com/core/app/proxyman" "v2ray.com/core/common/net" "v2ray.com/core/common/serial" - "v2ray.com/core/proxy/blackhole" "v2ray.com/core/proxy/freedom" v2http "v2ray.com/core/proxy/http" v2httptest "v2ray.com/core/testing/servers/http" @@ -84,6 +84,19 @@ func TestHttpConformance(t *testing.T) { func TestHttpError(t *testing.T) { assert := With(t) + tcpServer := tcp.Server{ + MsgProcessor: func(msg []byte) []byte { + return []byte{} + }, + } + dest, err := tcpServer.Start() + assert(err, IsNil) + defer tcpServer.Close() + + time.AfterFunc(time.Second*2, func() { + tcpServer.ShouldClose = true + }) + serverPort := tcp.PickPort() serverConfig := &core.Config{ Inbound: []*core.InboundHandlerConfig{ @@ -97,7 +110,7 @@ func TestHttpError(t *testing.T) { }, Outbound: []*core.OutboundHandlerConfig{ { - ProxySettings: serial.ToTypedMessage(&blackhole.Config{}), + ProxySettings: serial.ToTypedMessage(&freedom.Config{}), }, }, } @@ -116,7 +129,7 @@ func TestHttpError(t *testing.T) { Transport: transport, } - resp, err := client.Get("http://127.0.0.1:80") + resp, err := client.Get("http://127.0.0.1:" + dest.Port.String()) assert(err, IsNil) assert(resp.StatusCode, Equals, 503) } diff --git a/testing/servers/tcp/tcp.go b/testing/servers/tcp/tcp.go index a54e4b395..9ca666f63 100644 --- a/testing/servers/tcp/tcp.go +++ b/testing/servers/tcp/tcp.go @@ -10,6 +10,7 @@ import ( type Server struct { Port net.Port MsgProcessor func(msg []byte) []byte + ShouldClose bool SendFirst []byte Listen net.Address listener *net.TCPListener @@ -65,6 +66,9 @@ func (server *Server) handleConnection(conn net.Conn) { fmt.Println("Failed to write response:", err) break } + if server.ShouldClose { + break + } } conn.Close() }