Skip to content

Commit

Permalink
refactor test
Browse files Browse the repository at this point in the history
  • Loading branch information
DarienRaymond committed May 17, 2017
1 parent 661c0fc commit 087a91c
Show file tree
Hide file tree
Showing 10 changed files with 118 additions and 102 deletions.
39 changes: 25 additions & 14 deletions testing/scenarios/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,31 +61,43 @@ func readFrom(conn net.Conn, timeout time.Duration, length int) []byte {
return b[:n]
}

func InitializeServerConfig(config *core.Config) error {
func InitializeServerConfigs(configs ...*core.Config) ([]*exec.Cmd, error) {
servers := make([]*exec.Cmd, 0, 10)

for _, config := range configs {
server, err := InitializeServerConfig(config)
if err != nil {
CloseAllServers(servers)
return nil, err
}
servers = append(servers, server)
}

time.Sleep(time.Second * 2)

return servers, nil
}

func InitializeServerConfig(config *core.Config) (*exec.Cmd, error) {
err := BuildV2Ray()
if err != nil {
return err
return nil, err
}

configBytes, err := proto.Marshal(config)
if err != nil {
return err
return nil, err
}
proc := RunV2RayProtobuf(configBytes)

if err := proc.Start(); err != nil {
return err
return nil, err
}

time.Sleep(time.Second)

runningServers = append(runningServers, proc)

return nil
return proc, nil
}

var (
runningServers = make([]*exec.Cmd, 0, 10)
testBinaryPath string
testBinaryPathGen sync.Once
)
Expand Down Expand Up @@ -114,14 +126,13 @@ func GetSourcePath() string {
return filepath.Join("v2ray.com", "core", "main")
}

func CloseAllServers() {
func CloseAllServers(servers []*exec.Cmd) {
log.Trace(errors.New("Closing all servers."))
for _, server := range runningServers {
for _, server := range servers {
server.Process.Signal(os.Interrupt)
}
for _, server := range runningServers {
for _, server := range servers {
server.Process.Wait()
}
runningServers = make([]*exec.Cmd, 0, 10)
log.Trace(errors.New("All server closed."))
}
5 changes: 3 additions & 2 deletions testing/scenarios/dns_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ func TestResolveIP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig)
assert.Error(err).IsNil()

{
noAuthDialer, err := xproxy.SOCKS5("tcp", v2net.TCPDestination(v2net.LocalHostIP, serverPort).NetAddr(), nil, xproxy.Direct)
Expand All @@ -100,5 +101,5 @@ func TestResolveIP(t *testing.T) {
assert.Error(conn.Close()).IsNil()
}

CloseAllServers()
CloseAllServers(servers)
}
12 changes: 6 additions & 6 deletions testing/scenarios/dokodemo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ func TestDokodemoTCP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, clientConfig)
assert.Error(err).IsNil()

for port := clientPort; port <= clientPort+clientPortRange; port++ {
conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{
Expand All @@ -118,7 +118,7 @@ func TestDokodemoTCP(t *testing.T) {
assert.Error(conn.Close()).IsNil()
}

CloseAllServers()
CloseAllServers(servers)
}

func TestDokodemoUDP(t *testing.T) {
Expand Down Expand Up @@ -197,8 +197,8 @@ func TestDokodemoUDP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, clientConfig)
assert.Error(err).IsNil()

for port := clientPort; port <= clientPort+clientPortRange; port++ {
conn, err := net.DialUDP("udp", nil, &net.UDPAddr{
Expand All @@ -219,5 +219,5 @@ func TestDokodemoUDP(t *testing.T) {
assert.Error(conn.Close()).IsNil()
}

CloseAllServers()
CloseAllServers(servers)
}
42 changes: 22 additions & 20 deletions testing/scenarios/feature_test.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package scenarios

import (
"io/ioutil"
"net"
"net/http"
"net/url"
"testing"
"time"

"io/ioutil"

xproxy "golang.org/x/net/proxy"
"v2ray.com/core"
"v2ray.com/core/app/log"
Expand Down Expand Up @@ -67,7 +66,8 @@ func TestPassiveConnection(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig)
assert.Error(err).IsNil()

conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{
IP: []byte{127, 0, 0, 1},
Expand Down Expand Up @@ -99,7 +99,7 @@ func TestPassiveConnection(t *testing.T) {

assert.Error(conn.Close()).IsNil()

CloseAllServers()
CloseAllServers(servers)
}

func TestProxy(t *testing.T) {
Expand Down Expand Up @@ -227,9 +227,8 @@ func TestProxy(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(proxyConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, proxyConfig, clientConfig)
assert.Error(err).IsNil()

conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{
IP: []byte{127, 0, 0, 1},
Expand All @@ -248,7 +247,7 @@ func TestProxy(t *testing.T) {
assert.Bytes(response[:nBytes]).Equals(xor([]byte(payload)))
assert.Error(conn.Close()).IsNil()

CloseAllServers()
CloseAllServers(servers)
}

func TestProxyOverKCP(t *testing.T) {
Expand Down Expand Up @@ -387,9 +386,8 @@ func TestProxyOverKCP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(proxyConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, proxyConfig, clientConfig)
assert.Error(err).IsNil()

conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{
IP: []byte{127, 0, 0, 1},
Expand All @@ -408,7 +406,7 @@ func TestProxyOverKCP(t *testing.T) {
assert.Bytes(response[:nBytes]).Equals(xor([]byte(payload)))
assert.Error(conn.Close()).IsNil()

CloseAllServers()
CloseAllServers(servers)
}

func TestBlackhole(t *testing.T) {
Expand Down Expand Up @@ -481,7 +479,8 @@ func TestBlackhole(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig)
assert.Error(err).IsNil()

conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{
IP: []byte{127, 0, 0, 1},
Expand All @@ -505,7 +504,7 @@ func TestBlackhole(t *testing.T) {

assert.Error(conn.Close()).IsNil()

CloseAllServers()
CloseAllServers(servers)
}

func TestForward(t *testing.T) {
Expand Down Expand Up @@ -550,7 +549,8 @@ func TestForward(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig)
assert.Error(err).IsNil()

{
noAuthDialer, err := xproxy.SOCKS5("tcp", v2net.TCPDestination(v2net.LocalHostIP, serverPort).NetAddr(), nil, xproxy.Direct)
Expand All @@ -570,7 +570,7 @@ func TestForward(t *testing.T) {
assert.Error(conn.Close()).IsNil()
}

CloseAllServers()
CloseAllServers(servers)
}

func TestUDPConnection(t *testing.T) {
Expand Down Expand Up @@ -607,7 +607,8 @@ func TestUDPConnection(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(clientConfig)
assert.Error(err).IsNil()

{
conn, err := net.DialUDP("udp", nil, &net.UDPAddr{
Expand Down Expand Up @@ -652,7 +653,7 @@ func TestUDPConnection(t *testing.T) {
assert.Error(conn.Close()).IsNil()
}

CloseAllServers()
CloseAllServers(servers)
}

func TestDomainSniffing(t *testing.T) {
Expand Down Expand Up @@ -724,7 +725,8 @@ func TestDomainSniffing(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig)
assert.Error(err).IsNil()

{
transport := &http.Transport{
Expand All @@ -744,5 +746,5 @@ func TestDomainSniffing(t *testing.T) {
assert.Error(resp.Write(ioutil.Discard)).IsNil()
}

CloseAllServers()
CloseAllServers(servers)
}
5 changes: 3 additions & 2 deletions testing/scenarios/http_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ func TestHttpConformance(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig)
assert.Error(err).IsNil()

{
transport := &http.Transport{
Expand All @@ -69,5 +70,5 @@ func TestHttpConformance(t *testing.T) {

}

CloseAllServers()
CloseAllServers(servers)
}
18 changes: 9 additions & 9 deletions testing/scenarios/shadowsocks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ func TestShadowsocksAES256TCP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, clientConfig)
assert.Error(err).IsNil()

var wg sync.WaitGroup
wg.Add(10)
Expand All @@ -136,7 +136,7 @@ func TestShadowsocksAES256TCP(t *testing.T) {
}
wg.Wait()

CloseAllServers()
CloseAllServers(servers)
}

func TestShadowsocksAES128UDP(t *testing.T) {
Expand Down Expand Up @@ -227,8 +227,8 @@ func TestShadowsocksAES128UDP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, clientConfig)
assert.Error(err).IsNil()

var wg sync.WaitGroup
wg.Add(10)
Expand All @@ -255,7 +255,7 @@ func TestShadowsocksAES128UDP(t *testing.T) {
}
wg.Wait()

CloseAllServers()
CloseAllServers(servers)
}

func TestShadowsocksChacha20TCP(t *testing.T) {
Expand Down Expand Up @@ -345,8 +345,8 @@ func TestShadowsocksChacha20TCP(t *testing.T) {
},
}

assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
servers, err := InitializeServerConfigs(serverConfig, clientConfig)
assert.Error(err).IsNil()

var wg sync.WaitGroup
wg.Add(10)
Expand All @@ -373,5 +373,5 @@ func TestShadowsocksChacha20TCP(t *testing.T) {
}
wg.Wait()

CloseAllServers()
CloseAllServers(servers)
}
Loading

0 comments on commit 087a91c

Please sign in to comment.