From e7b5f2de26497c6175aba99ab655f7af7e56c5e3 Mon Sep 17 00:00:00 2001 From: caoming Date: Wed, 2 Jan 2019 17:08:15 +0800 Subject: [PATCH] embed: add test cases in TestAutoCompactionModeParse. --- embed/config_test.go | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/embed/config_test.go b/embed/config_test.go index 3eb411b3a..091375892 100644 --- a/embed/config_test.go +++ b/embed/config_test.go @@ -20,6 +20,7 @@ import ( "net/url" "os" "testing" + "time" "go.etcd.io/etcd/pkg/transport" @@ -167,11 +168,35 @@ func TestAutoCompactionModeInvalid(t *testing.T) { } func TestAutoCompactionModeParse(t *testing.T) { - dur, err := parseCompactionRetention("revision", "1") - if err != nil { - t.Error(err) + tests := []struct { + mode string + retention string + werr bool + wdur time.Duration + }{ + // revision + {"revision", "1", false, 1}, + {"revision", "1h", false, time.Hour}, + {"revision", "a", true, 0}, + // periodic + {"periodic", "1", false, time.Hour}, + {"periodic", "a", true, 0}, + // err mode + {"errmode", "1", false, 0}, + {"errmode", "1h", false, time.Hour}, } - if dur != 1 { - t.Fatalf("AutoCompactionRetention expected 1, got %d", dur) + + hasErr := func(err error) bool { + return err != nil + } + + for i, tt := range tests { + dur, err := parseCompactionRetention(tt.mode, tt.retention) + if hasErr(err) != tt.werr { + t.Errorf("#%d: err = %v, want %v", i, err, tt.werr) + } + if dur != tt.wdur { + t.Errorf("#%d: duration = %s, want %s", i, dur, tt.wdur) + } } }