Skip to content

Commit 34fa3ad

Browse files
author
Andrew Mason
committed
go/cache: use assert/require
Signed-off-by: Andrew Mason <andrew@planetscale.com>
1 parent 3a52152 commit 34fa3ad

File tree

1 file changed

+20
-31
lines changed

1 file changed

+20
-31
lines changed

go/cache/theine/singleflight_test.go

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ import (
3232
"sync/atomic"
3333
"testing"
3434
"time"
35+
36+
"github.com/stretchr/testify/assert"
37+
"github.com/stretchr/testify/require"
3538
)
3639

3740
func TestDo(t *testing.T) {
3841
g := NewGroup[string, string]()
3942
v, err, _ := g.Do("key", func() (string, error) {
4043
return "bar", nil
4144
})
42-
if got, want := fmt.Sprintf("%v (%T)", v, v), "bar (string)"; got != want {
43-
t.Errorf("Do = %v; want %v", got, want)
44-
}
45-
if err != nil {
46-
t.Errorf("Do error = %v", err)
47-
}
45+
46+
assert.Equal(t, "bar (string)", fmt.Sprintf("%v (%T)", v, v), "incorrect Do value")
47+
assert.NoError(t, err, "got Do error")
4848
}
4949

5050
func TestDoErr(t *testing.T) {
@@ -53,12 +53,9 @@ func TestDoErr(t *testing.T) {
5353
v, err, _ := g.Do("key", func() (string, error) {
5454
return "", someErr
5555
})
56-
if err != someErr {
57-
t.Errorf("Do error = %v; want someErr %v", err, someErr)
58-
}
59-
if v != "" {
60-
t.Errorf("unexpected non-nil value %#v", v)
61-
}
56+
57+
assert.ErrorIs(t, err, someErr, "incorrect Do error")
58+
assert.Empty(t, v, "unexpected non-empty value")
6259
}
6360

6461
func TestDoDupSuppress(t *testing.T) {
@@ -88,23 +85,20 @@ func TestDoDupSuppress(t *testing.T) {
8885
defer wg2.Done()
8986
wg1.Done()
9087
v, err, _ := g.Do("key", fn)
91-
if err != nil {
92-
t.Errorf("Do error: %v", err)
88+
if !assert.NoError(t, err, "unexpected Do error") {
9389
return
9490
}
95-
if s := v; s != "bar" {
96-
t.Errorf("Do = %T %v; want %q", v, v, "bar")
97-
}
91+
92+
assert.Equal(t, "bar", v, "unexpected Do value")
9893
}()
9994
}
10095
wg1.Wait()
10196
// At least one goroutine is in fn now and all of them have at
10297
// least reached the line before the Do.
10398
c <- "bar"
10499
wg2.Wait()
105-
if got := atomic.LoadInt32(&calls); got <= 0 || got >= n {
106-
t.Errorf("number of calls = %d; want over 0 and less than %d", got, n)
107-
}
100+
got := atomic.LoadInt32(&calls)
101+
assert.True(t, got > 0 && got < n, "number of calls not between 0 and %d", n)
108102
}
109103

110104
// Test singleflight behaves correctly after Do panic.
@@ -137,11 +131,9 @@ func TestPanicDo(t *testing.T) {
137131

138132
select {
139133
case <-done:
140-
if panicCount != n {
141-
t.Errorf("Expect %d panic, but got %d", n, panicCount)
142-
}
134+
assert.Equal(t, int32(n), panicCount, "unexpected number of panics")
143135
case <-time.After(time.Second):
144-
t.Fatalf("Do hangs")
136+
require.Fail(t, "Do hangs")
145137
}
146138
}
147139

@@ -159,9 +151,7 @@ func TestGoexitDo(t *testing.T) {
159151
go func() {
160152
var err error
161153
defer func() {
162-
if err != nil {
163-
t.Errorf("Error should be nil, but got: %v", err)
164-
}
154+
assert.NoError(t, err)
165155
if atomic.AddInt32(&waited, -1) == 0 {
166156
close(done)
167157
}
@@ -173,7 +163,7 @@ func TestGoexitDo(t *testing.T) {
173163
select {
174164
case <-done:
175165
case <-time.After(time.Second):
176-
t.Fatalf("Do hangs")
166+
require.Fail(t, "Do hangs")
177167
}
178168
}
179169

@@ -202,9 +192,8 @@ func randKeys(b *testing.B, count, length uint) []string {
202192
key := make([]byte, length)
203193

204194
for i := range uint(count) {
205-
if _, err := io.ReadFull(rand.Reader, key); err != nil {
206-
b.Fatalf("Failed to generate random key %d of %d of length %d: %s", i+1, count, length, err)
207-
}
195+
_, err := io.ReadFull(rand.Reader, key)
196+
require.NoError(b, err, "Failed to generate random key %d of %d length %d", i+1, count, length)
208197
keys = append(keys, string(key))
209198
}
210199
return keys

0 commit comments

Comments
 (0)