Travis Vitek (JIRA) wrote:
[ https://issues.apache.org/jira/browse/STDCXX-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613504#action_12613504 ]
Travis Vitek commented on STDCXX-900:
-------------------------------------

Well, most of these failures are destined to fail until the test is rewritten.

Are you sure you meant that the test needs to be rewritten?
(I'm trying to reconcile that with your subsequent comment
about binary compatibility).

Martin

It is impossible to reliably parse any useful date-time information from a 
string that contains only the formatted week number. The test tries to to do 
just this for {{%U}} and {{%W}}. Even if we have a partially specified date (I 
believe we need at least the year and day of week), we still need somewhere to 
store the additional data so that we can store the value we parse, and then 
after the parsing is done so that we can use it to calculate something useful. 
At the very least I think we'll be breaking binary compatibility.

So, for the time being, I think the right thing to do is to fix the portion of 
the test that attempts to to verify {{%U}} and {{%W}} so that it expects 
failure. If we wish to fully support this extension, then we should add a new 
test that verifies {{%U}} and {{%W}} with the necessary format specifiers and 
then fix the code for 4.3 or later.

22.locale.time.get test fails 15 assertions
-------------------------------------------

                Key: STDCXX-900
                URL: https://issues.apache.org/jira/browse/STDCXX-900
            Project: C++ Standard Library
         Issue Type: Bug
         Components: Tests
   Affects Versions: 4.2.0, 4.2.1
        Environment: MSVC
           Reporter: Farid Zaripov
           Assignee: Travis Vitek
           Priority: Minor
            Fix For: 4.2.2

  Original Estimate: 6h
 Remaining Estimate: 6h

The 22.locale.time.get test fails with the following assertions:
{noformat}
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<char>::get ("9", ..., "U") ate 0, expected 1, 
rdstate() == eofbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 758
# ASSERTION (S7) (5 lines):
# TEXT: line 183. time_get<char>::get ("9", ..., "U") got { tm_mday=0 [1,31] }, 
expected { tm_mday=0 [1,31], tm_year=320, tm_wday=2 Tue, tm_yday=60 }, flags = fmtflags(0), locale (C)
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 758
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<char>::get ("0", ..., "W") ate 0, expected 1, 
rdstate() == eofbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 778
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<char>::get ("2nd weekday, 21st week, 2nd year", ..., 
"%Ex") ate 17, expected 32, rdstate() == goodbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1442
# ASSERTION (S7) (5 lines):
# TEXT: line 183. time_get<char>::get ("2nd weekday, 21st week, 2nd year", ..., 
"%Ex") got { tm_mday=0 [1,31] }, expected Tue May 21 00:00:00 3902, flags = fmtflags(0), locale 
(LC_COLLATE=C;LC_CTYPE=C;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=test-locale;LC_COLLATE=C)
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1442
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<char>::get ("1st", ..., "%OW") ate 3, expected 3, 
rdstate() == goodbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1582
# ASSERTION (S7) (5 lines):
# TEXT: line 183. time_get<char>::get ("1st", ..., "%OW") got { tm_mday=0 
[1,31] }, expected { tm_mday=0 [1,31], tm_wday=1 Mon }, flags = fmtflags(0), locale 
(LC_COLLATE=C;LC_CTYPE=C;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=test-locale;LC_COLLATE=C)
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1582
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<wchar_t>::get (L"9", ..., "U") ate 0, expected 1, 
rdstate() == eofbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 758
# ASSERTION (S7) (5 lines):
# TEXT: line 183. time_get<wchar_t>::get (L"9", ..., "U") got { tm_mday=0 
[1,31] }, expected { tm_mday=0 [1,31], tm_year=320, tm_wday=2 Tue, tm_yday=60 }, flags = fmtflags(0), 
locale (C)
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 758
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<wchar_t>::get (L"0", ..., "W") ate 0, expected 1, 
rdstate() == eofbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 778
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<wchar_t>::get (L"2nd weekday, 21st week, 2nd year", ..., 
"%Ex") ate 17, expected 32, rdstate() == goodbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1442
# ASSERTION (S7) (5 lines):
# TEXT: line 183. time_get<wchar_t>::get (L"2nd weekday, 21st week, 2nd year", ..., 
"%Ex") got { tm_mday=0 [1,31] }, expected Tue May 21 00:00:00 3902, flags = fmtflags(0), locale 
(LC_COLLATE=C;LC_CTYPE=C;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=test-locale;LC_COLLATE=C)
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1442
# ASSERTION (S7) (5 lines):
# TEXT: line 174. time_get<wchar_t>::get (L"1st", ..., "%OW") ate 3, expected 
3, rdstate() == goodbit, got failbit
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1582
# ASSERTION (S7) (5 lines):
# TEXT: line 183. time_get<wchar_t>::get (L"1st", ..., "%OW") got { tm_mday=0 
[1,31] }, expected { tm_mday=0 [1,31], tm_wday=1 Mon }, flags = fmtflags(0), locale 
(LC_COLLATE=C;LC_CTYPE=C;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=test-locale;LC_COLLATE=C)
# CLAUSE: lib.locale.time.get
# FILE: 22.locale.time.get.cpp
# LINE: 1582
# ASSERTION (S7) (4 lines):
# TEXT: time_get not exercised in named locales
# CLAUSE: lib.locale.time.get
# LINE: 1664
{noformat}


Reply via email to