MCPcopy
hub / github.com/containers/toolbox / TestSetStateDifferent

Function TestSetStateDifferent

src/pkg/term/term_test.go:86–117  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

84}
85
86func TestSetStateDifferent(t *testing.T) {
87 file, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0)
88 assert.NoError(t, err)
89 defer file.Close()
90
91 oldState, err := GetState(file)
92 assert.NoError(t, err)
93 assert.Equal(t, uint32(unix.ECHO), oldState.Lflag&unix.ECHO)
94 assert.Equal(t, uint32(unix.ICANON), oldState.Lflag&unix.ICANON)
95 assert.NotEqual(t, uint8(13), oldState.Cc[unix.VMIN])
96 assert.NotEqual(t, uint8(42), oldState.Cc[unix.VTIME])
97
98 newState := NewStateFrom(oldState, WithVMIN(13), WithVTIME(42), WithoutECHO(), WithoutICANON())
99 assert.Empty(t, newState.Lflag&unix.ECHO)
100 assert.Empty(t, newState.Lflag&unix.ICANON)
101 assert.Equal(t, uint8(13), newState.Cc[unix.VMIN])
102 assert.Equal(t, uint8(42), newState.Cc[unix.VTIME])
103
104 err = SetState(file, newState)
105 assert.NoError(t, err)
106
107 newState2, err := GetState(file)
108 assert.NoError(t, err)
109 assert.Equal(t, newState.Cc, newState2.Cc)
110 assert.Equal(t, newState.Cflag, newState2.Cflag)
111 assert.Equal(t, newState.Iflag, newState2.Iflag)
112 assert.Equal(t, newState.Ispeed, newState2.Ispeed)
113 assert.Equal(t, newState.Lflag, newState2.Lflag)
114 assert.Equal(t, newState.Line, newState2.Line)
115 assert.Equal(t, newState.Oflag, newState2.Oflag)
116 assert.Equal(t, newState.Ospeed, newState2.Ospeed)
117}
118
119func TestSetStateNOP(t *testing.T) {
120 file, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0)

Callers

nothing calls this directly

Calls 7

GetStateFunction · 0.85
NewStateFromFunction · 0.85
WithVMINFunction · 0.85
WithVTIMEFunction · 0.85
WithoutECHOFunction · 0.85
WithoutICANONFunction · 0.85
SetStateFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…