...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package schedule
16
17 import (
18 "context"
19 "testing"
20 )
21
22 func TestFIFOSchedule(t *testing.T) {
23 s := NewFIFOScheduler()
24 defer s.Stop()
25
26 next := 0
27 jobCreator := func(i int) Job {
28 return func(ctx context.Context) {
29 if next != i {
30 t.Fatalf("job#%d: got %d, want %d", i, next, i)
31 }
32 next = i + 1
33 }
34 }
35
36 var jobs []Job
37 for i := 0; i < 100; i++ {
38 jobs = append(jobs, jobCreator(i))
39 }
40
41 for _, j := range jobs {
42 s.Schedule(j)
43 }
44
45 s.WaitFinish(100)
46 if s.Scheduled() != 100 {
47 t.Errorf("scheduled = %d, want %d", s.Scheduled(), 100)
48 }
49 }
50
View as plain text