| /* |
| * Copyright (c) 2002-3, Intel Corporation. All rights reserved. |
| * Created by: salwan.searty REMOVE-THIS AT intel DOT com |
| * This file is licensed under the GPL license. For the full content |
| * of this license, see the COPYING file at the top level of this |
| * source tree. |
| |
| 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 |
| |
| */ |
| |
| #define WEEKDAY 0 |
| #define MONTH 8 |
| #define MONTHDAY 16 |
| #define HOUR 1 |
| #define MINUTE 3 |
| #define SECOND 52 |
| #define YEAR 73 |
| |
| #include <string.h> |
| #include <time.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <unistd.h> |
| #include "posixtest.h" |
| |
| int main() |
| { |
| struct tm time_ptr; |
| |
| char expected[26]; |
| char* real; |
| |
| char wday_name[7][3] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; |
| |
| char mon_name[12][3] = { |
| "Jan", "Feb", "Mar", "Apr", "May", "Jun", |
| "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" |
| }; |
| |
| time_ptr.tm_wday = WEEKDAY; |
| time_ptr.tm_mon = MONTH; |
| time_ptr.tm_mday = MONTHDAY; |
| time_ptr.tm_hour = HOUR; |
| time_ptr.tm_min = MINUTE; |
| time_ptr.tm_sec = SECOND; |
| time_ptr.tm_year = YEAR; |
| |
| real = asctime(&time_ptr); |
| |
| sprintf(expected, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", |
| wday_name[time_ptr.tm_wday], |
| mon_name[time_ptr.tm_mon], |
| time_ptr.tm_mday, time_ptr.tm_hour, |
| time_ptr.tm_min, time_ptr.tm_sec, |
| 1900 + time_ptr.tm_year); |
| |
| printf("real = %s\n", real); |
| printf("expected = %s\n", expected); |
| |
| if (strcmp(real, expected) != 0) { |
| perror("asctime did not return the correct value\n"); |
| printf("Got %s\n", real); |
| printf("Expected %s\n", expected); |
| return PTS_FAIL; |
| } |
| |
| printf("Test PASSED\n"); |
| return PTS_PASS; |
| } |