MCPcopy
hub / github.com/syncthing/syncthing / TestQueuePagination

Function TestQueuePagination

lib/model/queue_test.go:199–318  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

197}
198
199func TestQueuePagination(t *testing.T) {
200 q := newJobQueue()
201 // Ten random actions
202 names := make([]string, 10)
203 for i := 0; i < 10; i++ {
204 names[i] = fmt.Sprint("f", i)
205 q.Push(names[i], 0, time.Time{})
206 }
207
208 progress, queued, skip := q.Jobs(1, 100)
209 if len(progress) != 0 || len(queued) != 10 || skip != 0 {
210 t.Error("Wrong length", len(progress), len(queued), 0)
211 }
212
213 progress, queued, skip = q.Jobs(1, 5)
214 if len(progress) != 0 || len(queued) != 5 || skip != 0 {
215 t.Error("Wrong length", len(progress), len(queued), 0)
216 } else if !slices.Equal(queued, names[:5]) {
217 t.Errorf("Wrong elements in queued, got %v, expected %v", queued, names[:5])
218 }
219
220 progress, queued, skip = q.Jobs(2, 5)
221 if len(progress) != 0 || len(queued) != 5 || skip != 5 {
222 t.Error("Wrong length", len(progress), len(queued), 0)
223 } else if !slices.Equal(queued, names[5:]) {
224 t.Errorf("Wrong elements in queued, got %v, expected %v", queued, names[5:])
225 }
226
227 progress, queued, skip = q.Jobs(2, 7)
228 if len(progress) != 0 || len(queued) != 3 || skip != 7 {
229 t.Error("Wrong length", len(progress), len(queued), 0)
230 } else if !slices.Equal(queued, names[7:]) {
231 t.Errorf("Wrong elements in queued, got %v, expected %v", queued, names[7:])
232 }
233
234 progress, queued, skip = q.Jobs(3, 5)
235 if len(progress) != 0 || len(queued) != 0 || skip != 10 {
236 t.Error("Wrong length", len(progress), len(queued), 0)
237 }
238
239 n, ok := q.Pop()
240 if !ok || n != names[0] {
241 t.Fatal("Wrong element")
242 }
243
244 progress, queued, skip = q.Jobs(1, 100)
245 if len(progress) != 1 || len(queued) != 9 || skip != 0 {
246 t.Error("Wrong length", len(progress), len(queued), 0)
247 }
248
249 progress, queued, skip = q.Jobs(1, 5)
250 if len(progress) != 1 || len(queued) != 4 || skip != 0 {
251 t.Error("Wrong length", len(progress), len(queued), 0)
252 } else if !slices.Equal(progress, names[:1]) {
253 t.Errorf("Wrong elements in progress, got %v, expected %v", progress, names[:1])
254 } else if !slices.Equal(queued, names[1:5]) {
255 t.Errorf("Wrong elements in queued, got %v, expected %v", queued, names[1:5])
256 }

Callers

nothing calls this directly

Calls 7

newJobQueueFunction · 0.85
FatalMethod · 0.80
JobsMethod · 0.65
ErrorMethod · 0.65
PushMethod · 0.45
EqualMethod · 0.45
PopMethod · 0.45

Tested by

no test coverage detected