| 
					
				 | 
			
			
				@@ -18,20 +18,20 @@ import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/proxy/vmess" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/proxy/vmess/inbound" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/proxy/vmess/outbound" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"v2ray.com/core/testing/assert" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	. "v2ray.com/ext/assert" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/testing/servers/tcp" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/testing/servers/udp" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/transport/internet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessDynamicPort(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -135,38 +135,38 @@ func TestVMessDynamicPort(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for i := 0; i < 10; i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		payload := "dokodemo request." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nBytes, err := conn.Write([]byte(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		response := make([]byte, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nBytes, err = conn.Read(response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		assert.Bytes(response[:nBytes]).Equals(xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		assert(response[:nBytes], Equals, xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	CloseAllServers(servers) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessGCM(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -252,7 +252,7 @@ func TestVMessGCM(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var wg sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	wg.Add(10) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -262,18 +262,18 @@ func TestVMessGCM(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			payload := make([]byte, 10240*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			rand.Read(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nBytes, err := conn.Write([]byte(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			response := readFrom(conn, time.Second*20, 10240*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Bytes(response).Equals(xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(response, Equals, xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -283,13 +283,13 @@ func TestVMessGCM(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessGCMUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	udpServer := udp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := udpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer udpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -375,7 +375,7 @@ func TestVMessGCMUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var wg sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	wg.Add(10) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -385,28 +385,28 @@ func TestVMessGCMUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			payload := make([]byte, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			rand.Read(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nBytes, err := conn.Write([]byte(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			payload1 := make([]byte, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			rand.Read(payload1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nBytes, err = conn.Write([]byte(payload1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Int(nBytes).Equals(len(payload1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(nBytes, Equals, len(payload1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			response := readFrom(conn, time.Second*5, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Bytes(response).Equals(xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(response, Equals, xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			response = readFrom(conn, time.Second*5, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Bytes(response).Equals(xor([]byte(payload1))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(response, Equals, xor([]byte(payload1))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -416,13 +416,13 @@ func TestVMessGCMUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessChacha20(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -508,7 +508,7 @@ func TestVMessChacha20(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var wg sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	wg.Add(10) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -518,18 +518,18 @@ func TestVMessChacha20(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			payload := make([]byte, 10240*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			rand.Read(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nBytes, err := conn.Write([]byte(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			response := readFrom(conn, time.Second*20, 10240*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Bytes(response).Equals(xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(response, Equals, xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -539,13 +539,13 @@ func TestVMessChacha20(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessNone(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -631,7 +631,7 @@ func TestVMessNone(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var wg sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	wg.Add(10) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -641,18 +641,18 @@ func TestVMessNone(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			payload := make([]byte, 1024*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			rand.Read(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nBytes, err := conn.Write(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			response := readFrom(conn, time.Second*20, 1024*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Bytes(response).Equals(xor(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(response, Equals, xor(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -662,13 +662,13 @@ func TestVMessNone(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessKCP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -762,7 +762,7 @@ func TestVMessKCP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var wg sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for i := 0; i < 10; i++ { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -772,18 +772,18 @@ func TestVMessKCP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			payload := make([]byte, 10240*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			rand.Read(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nBytes, err := conn.Write(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			response := readFrom(conn, time.Minute, 10240*1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Bytes(response).Equals(xor(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(response, Equals, xor(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -794,14 +794,14 @@ func TestVMessKCP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessIPv6(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	t.SkipNow() // No IPv6 on travis-ci. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Listen:       net.LocalHostIPv6, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -887,36 +887,36 @@ func TestVMessIPv6(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		IP:   net.LocalHostIPv6.IP(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	payload := make([]byte, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	rand.Read(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	nBytes, err := conn.Write(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	response := readFrom(conn, time.Second*20, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Bytes(response).Equals(xor(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(response, Equals, xor(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	CloseAllServers(servers) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessGCMMux(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1008,7 +1008,7 @@ func TestVMessGCMMux(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for range "abcd" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var wg sync.WaitGroup 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1020,7 +1020,7 @@ func TestVMessGCMMux(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				payload := make([]byte, 10240) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				rand.Read(payload) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1028,12 +1028,12 @@ func TestVMessGCMMux(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				xorpayload := xor(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				nBytes, err := conn.Write(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				response := readFrom(conn, time.Second*20, 10240) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Bytes(response).Equals(xorpayload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(response, Equals, xorpayload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1045,20 +1045,20 @@ func TestVMessGCMMux(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestVMessGCMMuxUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert := With(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	udpServer := udp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	udpDest, err := udpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defer udpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userID := protocol.NewID(uuid.New()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1164,7 +1164,7 @@ func TestVMessGCMMuxUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	servers, err := InitializeServerConfigs(serverConfig, clientConfig) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for range "abcd" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var wg sync.WaitGroup 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1176,7 +1176,7 @@ func TestVMessGCMMuxUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					Port: int(clientPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				payload := make([]byte, 10240) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				rand.Read(payload) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1184,12 +1184,12 @@ func TestVMessGCMMuxUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				xorpayload := xor(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				nBytes, err := conn.Write(payload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				response := readFrom(conn, time.Second*20, 10240) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Bytes(response).Equals(xorpayload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(response, Equals, xorpayload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1199,7 +1199,7 @@ func TestVMessGCMMuxUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					IP:   []byte{127, 0, 0, 1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					Port: int(clientUDPPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				conn.SetDeadline(time.Now().Add(time.Second * 10)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1210,20 +1210,20 @@ func TestVMessGCMMuxUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				for j := 0; j < 2; j++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					nBytes, _, err := conn.WriteMsgUDP(payload, nil, nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					assert(nBytes, Equals, len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				response := make([]byte, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				oob := make([]byte, 16) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				for j := 0; j < 2; j++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					nBytes, _, _, _, err := conn.ReadMsgUDP(response, oob) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					assert.Int(nBytes).Equals(1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					assert.Bytes(response).Equals(xorpayload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					assert(err, IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					assert(nBytes, Equals, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					assert(response, Equals, xorpayload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assert(conn.Close(), IsNil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 |