Skip to content

Commit 53d9b52

Browse files
committed
testing: use t.Cleanup() for test utilities
Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 8874cc1 commit 53d9b52

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

term_test.go

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,38 @@ import (
77
"os"
88
"testing"
99

10-
"github.com/creack/pty"
10+
cpty "github.com/creack/pty"
1111
"github.com/google/go-cmp/cmp"
1212
"gotest.tools/v3/assert"
1313
)
1414

15-
func newTtyForTest(t *testing.T) (*os.File, *os.File) {
15+
func newTTYForTest(t *testing.T) *os.File {
1616
t.Helper()
17-
pty, tty, err := pty.Open()
17+
pty, tty, err := cpty.Open()
1818
if err != nil {
1919
t.Fatalf("error creating pty: %v", err)
20+
} else {
21+
t.Cleanup(func() {
22+
_ = pty.Close()
23+
_ = tty.Close()
24+
})
2025
}
21-
22-
return pty, tty
26+
return tty
2327
}
2428

25-
func newTempFile() (*os.File, error) {
26-
return os.CreateTemp(os.TempDir(), "temp")
29+
func newTempFile(t *testing.T) *os.File {
30+
t.Helper()
31+
tmpFile, err := os.CreateTemp(t.TempDir(), "temp")
32+
if err != nil {
33+
t.Fatalf("error creating tempfile: %v", err)
34+
} else {
35+
t.Cleanup(func() { _ = tmpFile.Close() })
36+
}
37+
return tmpFile
2738
}
2839

2940
func TestGetWinsize(t *testing.T) {
30-
pty, tty := newTtyForTest(t)
31-
defer pty.Close()
32-
defer tty.Close()
41+
tty := newTTYForTest(t)
3342
winSize, err := GetWinsize(tty.Fd())
3443
assert.NilError(t, err)
3544
assert.Assert(t, winSize != nil)
@@ -45,9 +54,7 @@ func TestGetWinsize(t *testing.T) {
4554
var cmpWinsize = cmp.AllowUnexported(Winsize{})
4655

4756
func TestSetWinsize(t *testing.T) {
48-
pty, tty := newTtyForTest(t)
49-
defer pty.Close()
50-
defer tty.Close()
57+
tty := newTTYForTest(t)
5158
winSize, err := GetWinsize(tty.Fd())
5259
assert.NilError(t, err)
5360
assert.Assert(t, winSize != nil)
@@ -60,51 +67,38 @@ func TestSetWinsize(t *testing.T) {
6067
}
6168

6269
func TestGetFdInfo(t *testing.T) {
63-
pty, tty := newTtyForTest(t)
64-
defer pty.Close()
65-
defer tty.Close()
70+
tty := newTTYForTest(t)
6671
inFd, isTerminal := GetFdInfo(tty)
6772
assert.Equal(t, inFd, tty.Fd())
6873
assert.Equal(t, isTerminal, true)
69-
tmpFile, err := newTempFile()
70-
assert.NilError(t, err)
71-
defer tmpFile.Close()
74+
tmpFile := newTempFile(t)
7275
inFd, isTerminal = GetFdInfo(tmpFile)
7376
assert.Equal(t, inFd, tmpFile.Fd())
7477
assert.Equal(t, isTerminal, false)
7578
}
7679

7780
func TestIsTerminal(t *testing.T) {
78-
pty, tty := newTtyForTest(t)
79-
defer pty.Close()
80-
defer tty.Close()
81+
tty := newTTYForTest(t)
8182
isTerminal := IsTerminal(tty.Fd())
8283
assert.Equal(t, isTerminal, true)
83-
tmpFile, err := newTempFile()
84-
assert.NilError(t, err)
85-
defer tmpFile.Close()
84+
tmpFile := newTempFile(t)
8685
isTerminal = IsTerminal(tmpFile.Fd())
8786
assert.Equal(t, isTerminal, false)
8887
}
8988

9089
func TestSaveState(t *testing.T) {
91-
pty, tty := newTtyForTest(t)
92-
defer pty.Close()
93-
defer tty.Close()
90+
tty := newTTYForTest(t)
9491
state, err := SaveState(tty.Fd())
9592
assert.NilError(t, err)
9693
assert.Assert(t, state != nil)
97-
pty, tty = newTtyForTest(t)
98-
defer pty.Close()
94+
tty = newTTYForTest(t)
9995
defer tty.Close()
10096
err = RestoreTerminal(tty.Fd(), state)
10197
assert.NilError(t, err)
10298
}
10399

104100
func TestDisableEcho(t *testing.T) {
105-
pty, tty := newTtyForTest(t)
106-
defer pty.Close()
107-
defer tty.Close()
101+
tty := newTTYForTest(t)
108102
state, err := SetRawTerminal(tty.Fd())
109103
defer RestoreTerminal(tty.Fd(), state)
110104
assert.NilError(t, err)

0 commit comments

Comments
 (0)