fix test
This commit is contained in:
parent
e41c11d943
commit
dc88462771
101
http2_test.go
101
http2_test.go
@ -41,22 +41,19 @@ func TestHTTP2Proxy(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := http2ProxyRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := http2ProxyRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -162,22 +159,19 @@ func TestHTTPOverH2(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverH2Roundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverH2Roundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -283,24 +277,21 @@ func TestSOCKS5OverH2(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverH2Roundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverH2Roundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -409,22 +400,6 @@ func TestSSOverH2(t *testing.T) {
|
||||
sendData := make([]byte, 128)
|
||||
rand.Read(sendData)
|
||||
|
||||
var ssProxyTests = []struct {
|
||||
clientCipher *url.Userinfo
|
||||
serverCipher *url.Userinfo
|
||||
pass bool
|
||||
}{
|
||||
{nil, nil, false},
|
||||
{&url.Userinfo{}, &url.Userinfo{}, false},
|
||||
{url.User("abc"), url.User("abc"), false},
|
||||
{url.UserPassword("abc", "def"), url.UserPassword("abc", "def"), false},
|
||||
|
||||
{url.User("aes-128-cfb"), url.User("aes-128-cfb"), false},
|
||||
{url.User("aes-128-cfb"), url.UserPassword("aes-128-cfb", "123456"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.User("aes-128-cfb"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "abc"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), true},
|
||||
}
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
|
27
http_test.go
27
http_test.go
@ -158,22 +158,19 @@ func TestHTTPProxy(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpProxyRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpProxyRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
29
kcp_test.go
29
kcp_test.go
@ -290,22 +290,19 @@ func TestSSOverKCP(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverKCPRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverKCPRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
86
quic_test.go
86
quic_test.go
@ -2,7 +2,6 @@ package gost
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
@ -42,22 +41,19 @@ func TestHTTPOverQUIC(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverQUICRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverQUICRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,23 +159,20 @@ func TestSOCKS5OverQUIC(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverQUICRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverQUICRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -290,22 +283,19 @@ func TestSSOverQUIC(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverQUICRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverQUICRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ package gost
|
||||
import (
|
||||
"crypto/rand"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
@ -67,23 +66,20 @@ func TestSOCKS5Proxy(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5ProxyRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5ProxyRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
87
ss_test.go
87
ss_test.go
@ -2,13 +2,12 @@ package gost
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var ssProxyTests = []struct {
|
||||
var ssTests = []struct {
|
||||
clientCipher *url.Userinfo
|
||||
serverCipher *url.Userinfo
|
||||
pass bool
|
||||
@ -23,54 +22,18 @@ var ssProxyTests = []struct {
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.User("aes-128-cfb"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "abc"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), true},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-192-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-256-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-192-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-256-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("des-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("bf-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("cast5-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("rc4-md5", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("chacha20", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("chacha20-ietf", "123456"), false},
|
||||
// {url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("salsa20", "123456"), false},
|
||||
|
||||
{url.User("aes-192-cfb"), url.User("aes-192-cfb"), false},
|
||||
{url.User("aes-192-cfb"), url.UserPassword("aes-192-cfb", "123456"), false},
|
||||
{url.UserPassword("aes-192-cfb", "123456"), url.User("aes-192-cfb"), false},
|
||||
{url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-192-cfb", "abc"), false},
|
||||
{url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-192-cfb", "123456"), true},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-256-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-128-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-192-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-256-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("des-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("bf-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("cast5-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("rc4-md5", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("chacha20", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("chacha20-ietf", "123456"), false},
|
||||
// {url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("salsa20", "123456"), false},
|
||||
|
||||
{url.User("aes-256-cfb"), url.User("aes-256-cfb"), false},
|
||||
{url.User("aes-256-cfb"), url.UserPassword("aes-256-cfb", "123456"), false},
|
||||
{url.UserPassword("aes-256-cfb", "123456"), url.User("aes-256-cfb"), false},
|
||||
{url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-256-cfb", "abc"), false},
|
||||
{url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-256-cfb", "123456"), true},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-192-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-128-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-192-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-256-ctr", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("des-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("bf-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("cast5-cfb", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("rc4-md5", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("chacha20", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("chacha20-ietf", "123456"), false},
|
||||
// {url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("salsa20", "123456"), false},
|
||||
|
||||
{url.User("aes-128-ctr"), url.User("aes-128-ctr"), false},
|
||||
{url.User("aes-128-ctr"), url.UserPassword("aes-128-ctr", "123456"), false},
|
||||
@ -133,6 +96,23 @@ var ssProxyTests = []struct {
|
||||
{url.UserPassword("salsa20", "123456"), url.UserPassword("salsa20", "123456"), true},
|
||||
}
|
||||
|
||||
var ssProxyTests = []struct {
|
||||
clientCipher *url.Userinfo
|
||||
serverCipher *url.Userinfo
|
||||
pass bool
|
||||
}{
|
||||
{nil, nil, false},
|
||||
{&url.Userinfo{}, &url.Userinfo{}, false},
|
||||
{url.User("abc"), url.User("abc"), false},
|
||||
{url.UserPassword("abc", "def"), url.UserPassword("abc", "def"), false},
|
||||
|
||||
{url.User("aes-128-cfb"), url.User("aes-128-cfb"), false},
|
||||
{url.User("aes-128-cfb"), url.UserPassword("aes-128-cfb", "123456"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.User("aes-128-cfb"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "abc"), false},
|
||||
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), true},
|
||||
}
|
||||
|
||||
func ssProxyRoundtrip(targetURL string, data []byte, clientInfo *url.Userinfo, serverInfo *url.Userinfo) error {
|
||||
ln, err := TCPListener("")
|
||||
if err != nil {
|
||||
@ -162,24 +142,21 @@ func TestSSProxy(t *testing.T) {
|
||||
sendData := make([]byte, 128)
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssProxyRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
for i, tc := range ssTests {
|
||||
err := ssProxyRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
90
ssh_test.go
90
ssh_test.go
@ -3,7 +3,6 @@ package gost
|
||||
import (
|
||||
"crypto/rand"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
@ -43,22 +42,19 @@ func TestHTTPOverSSHTunnel(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverSSHTunnelRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverSSHTunnelRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,24 +160,21 @@ func TestSOCKS5OverSSHTunnel(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverSSHTunnelRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverSSHTunnelRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,23 +284,20 @@ func TestSSOverSSHTunnel(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverSSHTunnelRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverSSHTunnelRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
179
tls_test.go
179
tls_test.go
@ -3,7 +3,6 @@ package gost
|
||||
import (
|
||||
"crypto/rand"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
@ -43,22 +42,19 @@ func TestHTTPOverTLS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverTLSRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverTLSRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,24 +160,21 @@ func TestSOCKS5OverTLS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,24 +284,21 @@ func TestSSOverTLS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -346,22 +336,19 @@ func TestHTTPOverMTLS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverMTLSRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverMTLSRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -467,24 +454,21 @@ func TestSOCKS5OverMTLS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverMTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverMTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -594,23 +578,20 @@ func TestSSOverMTLS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverMTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverMTLSRoundtrip(httpSrv.URL, sendData,
|
||||
nil,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
171
ws_test.go
171
ws_test.go
@ -2,7 +2,6 @@ package gost
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
@ -42,22 +41,19 @@ func TestHTTPOverWS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverWSRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverWSRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,23 +159,20 @@ func TestSOCKS5OverWS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -290,23 +283,20 @@ func TestSSOverWS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,22 +334,19 @@ func TestHTTPOverMWS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverMWSRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverMWSRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -466,23 +453,20 @@ func TestSOCKS5OverMWS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverMWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverMWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -593,22 +577,19 @@ func TestSSOverMWS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverMWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverMWSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
171
wss_test.go
171
wss_test.go
@ -3,7 +3,6 @@ package gost
|
||||
import (
|
||||
"crypto/rand"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
@ -43,22 +42,19 @@ func TestHTTPOverWSS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverWSSRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverWSSRoundtrip(httpSrv.URL, sendData, nil, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,23 +160,20 @@ func TestSOCKS5OverWSS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,23 +284,20 @@ func TestSSOverWSS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -345,22 +335,19 @@ func TestHTTPOverMWSS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range httpProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := httpOverMWSSRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
err := httpOverMWSSRoundtrip(httpSrv.URL, sendData, tc.cliUser, tc.srvUsers)
|
||||
if err == nil {
|
||||
if tc.errStr != "" {
|
||||
t.Errorf("#%d should failed with error %s", i, tc.errStr)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if tc.errStr == "" {
|
||||
t.Errorf("#%d got error %v", i, err)
|
||||
}
|
||||
if err.Error() != tc.errStr {
|
||||
t.Errorf("#%d got error %v, want %v", i, err, tc.errStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -467,23 +454,20 @@ func TestSOCKS5OverMWSS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range socks5ProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := socks5OverMWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := socks5OverMWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.cliUser,
|
||||
tc.srvUsers,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -594,22 +578,19 @@ func TestSSOverMWSS(t *testing.T) {
|
||||
rand.Read(sendData)
|
||||
|
||||
for i, tc := range ssProxyTests {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
|
||||
err := ssOverMWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
err := ssOverMWSSRoundtrip(httpSrv.URL, sendData,
|
||||
tc.clientCipher,
|
||||
tc.serverCipher,
|
||||
)
|
||||
if err == nil {
|
||||
if !tc.pass {
|
||||
t.Errorf("#%d should failed", i)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// t.Logf("#%d %v", i, err)
|
||||
if tc.pass {
|
||||
t.Errorf("#%d got error: %v", i, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user