Source file
src/os/exec/internal_test.go
1
2
3
4
5 package exec
6
7 import (
8 "io"
9 "testing"
10 )
11
12 func TestPrefixSuffixSaver(t *testing.T) {
13 tests := []struct {
14 N int
15 writes []string
16 want string
17 }{
18 {
19 N: 2,
20 writes: nil,
21 want: "",
22 },
23 {
24 N: 2,
25 writes: []string{"a"},
26 want: "a",
27 },
28 {
29 N: 2,
30 writes: []string{"abc", "d"},
31 want: "abcd",
32 },
33 {
34 N: 2,
35 writes: []string{"abc", "d", "e"},
36 want: "ab\n... omitting 1 bytes ...\nde",
37 },
38 {
39 N: 2,
40 writes: []string{"ab______________________yz"},
41 want: "ab\n... omitting 22 bytes ...\nyz",
42 },
43 {
44 N: 2,
45 writes: []string{"ab_______________________y", "z"},
46 want: "ab\n... omitting 23 bytes ...\nyz",
47 },
48 }
49 for i, tt := range tests {
50 w := &prefixSuffixSaver{N: tt.N}
51 for _, s := range tt.writes {
52 n, err := io.WriteString(w, s)
53 if err != nil || n != len(s) {
54 t.Errorf("%d. WriteString(%q) = %v, %v; want %v, %v", i, s, n, err, len(s), nil)
55 }
56 }
57 if got := string(w.Bytes()); got != tt.want {
58 t.Errorf("%d. Bytes = %q; want %q", i, got, tt.want)
59 }
60 }
61 }
62
View as plain text