Added silc_time_epoch, converting SilcTime to Epoch time value
[runtime.git] / lib / silcutil / tests / test_silctime.c
1 /* SilcTime tests */
2
3 #include "silcruntime.h"
4
5 int main(int argc, char **argv)
6 {
7   SilcBool success = FALSE;
8   SilcTimeStruct curtime;
9   unsigned char ts[32];
10   SilcUInt64 val1, val2;
11
12   if (argc > 1 && !strcmp(argv[1], "-d")) {
13     silc_log_debug(TRUE);
14     silc_log_quick(TRUE);
15     silc_log_debug_hexdump(TRUE);
16     silc_log_set_debug_string("*time*,*errno*");
17   }
18
19   SILC_LOG_DEBUG(("Get current time"));
20   if (!silc_time_value(0, &curtime))
21     goto err;
22   SILC_LOG_DEBUG(("year      : %d", curtime.year));
23   SILC_LOG_DEBUG(("month     : %d", curtime.month));
24   SILC_LOG_DEBUG(("day       : %d", curtime.day));
25   SILC_LOG_DEBUG(("hour      : %d", curtime.hour));
26   SILC_LOG_DEBUG(("minute    : %d", curtime.minute));
27   SILC_LOG_DEBUG(("second    : %d", curtime.second));
28   SILC_LOG_DEBUG(("msecond   : %d", curtime.msecond));
29   SILC_LOG_DEBUG(("utc_hour  : %d", curtime.utc_hour));
30   SILC_LOG_DEBUG(("utc_min   : %d", curtime.utc_minute));
31   SILC_LOG_DEBUG(("utc_east  : %d", curtime.utc_east));
32   SILC_LOG_DEBUG(("dst       : %d", curtime.dst));
33
34
35   silc_time_universal_string(&curtime, ts, sizeof(ts));
36   SILC_LOG_DEBUG(("Universal: %s", ts));
37   silc_time_generalized_string(&curtime, ts, sizeof(ts));
38   SILC_LOG_DEBUG(("Generaliz: %s", ts));
39
40
41   val1 = silc_time();
42   SILC_LOG_DEBUG(("Time: %llu", val1));
43   if (!silc_time_value(val1 * 1000, &curtime))
44     goto err;
45   SILC_LOG_DEBUG(("year      : %d", curtime.year));
46   SILC_LOG_DEBUG(("month     : %d", curtime.month));
47   SILC_LOG_DEBUG(("day       : %d", curtime.day));
48   SILC_LOG_DEBUG(("hour      : %d", curtime.hour));
49   SILC_LOG_DEBUG(("minute    : %d", curtime.minute));
50   SILC_LOG_DEBUG(("second    : %d", curtime.second));
51   SILC_LOG_DEBUG(("msecond   : %d", curtime.msecond));
52   SILC_LOG_DEBUG(("utc_hour  : %d", curtime.utc_hour));
53   SILC_LOG_DEBUG(("utc_min   : %d", curtime.utc_minute));
54   SILC_LOG_DEBUG(("utc_east  : %d", curtime.utc_east));
55   SILC_LOG_DEBUG(("dst       : %d", curtime.dst));
56   val2 = silc_time_epoch(&curtime);
57   SILC_LOG_DEBUG(("Time: %llu", val2));
58   if (!silc_time_value(val2 * 1000, &curtime))
59     goto err;
60   SILC_LOG_DEBUG(("year      : %d", curtime.year));
61   SILC_LOG_DEBUG(("month     : %d", curtime.month));
62   SILC_LOG_DEBUG(("day       : %d", curtime.day));
63   SILC_LOG_DEBUG(("hour      : %d", curtime.hour));
64   SILC_LOG_DEBUG(("minute    : %d", curtime.minute));
65   SILC_LOG_DEBUG(("second    : %d", curtime.second));
66   SILC_LOG_DEBUG(("msecond   : %d", curtime.msecond));
67   SILC_LOG_DEBUG(("utc_hour  : %d", curtime.utc_hour));
68   SILC_LOG_DEBUG(("utc_min   : %d", curtime.utc_minute));
69   SILC_LOG_DEBUG(("utc_east  : %d", curtime.utc_east));
70   SILC_LOG_DEBUG(("dst       : %d", curtime.dst));
71   if (val1 != val2)
72     goto err;
73
74   success = TRUE;
75
76  err:
77   SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
78   fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");
79
80   return !success;
81 }