From 0ce41118ed2055ac7678085bb521de287ef355fd Mon Sep 17 00:00:00 2001 From: Camille Janicki Date: Wed, 3 Oct 2018 01:08:31 -0700 Subject: [PATCH] Add msg parameter to Equals function in testutil (#398) * Add msg parameter to Equals function in testutil Co-authored-by: Chris Marchbanks Signed-off-by: Camille Janicki --- testutil/testutil.go | 15 +++++++++++++-- wal/wal_test.go | 5 +++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/testutil/testutil.go b/testutil/testutil.go index cde0e4f9..06b9747c 100644 --- a/testutil/testutil.go +++ b/testutil/testutil.go @@ -58,10 +58,21 @@ func NotOk(tb testing.TB, err error) { } // Equals fails the test if exp is not equal to act. -func Equals(tb testing.TB, exp, act interface{}) { +func Equals(tb testing.TB, exp, act interface{}, msgAndArgs ...interface{}) { if !reflect.DeepEqual(exp, act) { _, file, line, _ := runtime.Caller(1) - fmt.Printf("\033[31m%s:%d:\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, exp, act) + fmt.Printf("\033[31m%s:%d:%s\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, formatMessage(msgAndArgs), exp, act) tb.FailNow() } } + +func formatMessage(msgAndArgs []interface{}) string { + if len(msgAndArgs) == 0 { + return "" + } + + if msg, ok := msgAndArgs[0].(string); ok { + return fmt.Sprintf("\n\nmsg: "+msg, msgAndArgs[1:]...) + } + return "" +} diff --git a/wal/wal_test.go b/wal/wal_test.go index 72f46253..6152a90f 100644 --- a/wal/wal_test.go +++ b/wal/wal_test.go @@ -144,7 +144,7 @@ func TestReader(t *testing.T) { if j >= len(c.exp) { t.Fatal("received more records than inserted") } - testutil.Equals(t, c.exp[j], rec) + testutil.Equals(t, c.exp[j], rec, "Bytes within record did not match expected Bytes") } if !c.fail && r.Err() != nil { t.Fatalf("unexpected error: %s", r.Err()) @@ -256,6 +256,7 @@ func TestWAL_Repair(t *testing.T) { // We create 3 segments with 3 records each and then corrupt the 2nd record // of the 2nd segment. // As a result we want a repaired WAL with the first 4 records intact. + intactRecords := 4 w, err := NewSize(nil, nil, dir, 3*pageSize) testutil.Ok(t, err) @@ -306,7 +307,7 @@ func TestWAL_Repair(t *testing.T) { result = append(result, append(b, r.Record()...)) } testutil.Ok(t, r.Err()) - testutil.Equals(t, 4, len(result)) + testutil.Equals(t, intactRecords, len(result), "Wrong number of intact records") for i, r := range result { if !bytes.Equal(records[i], r) {