MCPcopy
hub / github.com/grpc/grpc-go / setup

Function setup

internal/xds/test/e2e/e2e_test.go:49–90  ·  view source on GitHub ↗
(t *testing.T, opts testOpts)

Source from the content-addressed store, hash-verified

47}
48
49func setup(t *testing.T, opts testOpts) (*controlPlane, *client, []*server) {
50 t.Helper()
51 if _, err := os.Stat(*clientPath); os.IsNotExist(err) {
52 t.Skip("skipped because client is not found")
53 }
54 if _, err := os.Stat(*serverPath); os.IsNotExist(err) {
55 t.Skip("skipped because server is not found")
56 }
57 backendCount := 1
58 if opts.backendCount != 0 {
59 backendCount = opts.backendCount
60 }
61
62 cp, err := newControlPlane(t)
63 if err != nil {
64 t.Fatalf("failed to start control-plane: %v", err)
65 }
66
67 var clientLog bytes.Buffer
68 c, err := newClient(fmt.Sprintf("xds:///%s", opts.testName), *clientPath, cp.bootstrapContent, &clientLog, opts.clientFlags...)
69 if err != nil {
70 t.Fatalf("failed to start client: %v", err)
71 }
72 t.Cleanup(c.stop)
73
74 var serverLog bytes.Buffer
75 servers, err := newServers(opts.testName, *serverPath, cp.bootstrapContent, &serverLog, backendCount)
76 if err != nil {
77 t.Fatalf("failed to start server: %v", err)
78 }
79 t.Cleanup(func() {
80 for _, s := range servers {
81 s.stop()
82 }
83 })
84 t.Cleanup(func() {
85 // TODO: find a better way to print the log. They are long, and hide the failure.
86 t.Logf("\n----- client logs -----\n%v", clientLog.String())
87 t.Logf("\n----- server logs -----\n%v", serverLog.String())
88 })
89 return cp, c, servers
90}
91
92func TestPingPong(t *testing.T) {
93 const testName = "pingpong"

Callers 2

TestPingPongFunction · 0.70
TestAffinityFunction · 0.70

Calls 7

StringMethod · 0.95
newControlPlaneFunction · 0.85
newServersFunction · 0.85
newClientFunction · 0.70
FatalfMethod · 0.65
stopMethod · 0.65
LogfMethod · 0.65

Tested by

no test coverage detected