Improve testutil.ErrorEqual (#6471)

Also improves TestPopulateLabels: testutil.ErrorEqual just returned a
bool without failing the test.

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
pull/6469/head
Julien Pivotto 5 years ago committed by Brian Brazil
parent d782387f81
commit 31700a05df

@ -215,7 +215,7 @@ func TestPopulateLabels(t *testing.T) {
in := c.in.Copy() in := c.in.Copy()
res, orig, err := populateLabels(c.in, c.cfg) res, orig, err := populateLabels(c.in, c.cfg)
testutil.ErrorEqual(err, c.err) testutil.ErrorEqual(t, c.err, err)
testutil.Equals(t, c.in, in) testutil.Equals(t, c.in, in)
testutil.Equals(t, c.res, res) testutil.Equals(t, c.res, res)
testutil.Equals(t, c.resOrig, orig) testutil.Equals(t, c.resOrig, orig)

@ -75,9 +75,7 @@ func TestStoreHTTPErrorHandling(t *testing.T) {
testutil.Ok(t, err) testutil.Ok(t, err)
err = c.Store(context.Background(), []byte{}) err = c.Store(context.Background(), []byte{})
if !testutil.ErrorEqual(err, test.err) { testutil.ErrorEqual(t, err, test.err, "unexpected error in test %d", i)
t.Errorf("%d. Unexpected error; want %v, got %v", i, test.err, err)
}
server.Close() server.Close()
} }

@ -1,27 +0,0 @@
// Copyright 2013 The Prometheus Authors
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package testutil
// ErrorEqual compares Go errors for equality.
func ErrorEqual(left, right error) bool {
if left == right {
return true
}
if left != nil && right != nil {
return left.Error() == right.Error()
}
return false
}

@ -71,6 +71,21 @@ func Equals(tb TB, exp, act interface{}, msgAndArgs ...interface{}) {
} }
} }
// ErrorEqual compares Go errors for equality.
func ErrorEqual(tb TB, left, right error, msgAndArgs ...interface{}) {
tb.Helper()
if left == right {
return
}
if left != nil && right != nil {
Equals(tb, left.Error(), right.Error(), msgAndArgs...)
return
}
tb.Fatalf("\033[31m%s\n\nexp: %#v\n\ngot: %#v\033[39m\n", formatMessage(msgAndArgs), left, right)
}
func formatMessage(msgAndArgs []interface{}) string { func formatMessage(msgAndArgs []interface{}) string {
if len(msgAndArgs) == 0 { if len(msgAndArgs) == 0 {
return "" return ""

Loading…
Cancel
Save