summaryrefslogtreecommitdiffhomepage
path: root/tstest/log_test.go
blob: 34aab000d4ad304c398fc33ea2bf1fae10c2c22f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright (c) Tailscale Inc & contributors
// SPDX-License-Identifier: BSD-3-Clause

package tstest

import (
	"reflect"
	"testing"
)

func TestLogLineTracker(t *testing.T) {
	const (
		l1 = "line 1: %s"
		l2 = "line 2: %s"
		l3 = "line 3: %s"
	)

	lt := NewLogLineTracker(t.Logf, []string{l1, l2})

	if got, want := lt.Check(), []string{l1, l2}; !reflect.DeepEqual(got, want) {
		t.Errorf("Check = %q; want %q", got, want)
	}

	lt.Logf(l3, "hi")

	if got, want := lt.Check(), []string{l1, l2}; !reflect.DeepEqual(got, want) {
		t.Errorf("Check = %q; want %q", got, want)
	}

	lt.Logf(l1, "hi")

	if got, want := lt.Check(), []string{l2}; !reflect.DeepEqual(got, want) {
		t.Errorf("Check = %q; want %q", got, want)
	}

	lt.Logf(l1, "bye")

	if got, want := lt.Check(), []string{l2}; !reflect.DeepEqual(got, want) {
		t.Errorf("Check = %q; want %q", got, want)
	}

	lt.Logf(l2, "hi")

	if got, want := lt.Check(), []string(nil); !reflect.DeepEqual(got, want) {
		t.Errorf("Check = %q; want %q", got, want)
	}
}