@@ -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
2940func 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) {
4554var cmpWinsize = cmp .AllowUnexported (Winsize {})
4655
4756func 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
6269func 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
7780func 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
9089func 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
104100func 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