github.com/rck/u-root@v0.0.0-20180106144920-7eb602e381bb/pkg/termios/termios_test.go (about) 1 // Copyright 2015-2017 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package termios implements basic termios operations including getting 6 // a termio struct, a winsize struct, and setting raw mode. 7 // To set raw mode and then restore, one can do: 8 // t, err := termios.Raw() 9 // do things 10 // t.Set() 11 package termios 12 13 import ( 14 "reflect" 15 "testing" 16 ) 17 18 func TestNew(t *testing.T) { 19 if _, err := New(); err != nil { 20 t.Errorf("TestNew: want nil, got %v", err) 21 } 22 23 } 24 25 func TestRaw(t *testing.T) { 26 tty, err := New() 27 if err != nil { 28 t.Fatalf("TestRaw new: want nil, got %v", err) 29 } 30 term, err := tty.Get() 31 if err != nil { 32 t.Fatalf("TestRaw get: want nil, got %v", err) 33 } 34 35 n, err := tty.Raw() 36 if err != nil { 37 t.Fatalf("TestRaw raw: want nil, got %v", err) 38 } 39 if !reflect.DeepEqual(term, n) { 40 t.Fatalf("TestRaw: New(%v) and Raw(%v) should be equal, are not", t, n) 41 } 42 if err := tty.Set(n); err != nil { 43 t.Fatalf("TestRaw restore mode: want nil, got %v", err) 44 } 45 n, err = tty.Get() 46 if err != nil { 47 t.Fatalf("TestRaw second call to New(): want nil, got %v", err) 48 } 49 if !reflect.DeepEqual(term, n) { 50 t.Fatalf("TestRaw: After Raw restore: New(%v) and check(%v) should be equal, are not", term, n) 51 } 52 }