1 | // Licensed to the .NET Foundation under one or more agreements. |
2 | // The .NET Foundation licenses this file to you under the MIT license. |
3 | // See the LICENSE file in the project root for more information. |
4 | |
5 | /*===================================================================== |
6 | ** |
7 | ** Source: test1.c (localtime) |
8 | ** |
9 | ** Purpose: Tests the PAL implementation of the localtime function. |
10 | ** localtime() is passed a date in seconds, since January 01 |
11 | ** 1970 midnight, UTC. localtime() converts the time to the |
12 | ** tm struct, those values are tested for validity. |
13 | ** |
14 | ** |
15 | **===================================================================*/ |
16 | #include <palsuite.h> |
17 | |
18 | int __cdecl main(int argc, char **argv) |
19 | { |
20 | time_t dates[] ={1003327482, // Oct 17, 2001 10:04:42 am |
21 | 701307301, // March 22, 1992 6:35:01 pm |
22 | 973620900, // Nov 07, 2000 1:15:00 pm |
23 | 924632589, // April 20, 1999 2:23:09 pm |
24 | 951934989}; // March 01, 2000 1:23:09 pm |
25 | struct tm * converted_date; |
26 | int i; |
27 | |
28 | if (PAL_Initialize(argc, argv) != 0) |
29 | |
30 | return (FAIL); |
31 | |
32 | /*Convert from time_t to struct tm*/ |
33 | for ( i=0; i < (sizeof(dates)/sizeof(time_t)); i++) |
34 | { |
35 | converted_date = localtime(&dates[i]); |
36 | |
37 | if ((converted_date->tm_hour < 0) || (converted_date->tm_hour > 23)) |
38 | { |
39 | Fail("ERROR: localtime returned %d for tm_hour\n" , converted_date->tm_hour); |
40 | } |
41 | if ((converted_date->tm_mday < 1) || (converted_date->tm_mday > 31)) |
42 | { |
43 | Fail("ERROR: localtime returned %d for tm_mday\n" ,converted_date->tm_mday); |
44 | } |
45 | if ((converted_date->tm_min < 0) || (converted_date->tm_min > 59)) |
46 | { |
47 | Fail("ERROR: localtime returned %d for tm_min\n" ,converted_date->tm_min); |
48 | } |
49 | if ((converted_date->tm_mon < 0) || (converted_date->tm_mon > 11)) |
50 | { |
51 | Fail("ERROR: localtime returned %d for tm_mon\n" ,converted_date->tm_mon); |
52 | } |
53 | if ((converted_date->tm_sec < 0) || (converted_date->tm_sec > 59)) |
54 | { |
55 | Fail("ERROR: localtime returned %d for tm_sec\n" ,converted_date->tm_sec); |
56 | } |
57 | if ((converted_date->tm_wday < 0) || (converted_date->tm_wday > 6 )) |
58 | { |
59 | Fail("ERROR: localtime returned %d for tm_wday\n" ,converted_date->tm_wday); |
60 | } |
61 | if ((converted_date->tm_yday < 0) || (converted_date->tm_yday > 365)) |
62 | { |
63 | Fail("ERROR: localtime returned %d for tm_yday\n" ,converted_date->tm_yday); |
64 | } |
65 | } |
66 | |
67 | PAL_Terminate(); |
68 | return (PASS); |
69 | } |
70 | |