|
4 | 4 | package rfc8888
|
5 | 5 |
|
6 | 6 | import (
|
| 7 | + "math/rand" |
7 | 8 | "testing"
|
8 | 9 | "time"
|
9 | 10 |
|
@@ -142,21 +143,49 @@ func TestRecorder(t *testing.T) {
|
142 | 143 | }, report.ReportBlocks[0])
|
143 | 144 | })
|
144 | 145 |
|
145 |
| - t.Run("MaxreportsPerStream", func(t *testing.T) { |
| 146 | + t.Run("MaxreportsPerStream 3 streams", func(t *testing.T) { |
146 | 147 | recorder := NewRecorder()
|
147 | 148 | now := time.Time{}
|
| 149 | + maxSize := 1200 |
148 | 150 |
|
| 151 | + streams := 3 |
| 152 | + packets := 1000 |
| 153 | + // Add 1000 packets on 3 different streams |
| 154 | + for i := 0; i < streams; i++ { |
| 155 | + ssrc := rand.Uint32() //nolint:gosec |
| 156 | + for j := 0; j < packets; j++ { |
| 157 | + recorder.AddPacket(now, ssrc, uint16(j), 0) //nolint:gosec // G115 |
| 158 | + } |
| 159 | + } |
| 160 | + reports := recorder.BuildReport(time.Time{}, maxSize) |
| 161 | + |
| 162 | + blocks := 0 |
| 163 | + for i := 0; i < streams; i++ { |
| 164 | + blocks += len(reports.ReportBlocks[i].MetricBlocks) |
| 165 | + } |
| 166 | + assert.Less(t, blocks*2, maxSize) |
| 167 | + }) |
| 168 | + |
| 169 | + t.Run("MaxreportsPerStream 10 streams", func(t *testing.T) { |
| 170 | + recorder := NewRecorder() |
| 171 | + now := time.Time{} |
| 172 | + maxSize := 1300 |
| 173 | + |
| 174 | + streams := 10 |
| 175 | + packets := 1000 |
149 | 176 | // Add 1000 packets on 10 different streams
|
150 |
| - for i := 0; i < 10; i++ { |
151 |
| - for j := 0; j < 100; j++ { |
152 |
| - recorder.AddPacket(now, uint32(i), uint16(j), 0) //nolint:gosec // G115 |
| 177 | + for i := 0; i < streams; i++ { |
| 178 | + ssrc := rand.Uint32() //nolint:gosec |
| 179 | + for j := 0; j < packets; j++ { |
| 180 | + recorder.AddPacket(now, ssrc, uint16(j), 0) //nolint:gosec // G115 |
153 | 181 | }
|
154 | 182 | }
|
155 |
| - reports := recorder.BuildReport(time.Time{}, 1380) |
| 183 | + reports := recorder.BuildReport(time.Time{}, maxSize) |
156 | 184 |
|
157 |
| - for i := 0; i < 10; i++ { |
158 |
| - assert.Greater(t, 72, len(reports.ReportBlocks[i].MetricBlocks)) |
159 |
| - assert.Less(t, 3, len(reports.ReportBlocks[i].MetricBlocks)) |
| 185 | + blocks := 0 |
| 186 | + for i := 0; i < streams; i++ { |
| 187 | + blocks += len(reports.ReportBlocks[i].MetricBlocks) |
160 | 188 | }
|
| 189 | + assert.Less(t, blocks*2, maxSize) |
161 | 190 | })
|
162 | 191 | }
|
0 commit comments