|
8 | 8 | "fmt" |
9 | 9 | "sync" |
10 | 10 | "testing" |
| 11 | + |
| 12 | + "github.com/FishGoddess/goes/pkg/spinlock" |
11 | 13 | ) |
12 | 14 |
|
13 | 15 | // go test -v -cover -run=^TestNewDefaultConfig$ |
@@ -43,16 +45,50 @@ func TestConfigRecover(t *testing.T) { |
43 | 45 | func TestConfigNewLocker(t *testing.T) { |
44 | 46 | workerNum := 16 |
45 | 47 | conf := newDefaultConfig(workerNum) |
46 | | - conf.newLocker() |
| 48 | + |
| 49 | + got := conf.newLocker() |
| 50 | + if _, ok := got.(*spinlock.Lock); !ok { |
| 51 | + t.Fatalf("got %T is not *spinlock.Lock", got) |
| 52 | + } |
47 | 53 |
|
48 | 54 | want := &sync.Mutex{} |
49 | 55 | conf.newLockerFunc = func() sync.Locker { |
50 | 56 | return want |
51 | 57 | } |
52 | 58 |
|
53 | | - got := conf.newLocker() |
| 59 | + got = conf.newLocker() |
| 60 | + if fmt.Sprintf("%p", got) != fmt.Sprintf("%p", want) { |
| 61 | + t.Fatalf("got %p != want %p", got, want) |
| 62 | + } |
| 63 | +} |
54 | 64 |
|
| 65 | +// go test -v -cover -run=^TestConfigNewWorkers$ |
| 66 | +func TestConfigNewWorkers(t *testing.T) { |
| 67 | + workerNum := 16 |
| 68 | + conf := newDefaultConfig(workerNum) |
| 69 | + |
| 70 | + got := conf.newWorkers() |
| 71 | + if _, ok := got.(*roundRobinWorkers); !ok { |
| 72 | + t.Fatalf("got %T is not *roundRobinWorkers", got) |
| 73 | + } |
| 74 | + |
| 75 | + want := &roundRobinWorkers{} |
| 76 | + conf.newWorkersFunc = func(workerNum int) workers { |
| 77 | + want.workers = make([]*worker, workerNum) |
| 78 | + return want |
| 79 | + } |
| 80 | + |
| 81 | + got = conf.newWorkers() |
55 | 82 | if fmt.Sprintf("%p", got) != fmt.Sprintf("%p", want) { |
56 | 83 | t.Fatalf("got %p != want %p", got, want) |
57 | 84 | } |
| 85 | + |
| 86 | + rrWorkers, ok := got.(*roundRobinWorkers) |
| 87 | + if !ok { |
| 88 | + t.Fatalf("got %T is not *roundRobinWorkers", got) |
| 89 | + } |
| 90 | + |
| 91 | + if len(rrWorkers.workers) != workerNum { |
| 92 | + t.Fatalf("len(rrWorkers.workers) %d != workerNum %d", len(rrWorkers.workers), workerNum) |
| 93 | + } |
58 | 94 | } |
0 commit comments