1package ports
2
3import "testing"
4
5func TestProtocolVersion(t *testing.T) {
6 if ProtocolVersion != 19 {
7 t.Fatalf("ProtocolVersion = %d, want 19", ProtocolVersion)
8 }
9}
10
11func TestControlMsgTypes(t *testing.T) {
12 if MsgCommand != 12 {
13 t.Fatalf("MsgCommand = %d, want 12", MsgCommand)
14 }
15 if MsgCommandResult != 22 {
16 t.Fatalf("MsgCommandResult = %d, want 22", MsgCommandResult)
17 }
18}
19
20func TestMsgTypeUnique(t *testing.T) {
21 tests := []struct {
22 name string
23 typ MsgType
24 }{
25 {"MsgHello", MsgHello},
26 {"MsgInput", MsgInput},
27 {"MsgResize", MsgResize},
28 {"MsgDetach", MsgDetach},
29 {"MsgPing", MsgPing},
30 {"MsgList", MsgList},
31 {"MsgKill", MsgKill},
32 {"MsgTheme", MsgTheme},
33 {"MsgAck", MsgAck},
34 {"MsgImagePush", MsgImagePush},
35 {"MsgClientNotice", MsgClientNotice},
36 {"MsgCommand", MsgCommand},
37 {"MsgWelcome", MsgWelcome},
38 {"MsgError", MsgError},
39 {"MsgOutput", MsgOutput},
40 {"MsgDetached", MsgDetached},
41 {"MsgPong", MsgPong},
42 {"MsgSessions", MsgSessions},
43 {"MsgCommandResult", MsgCommandResult},
44 }
45
46 seen := make(map[MsgType]string, len(tests))
47 for _, tt := range tests {
48 if prev, ok := seen[tt.typ]; ok {
49 t.Errorf("MsgType value %d used by both %s and %s", tt.typ, prev, tt.name)
50 }
51 seen[tt.typ] = tt.name
52 }
53
54 if len(seen) != len(tests) {
55 t.Fatalf("expected %d distinct MsgType values, got %d", len(tests), len(seen))
56 }
57}