|
|
@@ -6,6 +6,7 @@ package terminal
|
|
|
|
|
|
import (
|
|
|
"io"
|
|
|
+ "os"
|
|
|
"testing"
|
|
|
)
|
|
|
|
|
|
@@ -267,3 +268,24 @@ func TestTerminalSetSize(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestMakeRawState(t *testing.T) {
|
|
|
+ fd := int(os.Stdout.Fd())
|
|
|
+ if !IsTerminal(fd) {
|
|
|
+ t.Skip("stdout is not a terminal; skipping test")
|
|
|
+ }
|
|
|
+
|
|
|
+ st, err := GetState(fd)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("failed to get terminal state from GetState: %s", err)
|
|
|
+ }
|
|
|
+ defer Restore(fd, st)
|
|
|
+ raw, err := MakeRaw(fd)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("failed to get terminal state from MakeRaw: %s", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if *st != *raw {
|
|
|
+ t.Errorf("states do not match; was %v, expected %v", raw, st)
|
|
|
+ }
|
|
|
+}
|