78
func TestCompareAPI(t *testing.T) {
81
features, required, optional, exception []string
86
name: "feature added",
87
features: []string{"A", "B", "C", "D", "E", "F"},
88
required: []string{"B", "D"},
90
out: "+A\n+C\n+E\n+F\n",
93
name: "feature removed",
94
features: []string{"C", "A"},
95
required: []string{"A", "B", "C"},
100
name: "feature added then removed",
101
features: []string{"A", "C"},
102
optional: []string{"B"},
103
required: []string{"A", "C"},
108
name: "exception removal",
109
required: []string{"A", "B", "C"},
110
features: []string{"A", "C"},
111
exception: []string{"B"},
116
// http://golang.org/issue/4303
117
name: "contexts reconverging",
120
"pkg syscall (darwin-386), type RawSockaddrInet6 struct",
121
"pkg syscall (darwin-amd64), type RawSockaddrInet6 struct",
125
"pkg syscall, type RawSockaddrInet6 struct",
128
out: "+pkg syscall, type RawSockaddrInet6 struct\n",
131
for _, tt := range tests {
132
buf := new(bytes.Buffer)
133
gotok := compareAPI(buf, tt.features, tt.required, tt.optional, tt.exception)
135
t.Errorf("%s: ok = %v; want %v", tt.name, gotok, tt.ok)
137
if got := buf.String(); got != tt.out {
138
t.Errorf("%s: output differs\nGOT:\n%s\nWANT:\n%s", tt.name, got, tt.out)