mirror of git://sourceware.org/git/glibc.git
				
				
				
			
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
| #include <stdlib.h>
 | |
| #include <stdio.h>
 | |
| #include <string.h>
 | |
| #include <time.h>
 | |
| 
 | |
| static int
 | |
| do_test (void)
 | |
| {
 | |
|   struct tm time_str, *tm;
 | |
|   time_t t;
 | |
|   char daybuf[20];
 | |
|   int result;
 | |
| 
 | |
|   time_str.tm_year = 2001 - 1900;
 | |
|   time_str.tm_mon = 7 - 1;
 | |
|   time_str.tm_mday = 4;
 | |
|   time_str.tm_hour = 0;
 | |
|   time_str.tm_min = 0;
 | |
|   time_str.tm_sec = 1;
 | |
|   time_str.tm_isdst = -1;
 | |
| 
 | |
|   if (mktime (&time_str) == -1)
 | |
|     {
 | |
|       (void) puts ("-unknown-");
 | |
|       result = 1;
 | |
|     }
 | |
|   else
 | |
|     {
 | |
|       (void) strftime (daybuf, sizeof (daybuf), "%A", &time_str);
 | |
|       (void) puts (daybuf);
 | |
|       result = strcmp (daybuf, "Wednesday") != 0;
 | |
|     }
 | |
| 
 | |
|   setenv ("TZ", "EST+5", 1);
 | |
| #define EVENING69 1 * 60 * 60 + 2 * 60 + 29
 | |
|   t = EVENING69;
 | |
|   tm = localtime (&t);
 | |
|   if (tm == NULL)
 | |
|     {
 | |
|       (void) puts ("localtime returned NULL");
 | |
|       result = 1;
 | |
|     }
 | |
|   else
 | |
|     {
 | |
|       time_str = *tm;
 | |
|       t = mktime (&time_str);
 | |
|       if (t != EVENING69)
 | |
|         {
 | |
|           printf ("mktime returned %ld, expected %d\n",
 | |
| 		  (long) t, EVENING69);
 | |
| 	  result = 1;
 | |
|         }
 | |
|       else
 | |
|         (void) puts ("Dec 31 1969 EST test passed");
 | |
| 
 | |
|       setenv ("TZ", "CET-1", 1);
 | |
|       t = mktime (&time_str);
 | |
| #define EVENING69_CET (EVENING69 - (5 - -1) * 60 * 60)
 | |
|       if (t != EVENING69_CET)
 | |
|         {
 | |
| 	  printf ("mktime returned %ld, expected %ld\n",
 | |
| 		  (long) t, (long) EVENING69_CET);
 | |
| 	  result = 1;
 | |
|         }
 | |
|       else
 | |
|         (void) puts ("Dec 31 1969 CET test passed");
 | |
|     }
 | |
| 
 | |
|   return result;
 | |
| }
 | |
| 
 | |
| #define TEST_FUNCTION do_test ()
 | |
| #include "../test-skeleton.c"
 |