MCPcopy Create free account
hub / github.com/distributed/sers / TestParseModestring

Function TestParseModestring

modestring_test.go:5–63  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3import "testing"
4
5func TestParseModestring(t *testing.T) {
6 cases := []struct {
7 Str string
8 Parses bool
9 Mode Mode
10 }{
11 // all none default
12 {"5000,5e2,rtscts", true, Mode{5000, 5, E, 2, RTSCTS_HANDSHAKE}},
13 // all none default
14 {"115200,7n2,rtscts", true, Mode{115200, 7, N, 2, RTSCTS_HANDSHAKE}},
15 // only decimal baudrates
16 {"0x5,8n1,rtscts", false, Mode{}},
17 // a standard case
18 {"57600,8n1", true, Mode{57600, 8, N, 1, NO_HANDSHAKE}},
19 // 8 bit default
20 {"20,n1,rtscts", true, Mode{20, 8, N, 1, RTSCTS_HANDSHAKE}},
21 // 8 bit, N default
22 {"25,2,rtscts", true, Mode{25, 8, N, 2, RTSCTS_HANDSHAKE}},
23 // no handshake default
24 {"112,8o2", true, Mode{112, 8, O, 2, NO_HANDSHAKE}},
25 // parity can be left at default
26 {"115,82,rtscts", true, Mode{115, 8, N, 2, RTSCTS_HANDSHAKE}},
27 // stop bits can be left at default
28 {"20,7e,rtscts", true, Mode{20, 7, E, 1, RTSCTS_HANDSHAKE}},
29 // alternate default handshake
30 {"20,7e,", true, Mode{20, 7, E, 1, NO_HANDSHAKE}},
31 // unusual, but possible: just set the stopbits
32 {"37,2", true, Mode{37, 8, N, 2, NO_HANDSHAKE}},
33 // 0 instead of O
34 {"21,801", false, Mode{}},
35 // 6 databits
36 {"52,6e1", true, Mode{52, 6, E, 1, NO_HANDSHAKE}},
37 // wrong handshake format
38 {"54,8n1,invalid", false, Mode{}},
39 // all default framing format
40 {"66,,rtscts", true, Mode{66, 8, N, 1, RTSCTS_HANDSHAKE}},
41 }
42
43 for i, c := range cases {
44 mode, err := ParseModestring(c.Str)
45 if c.Parses && err != nil {
46 t.Errorf("case %d: expected to parse, but errors with %q", i, err)
47 continue
48 } else if !c.Parses && err == nil {
49 t.Errorf("case %d: expected to error, but parses as %v", i, mode)
50 continue
51 }
52
53 if !c.Parses && err != nil {
54 t.Logf("str %q error %s", c.Str, err)
55 continue
56 }
57
58 if mode != c.Mode {
59 t.Errorf("case %d: got %v, want %v", i, mode, c.Mode)
60 continue
61 }
62 }

Callers

nothing calls this directly

Calls 1

ParseModestringFunction · 0.85

Tested by

no test coverage detected