|
|
@@ -1,102 +0,0 @@
|
|
|
-package scenarios
|
|
|
-
|
|
|
-import (
|
|
|
- "os"
|
|
|
- "os/exec"
|
|
|
- "path/filepath"
|
|
|
- "runtime"
|
|
|
- "time"
|
|
|
-
|
|
|
- "v2ray.com/core/app/log"
|
|
|
-
|
|
|
- "fmt"
|
|
|
- "io/ioutil"
|
|
|
- "sync"
|
|
|
- _ "v2ray.com/core"
|
|
|
- "v2ray.com/core/common/retry"
|
|
|
-)
|
|
|
-
|
|
|
-var (
|
|
|
- runningServers = make([]*exec.Cmd, 0, 10)
|
|
|
- testBinaryPath string
|
|
|
- testBinaryPathGen sync.Once
|
|
|
-)
|
|
|
-
|
|
|
-func GenTestBinaryPath() {
|
|
|
- testBinaryPathGen.Do(func() {
|
|
|
- var tempDir string
|
|
|
- err := retry.Timed(5, 100).On(func() error {
|
|
|
- dir, err := ioutil.TempDir("", "v2ray")
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- tempDir = dir
|
|
|
- return nil
|
|
|
- })
|
|
|
- if err != nil {
|
|
|
- panic(err)
|
|
|
- }
|
|
|
- file := filepath.Join(tempDir, "v2ray.test")
|
|
|
- if runtime.GOOS == "windows" {
|
|
|
- file += ".exe"
|
|
|
- }
|
|
|
- testBinaryPath = file
|
|
|
- fmt.Printf("Generated binary path: %s\n", file)
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-func GetSourcePath() string {
|
|
|
- return filepath.Join("v2ray.com", "core", "main")
|
|
|
-}
|
|
|
-
|
|
|
-func TestFile(filename string) string {
|
|
|
- return filepath.Join(os.Getenv("GOPATH"), "src", "v2ray.com", "core", "testing", "scenarios", "data", filename)
|
|
|
-}
|
|
|
-
|
|
|
-func InitializeServerSetOnce(testcase string) error {
|
|
|
- if err := InitializeServerServer(testcase); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- if err := InitializeServerClient(testcase); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
-func InitializeServerServer(testcase string) error {
|
|
|
- return InitializeServer(TestFile(testcase + "_server.json"))
|
|
|
-}
|
|
|
-
|
|
|
-func InitializeServerClient(testcase string) error {
|
|
|
- return InitializeServer(TestFile(testcase + "_client.json"))
|
|
|
-}
|
|
|
-
|
|
|
-func InitializeServer(configFile string) error {
|
|
|
- err := BuildV2Ray()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- proc := RunV2Ray(configFile)
|
|
|
-
|
|
|
- err = proc.Start()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- time.Sleep(time.Second)
|
|
|
-
|
|
|
- runningServers = append(runningServers, proc)
|
|
|
-
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
-func CloseAllServers() {
|
|
|
- log.Info("Closing all servers.")
|
|
|
- for _, server := range runningServers {
|
|
|
- server.Process.Signal(os.Interrupt)
|
|
|
- server.Process.Wait()
|
|
|
- }
|
|
|
- runningServers = make([]*exec.Cmd, 0, 10)
|
|
|
- log.Info("All server closed.")
|
|
|
-}
|