Browse Source

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
commit
31700a05df
  1. 2
      scrape/manager_test.go
  2. 4
      storage/remote/client_test.go
  3. 27
      util/testutil/error.go
  4. 15
      util/testutil/testing.go

2
scrape/manager_test.go

@ -215,7 +215,7 @@ func TestPopulateLabels(t *testing.T) {
in := c.in.Copy()
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.res, res)
testutil.Equals(t, c.resOrig, orig)

4
storage/remote/client_test.go

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

27
util/testutil/error.go

@ -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
}

15
util/testutil/testing.go

@ -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 {
if len(msgAndArgs) == 0 {
return ""

Loading…
Cancel
Save