Closed
Bug 1330149
Opened 8 years ago
Closed 7 years ago
Regressions on ecma_3\Date\15.9.5.5.js 15.9.5.7.js
Categories
(Core :: JavaScript: Internationalization API, defect, P3)
Tracking
()
RESOLVED
FIXED
mozilla58
People
(Reporter: tcampbell, Assigned: anba)
References
Details
(Whiteboard: [tor 20981])
Attachments
(3 files, 2 obsolete files)
2.82 KB,
patch
|
anba
:
review+
|
Details | Diff | Splinter Review |
2.06 KB,
patch
|
Waldo
:
review+
|
Details | Diff | Splinter Review |
8.99 KB,
patch
|
Waldo
:
review+
|
Details | Diff | Splinter Review |
> cd js/src/build_DBG.OBJ
> ../configure --enable-debug --disable-optimize
> mozmake
> ../tests/jstests.py dist/bin/js.exe "ecma_3\Date"
Fails as follows:
## ecma_3\Date\15.9.5.7.js: rc = 0, run time = 1.039
15.9.5.7 Date.prototype.toLocaleTimeString()
PASSED! typeof (now.toLocaleTimeString()) = string expected: string
PASSED! Date.prototype.toLocaleTimeString.length = 0 expected: 0
FAILED! d = new Date(0); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Wed Dec 31 1969 19:00:00 GMT-0800 (PDT) expected: Wed Dec 31 1969 16:00:00 GMT-0800 (PDT)
FAILED! d = new Date(-28800000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Wed Dec 31 1969 11:00:00 GMT-0800 (PST) expected: Wed Dec 31 1969 08:00:00 GMT-0800 (PST)
FAILED! d = new Date(-2208988800000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Sun Dec 31 1899 19:00:00 GMT-0800 (PST) expected: Sun Dec 31 1899 16:00:00 GMT-0800 (PST)
FAILED! d = new Date(-2208960000000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Mon Jan 01 1900 03:00:00 GMT-0800 (PST) expected: Mon Jan 01 1900 00:00:00 GMT-0800 (PST)
FAILED! d = new Date(946684800000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Fri Dec 31 1999 19:00:00 GMT-0800 (PST) expected: Fri Dec 31 1999 16:00:00 GMT-0800 (PST)
FAILED! d = new Date(946713600000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Sat Jan 01 2000 03:00:00 GMT-0800 (PST) expected: Sat Jan 01 2000 00:00:00 GMT-0800 (PST)
FAILED! d = new Date(951782400000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Mon Feb 28 2000 19:00:00 GMT-0800 (PST) expected: Mon Feb 28 2000 16:00:00 GMT-0800 (PST)
FAILED! d = new Date(951782399000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Mon Feb 28 2000 18:59:59 GMT-0800 (PST) expected: Mon Feb 28 2000 15:59:59 GMT-0800 (PST)
FAILED! d = new Date(951811200000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Tue Feb 29 2000 03:00:00 GMT-0800 (PST) expected: Tue Feb 29 2000 00:00:00 GMT-0800 (PST)
FAILED! d = new Date(1484090367588); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Tue Jan 10 2017 18:19:27 GMT-0800 (PST) expected: Tue Jan 10 2017 15:19:27 GMT-0800 (PST)
FAILED! d = new Date(1484119167588); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Tue Jan 10 2017 02:19:27 GMT-0800 (PST) expected: Tue Jan 10 2017 23:19:27 GMT-0800 (PST)
FAILED! d = new Date(1104537600000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Fri Dec 31 2004 19:00:00 GMT-0800 (PST) expected: Fri Dec 31 2004 16:00:00 GMT-0800 (PST)
FAILED! d = new Date(1104537599000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Fri Dec 31 2004 18:59:59 GMT-0800 (PST) expected: Fri Dec 31 2004 15:59:59 GMT-0800 (PST)
FAILED! d = new Date(1104566400000); d == new Date(d.toDateString() + " " + d.toLocaleTimeString()) = Sat Jan 01 2005 03:00:00 GMT-0800 (PST) expected: Sat Jan 01 2005 00:00:00 GMT-0800 (PST)
REGRESSION - ecma_3\Date\15.9.5.7.js
[5|1|0|0] 66% ===================================> | 2.2s
## ecma_3\Date\15.9.5.5.js: rc = 0, run time = 1.18
15.9.5.5 Date.prototype.toLocaleString()
PASSED! typeof (now.toLocaleString()) = string expected: string
PASSED! Date.prototype.toLocaleString.length = 0 expected: 0
FAILED! Math.abs(Date.parse(now.toLocaleString('en-US')) - now.valueOf()) < 1000 = false expected: true
FAILED! Date.parse(Wed Dec 31 1969 16:00:00 GMT-0800 (PDT)).toLocaleString("en-US")) = 10800000 expected: 0
FAILED! Date.parse(Wed Dec 31 1969 08:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = -18000000 expected: -28800000
FAILED! Date.parse(Sun Dec 31 1899 16:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = -2208978000000 expected: -2208988800000
FAILED! Date.parse(Mon Jan 01 1900 00:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = -2208949200000 expected: -2208960000000
FAILED! Date.parse(Fri Dec 31 1999 16:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = 946695600000 expected: 946684800000
FAILED! Date.parse(Sat Jan 01 2000 00:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = 946724400000 expected: 946713600000
FAILED! Date.parse(Mon Feb 28 2000 16:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = 951793200000 expected: 951782400000
FAILED! Date.parse(Mon Feb 28 2000 15:59:59 GMT-0800 (PST)).toLocaleString("en-US")) = 951793199000 expected: 951782399000
FAILED! Date.parse(Tue Feb 29 2000 00:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = 951822000000 expected: 951811200000
FAILED! Date.parse(Fri Dec 31 2004 16:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = 1104548400000 expected: 1104537600000
FAILED! Date.parse(Fri Dec 31 2004 15:59:59 GMT-0800 (PST)).toLocaleString("en-US")) = 1104548399000 expected: 1104537599000
FAILED! Date.parse(Sat Jan 01 2005 00:00:00 GMT-0800 (PST)).toLocaleString("en-US")) = 1104577200000 expected: 1104566400000
REGRESSION - ecma_3\Date\15.9.5.5.js
Reporter | ||
Comment 1•8 years ago
|
||
As :anba pointed out on #jsapi, this fails in the simple case of $ TZ=PST8PDT build_DBG.OBJ/dist/bin/js.exe js> print(`tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}, offset=${new Date().getTimezoneOffset()}`) tz=America/Toronto, offset=480 The TZ variable not working correctly
Assignee | ||
Comment 2•8 years ago
|
||
Do you think this approach makes sense?
Attachment #8826359 -
Flags: feedback?(jwalden+bmo)
Assignee | ||
Comment 3•8 years ago
|
||
Cc'ed Arthur Edelstein because https://trac.torproject.org/projects/tor/ticket/20981 seems to be related to this bug report.
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → andrebargull
Comment 4•8 years ago
|
||
Comment on attachment 8826359 [details] [diff] [review] bug1330149.patch Review of attachment 8826359 [details] [diff] [review]: ----------------------------------------------------------------- This doesn't seem inconceivable to me. It would be nice if this included definitive comments explaining just why it is those handful of time zone strings are the *only* ones that require special treatment, tho. (And it would be nice if upstream handled it somehow, instead.) ::: js/src/vm/DateTime.cpp @@ +9,5 @@ > +#if defined(XP_WIN) > +#include "mozilla/UniquePtr.h" > + > +#include <stdlib.h> > +#endif Add /* defined(XP_WIN) */. @@ +387,5 @@ > if (guard.get() == IcuTimeZoneStatus::NeedsUpdate) { > + bool recreate = true; > +#if defined(XP_WIN) > + const char* tz = getenv("TZ"); > + if (IsOlsonCompatibleWindowsPosixId(tz)) { Mild preference for |tz && IOCWPI(tz)| with no null-check in IOCWPI.
Attachment #8826359 -
Flags: feedback?(jwalden+bmo) → feedback+
Assignee | ||
Updated•8 years ago
|
See Also: → 1333916,
http://bugs.icu-project.org/trac/ticket/13130
Assignee | ||
Comment 5•8 years ago
|
||
(In reply to Jeff Walden [:Waldo] (not taking new requests -- poke me on IRC if it's important) from comment #4) > This doesn't seem inconceivable to me. It would be nice if this included > definitive comments explaining just why it is those handful of time zone > strings are the *only* ones that require special treatment, tho. (And it > would be nice if upstream handled it somehow, instead.) It doesn't seem likely that ICU is going to use TZ on Windows, or at least this is the impression I get from the current comment at http://bugs.icu-project.org/trac/ticket/13130 (spun off from bug 1333916).
Reporter | ||
Comment 6•7 years ago
|
||
This is coming up again as we look to migrate spidermonkey jobs to taskcluster machines running in UTC instead of PDT. Perhaps we should disable these tests on Windows for now.
Reporter | ||
Comment 7•7 years ago
|
||
- ecma_3\Date\15.9.6.5.js is also failing now - js1_5/extensions/toLocaleFormat-02.js is an UNEXPECTED-PASS on Windows in UTC
Reporter | ||
Comment 8•7 years ago
|
||
Disable the tests on Windows for now to unblock taskcluster migration.
Reporter | ||
Comment 9•7 years ago
|
||
Comment on attachment 8897533 [details] [diff] [review] 0001-Bug-1330149-Disable-tests-that-are-sensitive-to-host.patch These are known, but low priority issues. What do you think about disabling the tests on Windows for now?
Attachment #8897533 -
Flags: review?(andrebargull)
Assignee | ||
Comment 10•7 years ago
|
||
Comment on attachment 8897533 [details] [diff] [review] 0001-Bug-1330149-Disable-tests-that-are-sensitive-to-host.patch Review of attachment 8897533 [details] [diff] [review]: ----------------------------------------------------------------- I think we still want to look into applying the other patch, because it fixes our inconsistent handling of the TZ environment variable on Windows (cf. comment #1), but to unblock TC migration it should be okay to skip these tests for now. js1_5/extensions/toLocaleFormat-02.js - Date.prototype.toLocaleFormat will be removed in the near future (bug 818634), so it shouldn't really matter to skip this file on Windows. ecma_3/Date/15.9.5.5.js ecma_3/Date/15.9.5.6.js ecma_3/Date/15.9.5.7.js - Nowadays these tests are effectively testing the date formatting functions from ICU. Assuming that ICU formats dates the same way across all platforms, it should be okay to skip these tests on Windows, because we still get coverage from the other non-Windows platforms. Can you set the leave-open flag, so this bug doesn't get closed when your patch gets merged? Thanks!
Attachment #8897533 -
Flags: review?(andrebargull) → review+
Reporter | ||
Updated•7 years ago
|
Keywords: leave-open
Comment 11•7 years ago
|
||
Pushed by tcampbell@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/e82c11723fcf Disable tests sensitive to host TZ on Windows. r=anba
Comment 12•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e82c11723fcf
Reporter | ||
Comment 13•7 years ago
|
||
We had to disable tests as a temp work-around to unblock taskcluster migration work. This should be revisited with a real fix.
Priority: -- → P3
Assignee | ||
Comment 14•7 years ago
|
||
Expanded the comments per the review feedback.
Attachment #8826359 -
Attachment is obsolete: true
Attachment #8924120 -
Flags: review?(jwalden+bmo)
Assignee | ||
Comment 15•7 years ago
|
||
Only re-enables the tests disabled in comment #12.
Attachment #8924121 -
Flags: review?(jwalden+bmo)
Assignee | ||
Comment 16•7 years ago
|
||
Comment on attachment 8924120 [details] [diff] [review] bug1330149-part1-TZ-on-windows.patch I wonder why "TZ=UTC" works [1] even though it's not listed as supported in [2]. Well whatever, I guess I just update part 1 to allow "UTC". Clearing review for now. [1] https://searchfox.org/mozilla-central/rev/aa1343961fca52e8c7dab16788530da31aab7c8d/toolkit/components/resistfingerprinting/nsRFPService.cpp#275 [2] https://msdn.microsoft.com/en-us//library/90s5c885.aspx#Anchor_1
Attachment #8924120 -
Flags: review?(jwalden+bmo)
Assignee | ||
Comment 17•7 years ago
|
||
Updated to also allow "UTC", "UCT", and "GMT". --- George [1] didn't add support for "GMT0", "GMT+0", and "GMT-0" to ICU, so the test case just ignores these ids... :-/ [1] https://searchfox.org/mozilla-central/rev/aa1343961fca52e8c7dab16788530da31aab7c8d/intl/icu/source/common/putil.cpp#728
Attachment #8924120 -
Attachment is obsolete: true
Attachment #8924230 -
Flags: review?(jwalden+bmo)
Updated•7 years ago
|
Attachment #8924121 -
Flags: review?(jwalden+bmo) → review+
Updated•7 years ago
|
Attachment #8924230 -
Flags: review?(jwalden+bmo) → review+
Assignee | ||
Comment 18•7 years ago
|
||
Check-in needed for - bug1330149-part1-TZ-on-windows.patch - bug1330149-part2-reenable-tests.patch Try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=f833d5c6182a3a05402fc7e5926759b2276cf0a1
Keywords: checkin-needed
Comment 19•7 years ago
|
||
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/26a088e04dc6 Part 1: Set time zone from TZ environment variable as default ICU time zone if it's a valid time zone name. r=Waldo https://hg.mozilla.org/integration/mozilla-inbound/rev/2e51201d771e Part 2: Re-enable time zone dependent tests on Windows. r=Waldo
Keywords: checkin-needed
Comment 20•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/26a088e04dc6 https://hg.mozilla.org/mozilla-central/rev/2e51201d771e
Assignee | ||
Updated•7 years ago
|
Keywords: leave-open
Assignee | ||
Updated•7 years ago
|
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox58:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Updated•7 years ago
|
Whiteboard: [tor 20981]
You need to log in
before you can comment on or make changes to this bug.
Description
•