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