From 193eda7291c570e84307b3122a4f496a77b0fa4c Mon Sep 17 00:00:00 2001 From: Alberto Donizetti Date: Tue, 1 Aug 2017 17:41:51 +0200 Subject: [PATCH] time: skip ZoneAbbr test in timezones with no abbreviation The testZoneAbbr assumes that Parse(RFC1123, t1.Format(RFC1123)) will always succeed. This is not true because Format will fall back to the numeric zone (ex. -07) for timezones with no abbreviation, but Parse won't accept the numeric zone when the layout specifies 'MST' (an abbreviation). Skip the zone abbreviation test in timezones with no abbreviation. Fixes #21183 Change-Id: If04691cc23ae1075d8a953733024e17f5a7646de Reviewed-on: https://go-review.googlesource.com/52430 Run-TryBot: Alberto Donizetti TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/time/zoneinfo_windows_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/time/zoneinfo_windows_test.go b/src/time/zoneinfo_windows_test.go index 7ac1e86822..cf3b428c09 100644 --- a/src/time/zoneinfo_windows_test.go +++ b/src/time/zoneinfo_windows_test.go @@ -14,6 +14,14 @@ func testZoneAbbr(t *testing.T) { t1 := Now() // discard nsec t1 = Date(t1.Year(), t1.Month(), t1.Day(), t1.Hour(), t1.Minute(), t1.Second(), 0, t1.Location()) + + // Skip the test if we're in a timezone with no abbreviation. + // Format will fallback to the numeric abbreviation, and + // Parse(RFC1123, ..) will fail (see Issue 21183). + if tz := t1.Format("MST"); tz[0] == '-' || tz[0] == '+' { + t.Skip("No zone abbreviation") + } + t2, err := Parse(RFC1123, t1.Format(RFC1123)) if err != nil { t.Fatalf("Parse failed: %v", err) -- 2.48.1