9func tcheckf(t *testing.T, err error, format string, args ...any) {
11 t.Fatalf("%s: %s", fmt.Sprintf(format, args...), err)
15func tcompare(t *testing.T, a, b any) {
16 if !reflect.DeepEqual(a, b) {
17 t.Fatalf("got:\n%#v\nexpected:\n%#v", a, b)
21func uint32ptr(v uint32) *uint32 { return &v }
23func TestParse(t *testing.T) {
24 code, err := ParseCode("COPYUID 1 1:3 2:4")
25 tcheckf(t, err, "parsing code")
29 From: []NumRange{{First: 1, Last: uint32ptr(3)}},
30 To: []NumRange{{First: 2, Last: uint32ptr(4)}},
34 ut, err := ParseUntagged("* BYE done\r\n")
35 tcheckf(t, err, "parsing untagged")
36 tcompare(t, ut, UntaggedBye{Text: "done"})
38 tag, result, err := ParseResult("tag1 OK [ALERT] Hello\r\n")
39 tcheckf(t, err, "parsing result")
40 tcompare(t, tag, "tag1")
41 tcompare(t, result, Result{Status: OK, Code: CodeWord("ALERT"), Text: "Hello"})