github.com/burke/ttyutils@v0.0.0-20160630170808-5017fbbf251a/ttyutils_test.go (about) 1 package ttyutils_test 2 3 import ( 4 "os" 5 "reflect" 6 "testing" 7 8 "github.com/burke/ttyutils" 9 "github.com/kr/pty" 10 ) 11 12 func TestIsTerminal(t *testing.T) { 13 mpty, mtty, err := pty.Open() 14 if err != nil { 15 t.Fatal(err) 16 } 17 defer mtty.Close() 18 defer mpty.Close() 19 20 if !ttyutils.IsTerminal(mtty.Fd()) { 21 t.Error("tty should be reported as a terminal") 22 } 23 if !ttyutils.IsTerminal(mpty.Fd()) { 24 t.Error("pty should be reported as a terminal") 25 } 26 27 null, err := os.Open(os.DevNull) 28 if err != nil { 29 t.Fatal(err) 30 } 31 defer null.Close() 32 33 if ttyutils.IsTerminal(null.Fd()) { 34 t.Error("/dev/null should not be reported as a terminal") 35 } 36 } 37 38 func TestWinSize(t *testing.T) { 39 mpty, mtty, err := pty.Open() 40 if err != nil { 41 t.Fatal(err) 42 } 43 defer mtty.Close() 44 defer mpty.Close() 45 46 size, err := ttyutils.Winsize(mtty) 47 48 if err != nil { 49 t.Fatal(err) 50 } 51 52 if !reflect.DeepEqual(size, ttyutils.Ttysize{Lines: 0, Columns: 0}) { 53 t.Errorf("expected 0x0 terminal, got %#v", size) 54 } 55 }