package main import "testing" func TestRolesAndWordsMayLeave(t *testing.T) { for _, s := range []string{ "URGENT: the home server has not been heard for 15 min", "key: provider.keycloak.ace.gitea.failing", "more: conditions show machine.ace.silent", "since: 2026-10-06 12:30 UTC", "call call-1759752000123456789-12 has run past its bound of 10 min", "ace/postgres.query answers no more", "3/4 machines answered; plan 41 waits on build 7f3a9c1e", "the bus advisory slow-consumer for ace_records", "core.controller.novox.rolled-back", "seat node-notifier has no live holder", "HELD BACK: 5 message(s) over the cap of 20 an hour", "STILL OPEN after 1.5 h: the controller's event loop takes no message", "node-engine and node tools builds differ from the plan's", } { if r, ok := Check(s); !ok { t.Errorf("refused %q: %s", s, r) } } } func TestAnAddressAPathOrASecretMayNot(t *testing.T) { for s, class := range map[string]string{ "cannot reach 192.168.1.20": "address", "listening on 10.0.0.7:5432": "address", "route fd00:1234:5678::1 is gone": "address", "fe80::1 answered": "address", "2001:db8:0:0:0:0:2:1 answered": "address", "see https://git.example.org/x": "address", "git.novox.internal does not answer": "address", "the mail for admin@example.org bounced": "address", "zurag.be is down": "address", "localhost refused": "address", "the card aa:bb:cc:dd:ee:ff went away": "address", "/var/lib/mesh-controller is full": "path", "~/.config/hal/env changed": "path", "read ./grants.json": "path", "services/postgres/data/pg_hba.conf": "path", "C:\\Users\\x": "path", "token 123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw": "secret", "ghp_abcdefghijklmnopqrstuvwxyz0123456789": "secret", "password=hunter2": "secret", "api_key: x": "secret", "-----BEGIN OPENSSH PRIVATE KEY-----": "secret", "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0": "secret", "commit 3f2a9c1e5b7d4f6a8c0e2b4d6f8a0c2e4b6d8f0a": "secret", "value Zx8Qp2Lm9Rt4Vb7Nc1Kd5Hs3Jf6": "secret", } { r, ok := Check(s) if ok { t.Errorf("let %q leave", s) continue } if r.Class != class { t.Errorf("%q refused as %s, want %s", s, r, class) } } }