Commit 530a2fdc11

530a2fdc11fbb5fa1733b274906d885d045ca295

parent: 0d76166636

Verified · cmc ci/build: success ci/test: success

cmc <hello@cleberg.net> · 2026-09-28 23:29 UTC

hookd: the peer-refusal test accepts a broken pipe

Ref #300

Layout: unified · split

internal/hookd/socket_test.go +5 −2
@@ -155,8 +155,11 @@ func TestPeerRefusalIsAudited(t *testing.T) {
155155 peerCheck = func(net.Conn) error { return errors.New("peer uid not permitted") }
156156 t.Cleanup(func() { peerCheck = old })
157157 sock, st, repoID, uid := serveSocket(t)
158 if resp, err := Ask(sock, Request{Hook: "pre-receive", RepoID: repoID, UserID: uid}, nil); err != nil || resp.Allow {
159 t.Fatalf("refused peer: %+v, %v", resp, err)
158 // The server answers and closes without reading the request, so the
159 // client may see the refusal or a broken pipe; either way it is not
160 // allowed, and the row is written before the connection closes.
161 if resp, err := Ask(sock, Request{Hook: "pre-receive", RepoID: repoID, UserID: uid}, nil); err == nil && resp.Allow {
162 t.Fatalf("refused peer was allowed: %+v", resp)
160163 }
161164 rows := refusedRows(t, st, "refused hook")
162165 if len(rows) != 1 || rows[0].Actor != "" || !strings.Contains(rows[0].Data, "peer uid not permitted") {