Home | History | Annotate | Download | only in asctime
      1 /*
      2  * Copyright (c) 2002-3, Intel Corporation. All rights reserved.
      3  * Created by:  salwan.searty REMOVE-THIS AT intel DOT com
      4  * This file is licensed under the GPL license.  For the full content
      5  * of this license, see the COPYING file at the top level of this
      6  * source tree.
      7 
      8 The asctime() function shall convert the broken-down time in the structure pointed to by timeptr into a string in the form: Sun Sep 16 01:03:52 1973\n\0
      9 
     10  */
     11 
     12 #define WEEKDAY 0
     13 #define MONTH 8
     14 #define MONTHDAY 16
     15 #define HOUR 1
     16 #define MINUTE 3
     17 #define SECOND 52
     18 #define YEAR 73
     19 
     20 #include <string.h>
     21 #include <time.h>
     22 #include <stdio.h>
     23 #include <stdlib.h>
     24 #include <unistd.h>
     25 #include "posixtest.h"
     26 
     27 int main(void)
     28 {
     29 	struct tm time_ptr;
     30 
     31 	char expected[26];
     32 	char *real;
     33 
     34 	char wday_name[7][3] =
     35 	    { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
     36 
     37 	char mon_name[12][3] = {
     38 		"Jan", "Feb", "Mar", "Apr", "May", "Jun",
     39 		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
     40 	};
     41 
     42 	time_ptr.tm_wday = WEEKDAY;
     43 	time_ptr.tm_mon = MONTH;
     44 	time_ptr.tm_mday = MONTHDAY;
     45 	time_ptr.tm_hour = HOUR;
     46 	time_ptr.tm_min = MINUTE;
     47 	time_ptr.tm_sec = SECOND;
     48 	time_ptr.tm_year = YEAR;
     49 
     50 	real = asctime(&time_ptr);
     51 
     52 	sprintf(expected, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
     53 		wday_name[time_ptr.tm_wday],
     54 		mon_name[time_ptr.tm_mon],
     55 		time_ptr.tm_mday, time_ptr.tm_hour,
     56 		time_ptr.tm_min, time_ptr.tm_sec, 1900 + time_ptr.tm_year);
     57 
     58 	printf("real = %s\n", real);
     59 	printf("expected = %s\n", expected);
     60 
     61 	if (strcmp(real, expected) != 0) {
     62 		perror("asctime did not return the correct value\n");
     63 		printf("Got %s\n", real);
     64 		printf("Expected %s\n", expected);
     65 		return PTS_FAIL;
     66 	}
     67 
     68 	printf("Test PASSED\n");
     69 	return PTS_PASS;
     70 }
     71