177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include "locale_test.h" 277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || !defined (_STLP_USE_NO_IOSTREAMS) 477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <locale> 577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <sstream> 677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <memory> 777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stdexcept> 877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerusing namespace std; 1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerstatic const char* tested_locales[] = { 1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// name, 1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || defined (_STLP_USE_EXCEPTIONS) 1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner "fr_FR", 1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner "ru_RU.koi8r", 1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner "en_GB", 1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner "en_US", 2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner "", 2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner "C" 2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid LocaleTest::_time_put_get( const locale& loc ) 2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef time_put<char, ostreambuf_iterator<char, char_traits<char> > > time_put_facet; 2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( has_facet<time_put_facet>(loc) ); 3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const time_put_facet& tmp = use_facet<time_put_facet>(loc); 3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct tm xmas = { 0, 0, 12, 25, 11, 93 }; 3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostringstream ostr; 3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostr.imbue(loc); 3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner string format = "%B %d %Y"; 3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner time_put_facet::iter_type ret = tmp.put(ostr, ostr, ' ', &xmas, format.data(), format.data() + format.size()); 3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( !ret.failed() ); 3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* 4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * In other words, user conformation is required for reliable parsing 4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * of user-entered dates and times, but machine-generated formats can be 4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * parsed reliably. This allows parsers to be aggressive about interpreting 4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * user variations on standard format. 4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * ISO/IEC 14882, 22.2.5.1 4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef time_get<char, istreambuf_iterator<char, char_traits<char> > > time_get_facet; 4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( has_facet<time_get_facet>(loc) ); 5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const time_get_facet& tmg = use_facet<time_get_facet>(loc); 5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner basic_ios<char> io(0); 5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner io.imbue(loc); 5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istringstream istr( ostr.str() ); 5577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istreambuf_iterator<char, char_traits<char> > i( istr ); 5677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istreambuf_iterator<char, char_traits<char> > e; 5777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ios_base::iostate err = ios_base::goodbit; 5877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct tm other = { 15, 20, 9, 14, 7, 105 }; 5977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner i = tmg.get_monthname( i, e, io, err, &other ); 6177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::goodbit ); 6277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( other.tm_mon == xmas.tm_mon ); 6377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ++i; ++i; ++i; ++i; // skip day of month and spaces around it 6577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner i = tmg.get_year( i, e, io, err, &other ); 6677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::eofbit ); 6877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( other.tm_year == xmas.tm_year ); 6977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostringstream ostrX; 7177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostrX.imbue(loc); 7277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner format = "%x %X"; 7377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ret = tmp.put(ostrX, ostrX, ' ', &xmas, format.data(), format.data() + format.size()); 7577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( !ret.failed() ); 7677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istringstream istrX( ostrX.str() ); 7877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istreambuf_iterator<char, char_traits<char> > j( istrX ); 7977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner err = ios_base::goodbit; 8177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct tm yet_more = { 15, 20, 9, 14, 7, 105 }; 8377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner j = tmg.get_date( j, e, io, err, &yet_more ); 8577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::goodbit ); 8777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_sec != xmas.tm_sec ); 8977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_min != xmas.tm_min ); 9077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_hour != xmas.tm_hour ); 9177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mday == xmas.tm_mday ); 9277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mon == xmas.tm_mon ); 9377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_year == xmas.tm_year ); 9477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ++j; // skip space 9677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner j = tmg.get_time( j, e, io, err, &yet_more ); 9877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::eofbit || err == ios_base::goodbit ); 10077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 10177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_sec == xmas.tm_sec ); 10277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_min == xmas.tm_min ); 10377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_hour == xmas.tm_hour ); 10477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mday == xmas.tm_mday ); 10577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mon == xmas.tm_mon ); 10677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_year == xmas.tm_year ); 10777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 10877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || !defined (_STLP_NO_WCHAR_T) 10977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 11077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef time_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > > time_put_facet; 11177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( has_facet<time_put_facet>(loc) ); 11277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const time_put_facet& tmp = use_facet<time_put_facet>(loc); 11377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 11477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct tm xmas = { 0, 0, 12, 25, 11, 93 }; 11577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wostringstream ostr; 11677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostr.imbue(loc); 11777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wstring format = L"%B %d %Y"; 11877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 11977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner time_put_facet::iter_type ret = tmp.put(ostr, ostr, ' ', &xmas, format.data(), format.data() + format.size()); 12077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( !ret.failed() ); 12177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 12277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* 12377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * In other words, user conformation is required for reliable parsing 12477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * of user-entered dates and times, but machine-generated formats can be 12577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * parsed reliably. This allows parsers to be aggressive about interpreting 12677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * user variations on standard format. 12777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 12877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * ISO/IEC 14882, 22.2.5.1 12977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 13077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef time_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > > time_get_facet; 13177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( has_facet<time_get_facet>(loc) ); 13277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const time_get_facet& tmg = use_facet<time_get_facet>(loc); 13377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner // Intentional instantiation with char to show a bug in a previous STLport version. 13477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner basic_ios<char> io(0); 13577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner io.imbue(loc); 13677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 13777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wistringstream istr( ostr.str() ); 13877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istreambuf_iterator<wchar_t, char_traits<wchar_t> > i( istr ); 13977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istreambuf_iterator<wchar_t, char_traits<wchar_t> > e; 14077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ios_base::iostate err = ios_base::goodbit; 14177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct tm other = { 15, 20, 9, 14, 7, 105 }; 14277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner i = tmg.get_monthname( i, e, io, err, &other ); 14477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::goodbit ); 14577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( other.tm_mon == xmas.tm_mon ); 14677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ++i; ++i; ++i; ++i; // skip day of month and spaces around it 14877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner i = tmg.get_year( i, e, io, err, &other ); 14977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::eofbit ); 15177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( other.tm_year == xmas.tm_year ); 15277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wostringstream ostrX; 15477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostrX.imbue(loc); 15577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner format = L"%x %X"; 15677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ret = tmp.put(ostrX, ostrX, ' ', &xmas, format.data(), format.data() + format.size()); 15877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( !ret.failed() ); 15977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wistringstream istrX( ostrX.str() ); 16177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istreambuf_iterator<wchar_t, char_traits<wchar_t> > j( istrX ); 16277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner err = ios_base::goodbit; 16477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct tm yet_more = { 15, 20, 9, 14, 7, 105 }; 16677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner j = tmg.get_date( j, e, io, err, &yet_more ); 16877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::goodbit ); 17077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 17177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_sec != xmas.tm_sec ); 17277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_min != xmas.tm_min ); 17377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_hour != xmas.tm_hour ); 17477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mday == xmas.tm_mday ); 17577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mon == xmas.tm_mon ); 17677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_year == xmas.tm_year ); 17777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 17877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ++j; // skip space 17977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 18077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner j = tmg.get_time( j, e, io, err, &yet_more ); 18177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 18277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( err == ios_base::eofbit || err == ios_base::goodbit ); 18377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 18477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_sec == xmas.tm_sec ); 18577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_min == xmas.tm_min ); 18677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_hour == xmas.tm_hour ); 18777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mday == xmas.tm_mday ); 18877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_mon == xmas.tm_mon ); 18977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( yet_more.tm_year == xmas.tm_year ); 19077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 19177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 19277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 19377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 19477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertypedef void (LocaleTest::*_Test) (const locale&); 19577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerstatic void test_supported_locale(LocaleTest& inst, _Test __test) { 19677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner size_t n = sizeof(tested_locales) / sizeof(tested_locales[0]); 19777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner for (size_t i = 0; i < n; ++i) { 19877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc; 19977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || defined (_STLP_USE_EXCEPTIONS) 20077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try 20177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 20277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 20377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale tmp(tested_locales[i]); 20477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner loc = tmp; 20577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 20677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || defined (_STLP_USE_EXCEPTIONS) 20777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 20877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner //This locale is not supported. 20977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner continue; 21077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 21177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 21277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_MESSAGE( loc.name().c_str() ); 21377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner (inst.*__test)(loc); 21477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 21577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 21677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale tmp(locale::classic(), tested_locales[i], locale::time); 21777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner loc = tmp; 21877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 21977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner (inst.*__test)(loc); 22077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 22277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef time_put_byname<char, ostreambuf_iterator<char, char_traits<char> > > time_put_facet; 22377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale tmp0(locale::classic(), new time_put_facet(tested_locales[i])); 22477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef time_get_byname<char, istreambuf_iterator<char, char_traits<char> > > time_get_facet; 22577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale tmp1(tmp0, new time_get_facet(tested_locales[i])); 22677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner loc = tmp1; 22777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 22877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner (inst.*__test)(loc); 22977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 23077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 23177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 23277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid LocaleTest::time_put_get() 23377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ test_supported_locale(*this, &LocaleTest::_time_put_get); } 23477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 23577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid LocaleTest::time_by_name() 23677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 23777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || defined (_STLP_USE_EXCEPTIONS) 23877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* 23977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Check of the 22.1.1.2.7 standard point. Construction of a locale 24077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * instance from a null pointer or an unknown name should result in 24177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * a runtime_error exception. 24277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 24377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (STLPORT) || !defined (_MSC_VER) || (_MSC_VER > 1400) 24477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 24577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_put_byname<char, ostreambuf_iterator<char, char_traits<char> > >(static_cast<char const*>(0))); 24677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 24777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 24877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 24977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 25077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 25177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 25277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 25377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 25477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 25577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 25677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_put_byname<char, ostreambuf_iterator<char, char_traits<char> > >("yasli_language")); 25777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 25877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 25977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 26077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 26177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 26277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 26377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 26477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 26577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 26677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner string veryLongFacetName("LC_TIME="); 26777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner veryLongFacetName.append(512, '?'); 26877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_put_byname<char, ostreambuf_iterator<char, char_traits<char> > >(veryLongFacetName.c_str())); 26977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 27077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 27177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const& /* e */) { 27277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner //CPPUNIT_MESSAGE( e.what() ); 27377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 27477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 27577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 27677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 27777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 27877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 27977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >(static_cast<char const*>(0))); 28077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 28177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 28277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 28377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 28477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 28577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 28677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 28777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 28877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 28977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >("yasli_language")); 29077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 29177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 29277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 29377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 29477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 29577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 29677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 29777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 29877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 29977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner string veryLongFacetName("LC_TIME="); 30077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner veryLongFacetName.append(512, '?'); 30177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >(veryLongFacetName.c_str())); 30277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 30377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 30477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const& /* e */) { 30577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner //CPPUNIT_MESSAGE( e.what() ); 30677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 30777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 30877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 30977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 31077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 31177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 31277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), "C", locale::time); 31377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 31477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const& /* e */) { 31577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* CPPUNIT_MESSAGE( e.what() ); */ 31677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 31777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 31877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 31977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 32077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 32177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 32277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 32377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner // On platform without real localization support we should rely on the "C" facet. 32477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), "", locale::time); 32577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 32677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const& /* e */) { 32777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* CPPUNIT_MESSAGE( e.what() ); */ 32877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 32977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 33077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 33177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 33277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 33377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 33477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 33577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >("C")); 33677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 33777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const& /* e */) { 33877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* CPPUNIT_MESSAGE( e.what() ); */ 33977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 34077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 34177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 34277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 34377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 34477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 34577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 34677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner // On platform without real localization support we should rely on the "C" locale facet. 34777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >("")); 34877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 34977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const& /* e */) { 35077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /* CPPUNIT_MESSAGE( e.what() ); */ 35177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 35277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 35377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 35477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 35577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 35677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 35777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (STLPORT) || !defined (_STLP_NO_WCHAR_T) 35877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 35977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_put_byname<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >(static_cast<char const*>(0))); 36077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 36177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 36277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 36377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 36477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 36577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 36677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 36777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 36877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 36977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_put_byname<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >("yasli_language")); 37077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 37177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 37277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 37377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 37477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 37577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 37677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 37777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 37877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 37977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >(static_cast<char const*>(0))); 38077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 38177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 38277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 38377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 38477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 38577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 38677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 38777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 38877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner try { 38977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner locale loc(locale::classic(), new time_get_byname<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >("yasli_language")); 39077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 39177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 39277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (runtime_error const&) { 39377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 39477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner catch (...) { 39577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_FAIL; 39677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 39777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 39877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 39977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 40077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 40177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 40277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 403