mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			PR libstdc++/31413 fix test failure on Debian systems
Debian uses a different D_FMT string for the zh_TW.UTF-8 locale, which caused this test to fail. Try to detect the Debian format and adjust the input being tested. PR libstdc++/31413 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT string for alternative format. From-SVN: r263948
This commit is contained in:
		
							parent
							
								
									fb9cb5369d
								
							
						
					
					
						commit
						9111b08384
					
				|  | @ -1,3 +1,9 @@ | |||
| 2018-08-29  Jonathan Wakely  <jwakely@redhat.com> | ||||
| 
 | ||||
| 	PR libstdc++/31413 | ||||
| 	* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT | ||||
| 	string for alternative format. | ||||
| 
 | ||||
| 2018-08-28  Jonathan Wakely  <jwakely@redhat.com> | ||||
| 
 | ||||
| 	PR libstdc++/87116 | ||||
|  |  | |||
|  | @ -25,6 +25,8 @@ | |||
| #include <sstream> | ||||
| #include <testsuite_hooks.h> | ||||
| 
 | ||||
| static bool debian_date_format(); | ||||
| 
 | ||||
| void test01() | ||||
| { | ||||
|   using namespace std; | ||||
|  | @ -46,7 +48,7 @@ void test01() | |||
| 			   0x5e74, L'1', L'2', 0x6708, L'1', L'7', | ||||
| 			   0x65e5 , 0x0 }; | ||||
| 
 | ||||
|   iss.str(wstr); | ||||
|   iss.str(debian_date_format() ? wstr+2 : wstr); | ||||
|   iterator_type is_it01(iss); | ||||
|   tm time01; | ||||
|   tim_get.get_date(is_it01, end, iss, errorstate, &time01); | ||||
|  | @ -56,6 +58,26 @@ void test01() | |||
|   VERIFY( time01.tm_year == 103 ); | ||||
| } | ||||
| 
 | ||||
| #include <locale.h> | ||||
| #if __has_include(<langinfo.h>) | ||||
| # include <langinfo.h> | ||||
| #endif | ||||
| 
 | ||||
| static bool debian_date_format() | ||||
| { | ||||
| #ifdef D_FMT | ||||
|   if (setlocale(LC_TIME, "zh_TW.UTF-8") != NULL) | ||||
|   { | ||||
|     // See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31413
 | ||||
|     // and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71641#c2
 | ||||
|     if (*nl_langinfo(D_FMT) == '%') | ||||
|       return true; | ||||
|     setlocale(LC_TIME, "C"); | ||||
|   } | ||||
| #endif | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| int main() | ||||
| { | ||||
|   test01(); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Jonathan Wakely
						Jonathan Wakely