| 216 | } |
| 217 | |
| 218 | func (e *Expecter) Peek(ctx context.Context, n int) []byte { |
| 219 | e.t.Helper() |
| 220 | |
| 221 | var out []byte |
| 222 | err := e.doMatchWithDeadline(ctx, "Peek", func(rd *bufio.Reader) error { |
| 223 | var err error |
| 224 | out, err = rd.Peek(n) |
| 225 | return err |
| 226 | }) |
| 227 | if err != nil { |
| 228 | e.fatalf("read error", "%v (wanted %d bytes; got %d: %q)", err, n, len(out), out) |
| 229 | return nil |
| 230 | } |
| 231 | e.Logf("peeked %d/%d bytes = %q", len(out), n, out) |
| 232 | return slices.Clone(out) |
| 233 | } |
| 234 | |
| 235 | //nolint:govet // We don't care about conforming to ReadRune() (rune, int, error). |
| 236 | func (e *Expecter) ReadRune(ctx context.Context) rune { |