[arch-commits] Commit in go/trunk (1 file)
Bartłomiej Piotrowski
bpiotrowski at archlinux.org
Wed Mar 15 13:33:15 UTC 2017
Date: Wednesday, March 15, 2017 @ 13:33:14
Author: bpiotrowski
Revision: 290873
Add missing patch
Added:
go/trunk/0001-time-make-the-ParseInLocation-test-more-robust.patch
-----------------------------------------------------------+
0001-time-make-the-ParseInLocation-test-more-robust.patch | 93 ++++++++++++
1 file changed, 93 insertions(+)
Added: 0001-time-make-the-ParseInLocation-test-more-robust.patch
===================================================================
--- 0001-time-make-the-ParseInLocation-test-more-robust.patch (rev 0)
+++ 0001-time-make-the-ParseInLocation-test-more-robust.patch 2017-03-15 13:33:14 UTC (rev 290873)
@@ -0,0 +1,93 @@
+From 91563ced5897faf729a34be7081568efcfedda31 Mon Sep 17 00:00:00 2001
+From: Alberto Donizetti <alb.donizetti at gmail.com>
+Date: Thu, 9 Mar 2017 13:20:54 +0100
+Subject: [PATCH] time: make the ParseInLocation test more robust
+
+The tzdata 2017a update (2017-02-28) changed the abbreviation of the
+Asia/Baghdad time zone (used in TestParseInLocation) from 'AST' to the
+numeric '+03'.
+
+Update the test so that it skips the checks if we're using a recent
+tzdata release.
+
+Fixes #19457
+
+Change-Id: I45d705a5520743a611bdd194dc8f8d618679980c
+Reviewed-on: https://go-review.googlesource.com/37964
+Reviewed-by: Ian Lance Taylor <iant at golang.org>
+Run-TryBot: Ian Lance Taylor <iant at golang.org>
+TryBot-Result: Gobot Gobot <gobot at golang.org>
+---
+ src/time/format_test.go | 41 +++++++++++++++++++++++++++++++----------
+ 1 file changed, 31 insertions(+), 10 deletions(-)
+
+diff --git a/src/time/format_test.go b/src/time/format_test.go
+index 219c2ca..d0013bc 100644
+--- a/src/time/format_test.go
++++ b/src/time/format_test.go
+@@ -245,27 +245,45 @@ func TestParseDayOutOfRange(t *testing.T) {
+ }
+ }
+
++// TestParseInLocation checks that the Parse and ParseInLocation
++// functions do not get confused by the fact that AST (Arabia Standard
++// Time) and AST (Atlantic Standard Time) are different time zones,
++// even though they have the same abbreviation.
++//
++// ICANN has been slowly phasing out invented abbreviation in favor of
++// numeric time zones (for example, the Asia/Baghdad time zone
++// abbreviation got changed from AST to +03 in the 2017a tzdata
++// release); but we still want to make sure that the time package does
++// not get confused on systems with slightly older tzdata packages.
+ func TestParseInLocation(t *testing.T) {
+- // Check that Parse (and ParseInLocation) understand that
+- // Feb 01 AST (Arabia Standard Time) and Feb 01 AST (Atlantic Standard Time)
+- // are in different time zones even though both are called AST
+
+ baghdad, err := LoadLocation("Asia/Baghdad")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+- t1, err := ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 AST", baghdad)
++ var t1, t2 Time
++
++ t1, err = ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 AST", baghdad)
+ if err != nil {
+ t.Fatal(err)
+ }
+- t2 := Date(2013, February, 1, 00, 00, 00, 0, baghdad)
+- if t1 != t2 {
+- t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad) = %v, want %v", t1, t2)
+- }
++
+ _, offset := t1.Zone()
+- if offset != 3*60*60 {
+- t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad).Zone = _, %d, want _, %d", offset, 3*60*60)
++
++ // A zero offset means that ParseInLocation did not recognize the
++ // 'AST' abbreviation as matching the current location (Baghdad,
++ // where we'd expect a +03 hrs offset); likely because we're using
++ // a recent tzdata release (2017a or newer).
++ // If it happens, skip the Baghdad test.
++ if offset != 0 {
++ t2 = Date(2013, February, 1, 00, 00, 00, 0, baghdad)
++ if t1 != t2 {
++ t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad) = %v, want %v", t1, t2)
++ }
++ if offset != 3*60*60 {
++ t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad).Zone = _, %d, want _, %d", offset, 3*60*60)
++ }
+ }
+
+ blancSablon, err := LoadLocation("America/Blanc-Sablon")
+@@ -273,6 +291,9 @@ func TestParseInLocation(t *testing.T) {
+ t.Fatal(err)
+ }
+
++ // In this case 'AST' means 'Atlantic Standard Time', and we
++ // expect the abbreviation to correctly match the american
++ // location.
+ t1, err = ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 AST", blancSablon)
+ if err != nil {
+ t.Fatal(err)
More information about the arch-commits
mailing list