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  }