xref: /aosp_15_r20/build/make/tools/canoninja/canoninja_test.go (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
1*9e94795aSAndroid Build Coastguard Workerpackage canoninja
2*9e94795aSAndroid Build Coastguard Worker
3*9e94795aSAndroid Build Coastguard Workerimport (
4*9e94795aSAndroid Build Coastguard Worker	"bytes"
5*9e94795aSAndroid Build Coastguard Worker	"testing"
6*9e94795aSAndroid Build Coastguard Worker)
7*9e94795aSAndroid Build Coastguard Worker
8*9e94795aSAndroid Build Coastguard Workerfunc TestGenerate(t *testing.T) {
9*9e94795aSAndroid Build Coastguard Worker	tests := []struct {
10*9e94795aSAndroid Build Coastguard Worker		name     string
11*9e94795aSAndroid Build Coastguard Worker		in       []byte
12*9e94795aSAndroid Build Coastguard Worker		wantSink string
13*9e94795aSAndroid Build Coastguard Worker		wantErr  bool
14*9e94795aSAndroid Build Coastguard Worker	}{
15*9e94795aSAndroid Build Coastguard Worker		{
16*9e94795aSAndroid Build Coastguard Worker			name: "1",
17*9e94795aSAndroid Build Coastguard Worker			in: []byte(`
18*9e94795aSAndroid Build Coastguard Workerrule rule1
19*9e94795aSAndroid Build Coastguard Worker  abcd
20*9e94795aSAndroid Build Coastguard Workerrule rule2
21*9e94795aSAndroid Build Coastguard Worker  abcd
22*9e94795aSAndroid Build Coastguard Workerbuild x: rule1
23*9e94795aSAndroid Build Coastguard Worker`),
24*9e94795aSAndroid Build Coastguard Worker			wantSink: `
25*9e94795aSAndroid Build Coastguard Workerrule R9c97aba7f61994be6862f5ea9a62d26130c7f48b
26*9e94795aSAndroid Build Coastguard Worker  abcd
27*9e94795aSAndroid Build Coastguard Workerrule R9c97aba7f61994be6862f5ea9a62d26130c7f48b
28*9e94795aSAndroid Build Coastguard Worker  abcd
29*9e94795aSAndroid Build Coastguard Workerbuild x: R9c97aba7f61994be6862f5ea9a62d26130c7f48b
30*9e94795aSAndroid Build Coastguard Worker`,
31*9e94795aSAndroid Build Coastguard Worker			wantErr: false,
32*9e94795aSAndroid Build Coastguard Worker		},
33*9e94795aSAndroid Build Coastguard Worker	}
34*9e94795aSAndroid Build Coastguard Worker	for _, tt := range tests {
35*9e94795aSAndroid Build Coastguard Worker		t.Run(tt.name, func(t *testing.T) {
36*9e94795aSAndroid Build Coastguard Worker			sink := &bytes.Buffer{}
37*9e94795aSAndroid Build Coastguard Worker			err := Generate("<file>", tt.in, sink)
38*9e94795aSAndroid Build Coastguard Worker			if (err != nil) != tt.wantErr {
39*9e94795aSAndroid Build Coastguard Worker				t.Errorf("Generate() error = %v, wantErr %v", err, tt.wantErr)
40*9e94795aSAndroid Build Coastguard Worker				return
41*9e94795aSAndroid Build Coastguard Worker			}
42*9e94795aSAndroid Build Coastguard Worker			if gotSink := sink.String(); gotSink != tt.wantSink {
43*9e94795aSAndroid Build Coastguard Worker				t.Errorf("Generate() gotSink = %v, want %v", gotSink, tt.wantSink)
44*9e94795aSAndroid Build Coastguard Worker			}
45*9e94795aSAndroid Build Coastguard Worker		})
46*9e94795aSAndroid Build Coastguard Worker	}
47*9e94795aSAndroid Build Coastguard Worker}
48