]> Cypherpunks repositories - gostls13.git/commitdiff
time: skip ZoneAbbr test in timezones with no abbreviation
authorAlberto Donizetti <alb.donizetti@gmail.com>
Tue, 1 Aug 2017 15:41:51 +0000 (17:41 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 2 Aug 2017 16:22:49 +0000 (16:22 +0000)
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 <alb.donizetti@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/time/zoneinfo_windows_test.go

index 7ac1e8682238ead39744b9d0368e3acf58670986..cf3b428c0956e9d707c92e4a931bb011b6029beb 100644 (file)
@@ -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)