push
github
1 of 1 new or added line in 1 file covered. (100.0%)
5 existing lines in 2 files now uncovered.3612 of 3849 relevant lines covered (93.84%)
1.37 hits per line
| 1 |
package socksgo
|
|
| 2 |
|
|
| 3 |
import (
|
|
| 4 |
"context"
|
|
| 5 |
"sync"
|
|
| 6 |
) |
|
| 7 |
|
|
| 8 |
func closeOnContextDone(ctx context.Context, closeFn func()) func() { |
1✔ |
| 9 |
done := make(chan struct{}) |
1✔ |
| 10 |
var once sync.Once
|
1✔ |
| 11 |
|
1✔ |
| 12 |
go func() { |
2✔ |
| 13 |
select {
|
1✔ |
|
UNCOV
14
|
case <-ctx.Done():
|
× |
|
UNCOV
15
|
closeFn() |
× |
| 16 |
case <-done:
|
1✔ |
| 17 |
} |
|
| 18 |
}() |
|
| 19 |
|
|
| 20 |
return func() { |
2✔ |
| 21 |
once.Do(func() {
|
2✔ |
| 22 |
close(done)
|
1✔ |
| 23 |
}) |
1✔ |
| 24 |
} |
|
| 25 |
} |