MCPcopy Create free account
hub / github.com/PostHog/duckgres / TestReadStartupMessage

Function TestReadStartupMessage

server/protocol_test.go:12–113  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

10)
11
12func TestReadStartupMessage(t *testing.T) {
13 t.Run("valid startup message", func(t *testing.T) {
14 // Build a startup message:
15 // - 4 bytes length (including itself)
16 // - 4 bytes protocol version (196608 = 3.0)
17 // - key-value pairs null-terminated
18 // - final null byte
19 var buf bytes.Buffer
20
21 params := map[string]string{
22 "user": "testuser",
23 "database": "testdb",
24 }
25
26 // Calculate length
27 bodyLen := 4 // protocol version
28 for k, v := range params {
29 bodyLen += len(k) + 1 + len(v) + 1
30 }
31 bodyLen++ // final null
32
33 // Write length (includes itself)
34 _ = binary.Write(&buf, binary.BigEndian, int32(bodyLen+4))
35
36 // Write protocol version (3.0 = 196608)
37 _ = binary.Write(&buf, binary.BigEndian, uint32(196608))
38
39 // Write params
40 for k, v := range params {
41 buf.WriteString(k)
42 buf.WriteByte(0)
43 buf.WriteString(v)
44 buf.WriteByte(0)
45 }
46 buf.WriteByte(0) // final null
47
48 result, err := wire.ReadStartupMessage(&buf)
49 if err != nil {
50 t.Fatalf("wire.ReadStartupMessage() error = %v", err)
51 }
52
53 if result.Params["user"] != "testuser" {
54 t.Errorf("user = %q, want %q", result.Params["user"], "testuser")
55 }
56 if result.Params["database"] != "testdb" {
57 t.Errorf("database = %q, want %q", result.Params["database"], "testdb")
58 }
59 })
60
61 t.Run("SSL request", func(t *testing.T) {
62 var buf bytes.Buffer
63
64 // SSL request: length=8, version=80877103
65 _ = binary.Write(&buf, binary.BigEndian, int32(8))
66 _ = binary.Write(&buf, binary.BigEndian, uint32(80877103))
67
68 result, err := wire.ReadStartupMessage(&buf)
69 if err != nil {

Callers

nothing calls this directly

Calls 4

ReadStartupMessageFunction · 0.92
RunMethod · 0.65
WriteMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected