From 9ab683aa4372081b8d19ec71b5062db2345ca5b7 Mon Sep 17 00:00:00 2001 From: lance6716 Date: Tue, 29 Mar 2022 18:16:37 +0800 Subject: [PATCH 1/2] tools: fix GetTimeZoneOffset error when migrating repo Signed-off-by: lance6716 --- util/dbutil/common.go | 5 +---- util/dbutil/common_test.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/util/dbutil/common.go b/util/dbutil/common.go index 108e10f01b5f1..fc73a80b0ce32 100644 --- a/util/dbutil/common.go +++ b/util/dbutil/common.go @@ -319,10 +319,7 @@ func GetTimeZoneOffset(ctx context.Context, db QueryExecutor) (time.Duration, er } hour, minute, second := t.Clock() - // nolint:durationcheck - return (time.Duration(hour)*time.Hour + - time.Duration(minute)*time.Minute + - time.Duration(second)*time.Second) * factor * time.Second, nil + return time.Duration(hour*3600+minute*60+second) * time.Second * factor, nil } // FormatTimeZoneOffset is to format offset of timezone. diff --git a/util/dbutil/common_test.go b/util/dbutil/common_test.go index 543cebc190e38..d7acd6174b17c 100644 --- a/util/dbutil/common_test.go +++ b/util/dbutil/common_test.go @@ -245,3 +245,14 @@ func TestFormatTimeZoneOffset(t *testing.T) { require.Equal(t, offset, k) } } + +func TestGetTimeZoneOffset(t *testing.T) { + db, mock, err := sqlmock.New() + require.NoError(t, err) + + mock.ExpectQuery("SELECT cast\\(TIMEDIFF\\(NOW\\(6\\), UTC_TIMESTAMP\\(6\\)\\) as time\\);"). + WillReturnRows(mock.NewRows([]string{""}).AddRow("01:00:00")) + d, err := GetTimeZoneOffset(context.Background(), db) + require.NoError(t, err) + require.Equal(t, "1h0m0s", d.String()) +} From 6c4fc12be29cad15b4ed30e8bfc9dccea2c94adb Mon Sep 17 00:00:00 2001 From: lance6716 Date: Tue, 29 Mar 2022 18:27:51 +0800 Subject: [PATCH 2/2] fix lint Signed-off-by: lance6716 --- util/dbutil/common.go | 1 + 1 file changed, 1 insertion(+) diff --git a/util/dbutil/common.go b/util/dbutil/common.go index fc73a80b0ce32..4ceb0c08d36da 100644 --- a/util/dbutil/common.go +++ b/util/dbutil/common.go @@ -319,6 +319,7 @@ func GetTimeZoneOffset(ctx context.Context, db QueryExecutor) (time.Duration, er } hour, minute, second := t.Clock() + // nolint:durationcheck return time.Duration(hour*3600+minute*60+second) * time.Second * factor, nil }