v2 / vlib / term / termios / termios_test.c.v
35 lines · 29 sloc · 825 bytes · 6cc51f254f6a6ea921726f6014107a7100ad97d1
Raw
1module termios
2
3fn test_portable() {
4 assert 123 == int(flag(123))
5 o := Termios{
6 c_lflag: flag(0xFFFF)
7 } // assume c_lflag exists everywhere
8 // dump( o.c_lflag )
9 mut n := o
10 n.c_lflag &= invert(1)
11 // dump( n.c_lflag )
12 assert n.c_lflag != o.c_lflag
13 n.disable_echo() // just assume it exists, and can be called everywhere
14 assert true
15}
16
17@[if !windows]
18fn test_termios() {
19 mut original_term := Termios{}
20 tcgetattr(0, mut original_term)
21 println(original_term)
22
23 mut silent_term := original_term
24 silent_term.c_lflag &= invert(C.ECHO)
25 tcsetattr(0, C.TCSANOW, mut silent_term)
26
27 mut check_term := Termios{}
28 tcgetattr(0, mut check_term)
29 assert check_term.c_lflag == silent_term.c_lflag
30
31 tcsetattr(0, C.TCSANOW, mut original_term)
32
33 tcgetattr(0, mut check_term)
34 assert check_term.c_lflag == original_term.c_lflag
35}
36