mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
93 lines
3.5 KiB
Diff
93 lines
3.5 KiB
Diff
From 91563ced5897faf729a34be7081568efcfedda31 Mon Sep 17 00:00:00 2001
|
|
From: Alberto Donizetti <alb.donizetti@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@golang.org>
|
|
Run-TryBot: Ian Lance Taylor <iant@golang.org>
|
|
TryBot-Result: Gobot Gobot <gobot@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)
|