1
2
3
4
5 package testdeps
6
7 import (
8 "bufio"
9 "strconv"
10 "strings"
11 "testing"
12 )
13
14 func TestTestLogDedup(t *testing.T) {
15 var b strings.Builder
16 l := &testLog{w: bufio.NewWriter(&b)}
17 l.Stat("a")
18 l.Stat("a")
19 l.Open("a")
20 l.Getenv("HOME")
21 l.Getenv("HOME")
22 l.Chdir("/x")
23 l.Stat("a")
24 l.Stat("a")
25 l.Getenv("HOME")
26 l.Open("")
27 l.Open("b\nc")
28 if err := l.w.Flush(); err != nil {
29 t.Fatal(err)
30 }
31 want := "stat a\nopen a\ngetenv HOME\nchdir /x\nstat a\ngetenv HOME\n"
32 if got := b.String(); got != want {
33 t.Errorf("log:\n%s\nwant:\n%s", got, want)
34 }
35 }
36
37
38
39 func TestTestLogBounded(t *testing.T) {
40 var b strings.Builder
41 l := &testLog{w: bufio.NewWriter(&b)}
42 const n = 100000
43 most := 0
44 for i := range n {
45 l.Stat("f" + strconv.Itoa(i))
46 most = max(most, len(l.seen))
47 }
48 if most > n/2 {
49 t.Errorf("seen grew to %d entries for %d distinct names", most, n)
50 }
51 if err := l.w.Flush(); err != nil {
52 t.Fatal(err)
53 }
54 if got := strings.Count(b.String(), "\n"); got != n {
55 t.Errorf("wrote %d lines for %d distinct entries", got, n)
56 }
57 }
58
View as plain text