MCPcopy
hub / github.com/livekit/livekit / TestAgents

Function TestAgents

test/agent_test.go:34–126  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

32)
33
34func TestAgents(t *testing.T) {
35 for _, testRTCServicePath := range testRTCServicePaths {
36 t.Run(fmt.Sprintf("testRTCServicePath=%s", testRTCServicePath.String()), func(t *testing.T) {
37 _, finish := setupSingleNodeTest("TestAgents")
38 defer finish()
39
40 ac1, err := newAgentClient(agentToken(), defaultServerPort)
41 require.NoError(t, err)
42 ac2, err := newAgentClient(agentToken(), defaultServerPort)
43 require.NoError(t, err)
44 ac3, err := newAgentClient(agentToken(), defaultServerPort)
45 require.NoError(t, err)
46 ac4, err := newAgentClient(agentToken(), defaultServerPort)
47 require.NoError(t, err)
48 ac5, err := newAgentClient(agentToken(), defaultServerPort)
49 require.NoError(t, err)
50 ac6, err := newAgentClient(agentToken(), defaultServerPort)
51 require.NoError(t, err)
52 defer ac1.close()
53 defer ac2.close()
54 defer ac3.close()
55 defer ac4.close()
56 defer ac5.close()
57 defer ac6.close()
58 ac1.Run(livekit.JobType_JT_ROOM, "default")
59 ac2.Run(livekit.JobType_JT_ROOM, "default")
60 ac3.Run(livekit.JobType_JT_PUBLISHER, "default")
61 ac4.Run(livekit.JobType_JT_PUBLISHER, "default")
62 ac5.Run(livekit.JobType_JT_PARTICIPANT, "default")
63 ac6.Run(livekit.JobType_JT_PARTICIPANT, "default")
64
65 testutils.WithTimeout(t, func() string {
66 if ac1.registered.Load() != 1 || ac2.registered.Load() != 1 || ac3.registered.Load() != 1 || ac4.registered.Load() != 1 || ac5.registered.Load() != 1 || ac6.registered.Load() != 1 {
67 return "worker not registered"
68 }
69
70 return ""
71 }, RegisterTimeout)
72
73 c1 := createRTCClient("c1", defaultServerPort, testRTCServicePath, nil)
74 c2 := createRTCClient("c2", defaultServerPort, testRTCServicePath, nil)
75 waitUntilConnected(t, c1, c2)
76
77 // publish 2 tracks
78 t1, err := c1.AddStaticTrack("audio/opus", "audio", "micro")
79 require.NoError(t, err)
80 defer t1.Stop()
81 t2, err := c1.AddStaticTrack("video/vp8", "video", "webcam")
82 require.NoError(t, err)
83 defer t2.Stop()
84
85 testutils.WithTimeout(t, func() string {
86 if ac1.roomJobs.Load()+ac2.roomJobs.Load() != 1 {
87 return "room job not assigned"
88 }
89
90 if ac3.publisherJobs.Load()+ac4.publisherJobs.Load() != 1 {
91 return fmt.Sprintf("publisher jobs not assigned, ac3: %d, ac4: %d", ac3.publisherJobs.Load(), ac4.publisherJobs.Load())

Callers

nothing calls this directly

Calls 12

WithTimeoutFunction · 0.92
setupSingleNodeTestFunction · 0.85
newAgentClientFunction · 0.85
agentTokenFunction · 0.85
createRTCClientFunction · 0.85
waitUntilConnectedFunction · 0.85
AddStaticTrackMethod · 0.80
LoadMethod · 0.65
StopMethod · 0.65
RunMethod · 0.45
StringMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected