From 098f79b3d910ba4e210ebf46fe0697b9f13da816 Mon Sep 17 00:00:00 2001 From: Harry Cheng Date: Thu, 3 Mar 2022 10:09:52 +0800 Subject: [PATCH] Fix e2e tests for CloseProxy --- test/e2e/framework/process.go | 8 +++++++- test/e2e/plugin/server.go | 19 +++++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index a1b15710..197cb7de 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -12,7 +12,7 @@ import ( // RunProcesses run multiple processes from templates. // The first template should always be frps. -func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []string) { +func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []string) ([]*process.Process, []*process.Process) { templates := make([]string, 0, len(serverTemplates)+len(clientTemplates)) for _, t := range serverTemplates { templates = append(templates, t) @@ -28,6 +28,7 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str f.usedPorts[name] = port } + currentServerProcesses := make([]*process.Process, 0, len(serverTemplates)) for i := range serverTemplates { path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-server-%d", i)) err = os.WriteFile(path, []byte(outs[i]), 0666) @@ -37,11 +38,13 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str p := process.NewWithEnvs(TestContext.FRPServerPath, []string{"-c", path}, f.osEnvs) f.serverConfPaths = append(f.serverConfPaths, path) f.serverProcesses = append(f.serverProcesses, p) + currentServerProcesses = append(currentServerProcesses, p) err = p.Start() ExpectNoError(err) } time.Sleep(time.Second) + currentClientProcesses := make([]*process.Process, 0, len(clientTemplates)) for i := range clientTemplates { index := i + len(serverTemplates) path := filepath.Join(f.TempDirectory, fmt.Sprintf("frp-e2e-client-%d", i)) @@ -52,11 +55,14 @@ func (f *Framework) RunProcesses(serverTemplates []string, clientTemplates []str p := process.NewWithEnvs(TestContext.FRPClientPath, []string{"-c", path}, f.osEnvs) f.clientConfPaths = append(f.clientConfPaths, path) f.clientProcesses = append(f.clientProcesses, p) + currentClientProcesses = append(currentClientProcesses, p) err = p.Start() ExpectNoError(err) time.Sleep(500 * time.Millisecond) } time.Sleep(500 * time.Millisecond) + + return currentServerProcesses, currentClientProcesses } func (f *Framework) RunFrps(args ...string) (*process.Process, string, error) { diff --git a/test/e2e/plugin/server.go b/test/e2e/plugin/server.go index 57456fc4..b972f78b 100644 --- a/test/e2e/plugin/server.go +++ b/test/e2e/plugin/server.go @@ -167,14 +167,11 @@ var _ = Describe("[Feature: Server-Plugins]", func() { It("Validate Info", func() { localPort := f.AllocPort() + var recordProxyName string handler := func(req *plugin.Request) *plugin.Response { var ret plugin.Response content := req.Content.(*plugin.CloseProxyContent) - if content.ProxyName == "tcp" { - ret.Unchange = true - } else { - ret.Reject = true - } + recordProxyName = content.ProxyName return &ret } pluginServer := NewHTTPPluginServer(localPort, newFunc, handler, nil) @@ -197,11 +194,17 @@ var _ = Describe("[Feature: Server-Plugins]", func() { remote_port = %d `, framework.TCPEchoServerPort, remotePort) - f.RunProcesses([]string{serverConf}, []string{clientConf}) - - time.Sleep(5 * time.Second) + _, clients := f.RunProcesses([]string{serverConf}, []string{clientConf}) framework.NewRequestExpect(f).Port(remotePort).Ensure() + + for _, c := range clients { + c.Stop() + } + + time.Sleep(1 * time.Second) + + framework.ExpectEqual(recordProxyName, "tcp") }) })