Skip to content

Commit

Permalink
Change Run() to RunT(t) in tests
Browse files Browse the repository at this point in the history
Goleak[1] found unclosed goroutines in tests, for example
`miniredis_test.go:TestDump`[2] never calls `s.Close()`
```go
func TestDump(t *testing.T) {
	s, err := Run()
	ok(t, err)
	s.Set("aap", "noot")
	s.Set("vuur", "mies")
// ...
}
```

I've changed `Run()` calls to `RunT(t)` calls to:
 - ensure all goroutines all closed after test is finished
 - we have shorter tests (no need to check for error and close server

There is no risk in using RunT even if test manually closes server
because calling Close multiple times is not an issue.

[1] http://go.uber.org/goleak
[2] https://github.com/alicebob/miniredis/blob/9ac631e686635ffc17cb1fb45027b8a67f125c80/miniredis_test.go#L88-L129

Signed-off-by: Wojciech Szarański <wojciech.szaranski@gmail.com>
  • Loading branch information
wszaranski authored and alicebob committed Mar 27, 2024
1 parent 814c2e8 commit 0dd44a9
Show file tree
Hide file tree
Showing 17 changed files with 191 additions and 560 deletions.
40 changes: 10 additions & 30 deletions cmd_connection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ import (

func TestAuth(t *testing.T) {
t.Run("default user", func(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -40,9 +38,7 @@ func TestAuth(t *testing.T) {
})

t.Run("another user", func(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -71,9 +67,7 @@ func TestAuth(t *testing.T) {
})

t.Run("error cases", func(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand All @@ -91,9 +85,7 @@ func TestAuth(t *testing.T) {
}

func TestPing(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -121,9 +113,7 @@ func TestPing(t *testing.T) {
}

func TestEcho(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand All @@ -140,9 +130,7 @@ func TestEcho(t *testing.T) {
}

func TestSelect(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -173,9 +161,7 @@ func TestSelect(t *testing.T) {
}

func TestSwapdb(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -238,9 +224,7 @@ func TestSwapdb(t *testing.T) {
}

func TestQuit(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand All @@ -253,9 +237,7 @@ func TestQuit(t *testing.T) {
}

func TestSetError(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand All @@ -280,9 +262,7 @@ func TestSetError(t *testing.T) {

func TestHello(t *testing.T) {
t.Run("default user", func(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down
72 changes: 18 additions & 54 deletions cmd_generic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ import (

// Test EXPIRE. Keys with an expiration are called volatile in Redis parlance.
func TestTTL(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -104,9 +102,7 @@ func TestTTL(t *testing.T) {
}

func TestExpireat(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -140,9 +136,7 @@ func TestExpireat(t *testing.T) {
}

func TestTouch(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -182,9 +176,7 @@ func TestTouch(t *testing.T) {
}

func TestPexpireat(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -220,9 +212,7 @@ func TestPexpireat(t *testing.T) {
}

func TestPexpire(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -256,9 +246,7 @@ func TestPexpire(t *testing.T) {
}

func TestDel(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -293,9 +281,7 @@ func TestDel(t *testing.T) {
}

func TestUnlink(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -323,9 +309,7 @@ func TestUnlink(t *testing.T) {
}

func TestType(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -371,9 +355,7 @@ func TestType(t *testing.T) {
}

func TestExpireTime(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand All @@ -397,9 +379,7 @@ func TestExpireTime(t *testing.T) {
}

func TestPExpireTime(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand All @@ -423,9 +403,7 @@ func TestPExpireTime(t *testing.T) {
}

func TestExists(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -470,9 +448,7 @@ func TestExists(t *testing.T) {
}

func TestMove(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -525,9 +501,7 @@ func TestMove(t *testing.T) {
}

func TestKeys(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -573,9 +547,7 @@ func TestKeys(t *testing.T) {
}

func TestRandom(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -603,9 +575,7 @@ func TestRandom(t *testing.T) {
}

func TestRename(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -682,9 +652,7 @@ func TestRename(t *testing.T) {
}

func TestScan(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -848,9 +816,7 @@ func TestScan(t *testing.T) {
}

func TestRenamenx(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -905,9 +871,7 @@ func TestRenamenx(t *testing.T) {
}

func TestCopy(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down
20 changes: 5 additions & 15 deletions cmd_geo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ import (
)

func TestGeoadd(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -49,9 +47,7 @@ func TestGeoadd(t *testing.T) {
}

func TestGeopos(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -89,9 +85,7 @@ func TestGeopos(t *testing.T) {

// Test GEOADD / GEORADIUS / GEORADIUS_RO
func TestGeo(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -248,9 +242,7 @@ func TestGeo(t *testing.T) {
}

func TestGeodist(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -305,9 +297,7 @@ func TestGeodist(t *testing.T) {

// Test GEOADD / GEORADIUSBYMEMBER / GEORADIUSBYMEMBER_RO
func TestGeobymember(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down
12 changes: 3 additions & 9 deletions cmd_hll_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ import (

// Test PFADD
func TestPfadd(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -56,9 +54,7 @@ func TestPfadd(t *testing.T) {

// Test PFCOUNT
func TestPfcount(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down Expand Up @@ -135,9 +131,7 @@ func TestPfcount(t *testing.T) {

// Test PFMERGE
func TestPfmerge(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
s := RunT(t)
c, err := proto.Dial(s.Addr())
ok(t, err)
defer c.Close()
Expand Down

0 comments on commit 0dd44a9

Please sign in to comment.