(t *testing.T)
| 155 | } |
| 156 | |
| 157 | func TestRetrieveExpiry(t *testing.T) { |
| 158 | size := 10 |
| 159 | q := newWorkerLoopQueue(size) |
| 160 | expirew := make([]worker, 0) |
| 161 | u, _ := time.ParseDuration("1s") |
| 162 | |
| 163 | // test [ time+1s, time+1s, time+1s, time+1s, time+1s, time, time, time, time, time] |
| 164 | for i := 0; i < size/2; i++ { |
| 165 | _ = q.insert(&goWorker{lastUsed: time.Now().UnixNano()}) |
| 166 | } |
| 167 | expirew = append(expirew, q.items[:size/2]...) |
| 168 | time.Sleep(u) |
| 169 | |
| 170 | for i := 0; i < size/2; i++ { |
| 171 | _ = q.insert(&goWorker{lastUsed: time.Now().UnixNano()}) |
| 172 | } |
| 173 | workers := q.refresh(u) |
| 174 | |
| 175 | require.EqualValues(t, expirew, workers, "expired workers aren't right") |
| 176 | |
| 177 | // test [ time, time, time, time, time, time+1s, time+1s, time+1s, time+1s, time+1s] |
| 178 | time.Sleep(u) |
| 179 | |
| 180 | for i := 0; i < size/2; i++ { |
| 181 | _ = q.insert(&goWorker{lastUsed: time.Now().UnixNano()}) |
| 182 | } |
| 183 | expirew = expirew[:0] |
| 184 | expirew = append(expirew, q.items[size/2:]...) |
| 185 | |
| 186 | workers2 := q.refresh(u) |
| 187 | |
| 188 | require.EqualValues(t, expirew, workers2, "expired workers aren't right") |
| 189 | |
| 190 | // test [ time+1s, time+1s, time+1s, nil, nil, time+1s, time+1s, time+1s, time+1s, time+1s] |
| 191 | for i := 0; i < size/2; i++ { |
| 192 | _ = q.insert(&goWorker{lastUsed: time.Now().UnixNano()}) |
| 193 | } |
| 194 | for i := 0; i < size/2; i++ { |
| 195 | _ = q.detach() |
| 196 | } |
| 197 | for i := 0; i < 3; i++ { |
| 198 | _ = q.insert(&goWorker{lastUsed: time.Now().UnixNano()}) |
| 199 | } |
| 200 | time.Sleep(u) |
| 201 | |
| 202 | expirew = expirew[:0] |
| 203 | expirew = append(expirew, q.items[0:3]...) |
| 204 | expirew = append(expirew, q.items[size/2:]...) |
| 205 | |
| 206 | workers3 := q.refresh(u) |
| 207 | |
| 208 | require.EqualValues(t, expirew, workers3, "expired workers aren't right") |
| 209 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…