From 47ab3d4a42e9ab51c465c4322d2ec233f6324e6b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 15:16:40 +0200 Subject: Adding upstream version 1.18.10. Signed-off-by: Daniel Baumann --- src/time/zoneinfo_windows_test.go | 71 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/time/zoneinfo_windows_test.go (limited to 'src/time/zoneinfo_windows_test.go') diff --git a/src/time/zoneinfo_windows_test.go b/src/time/zoneinfo_windows_test.go new file mode 100644 index 0000000..f23d9dc --- /dev/null +++ b/src/time/zoneinfo_windows_test.go @@ -0,0 +1,71 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package time_test + +import ( + "internal/syscall/windows/registry" + "testing" + . "time" +) + +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()) + + t2, err := Parse(RFC1123, t1.Format(RFC1123)) + if err != nil { + t.Fatalf("Parse failed: %v", err) + } + if t1 != t2 { + t.Fatalf("t1 (%v) is not equal to t2 (%v)", t1, t2) + } +} + +func TestUSPacificZoneAbbr(t *testing.T) { + ForceUSPacificFromTZIForTesting() // reset the Once to trigger the race + defer ForceUSPacificForTesting() + testZoneAbbr(t) +} + +func TestAusZoneAbbr(t *testing.T) { + ForceAusFromTZIForTesting() + defer ForceUSPacificForTesting() + testZoneAbbr(t) +} + +func TestToEnglishName(t *testing.T) { + const want = "Central Europe Standard Time" + k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\`+want, registry.READ) + if err != nil { + t.Fatalf("cannot open CEST time zone information from registry: %s", err) + } + defer k.Close() + + var std, dlt string + if err = registry.LoadRegLoadMUIString(); err == nil { + // Try MUI_Std and MUI_Dlt first, fallback to Std and Dlt if *any* error occurs + std, err = k.GetMUIStringValue("MUI_Std") + if err == nil { + dlt, err = k.GetMUIStringValue("MUI_Dlt") + } + } + if err != nil { // Fallback to Std and Dlt + if std, _, err = k.GetStringValue("Std"); err != nil { + t.Fatalf("cannot read CEST Std registry key: %s", err) + } + if dlt, _, err = k.GetStringValue("Dlt"); err != nil { + t.Fatalf("cannot read CEST Dlt registry key: %s", err) + } + } + + name, err := ToEnglishName(std, dlt) + if err != nil { + t.Fatalf("toEnglishName failed: %s", err) + } + if name != want { + t.Fatalf("english name: %q, want: %q", name, want) + } +} -- cgit v1.2.3