(t *testing.T)
| 32 | ) |
| 33 | |
| 34 | func 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()) |
nothing calls this directly
no test coverage detected