cython
1# tag: posix
2from libc.stdlib cimport getenv
3from posix.stdlib cimport setenv, unsetenv
4from libc.time cimport *
5
6
7def test_time():
8"""
9>>> test_time()
10"""
11cdef time_t t1, t2
12t1 = time(NULL)
13assert t1 != 0
14t1 = time(&t2)
15assert t1 == t2
16
17
18def test_mktime():
19"""
20>>> test_mktime() # doctest:+ELLIPSIS
21(986138177, ...'Sun Apr 1 15:16:17 2001\\n')
22"""
23cdef tm t, gmt
24cdef time_t tt
25cdef char *ct
26cdef char *tz
27
28tz = getenv("TZ")
29setenv("TZ", "UTC", 1)
30tzset()
31t.tm_sec = 17
32t.tm_min = 16
33t.tm_hour = 15
34t.tm_year = 101
35t.tm_mon = 3
36t.tm_mday = 1
37t.tm_isdst = 0
38tt = mktime(&t)
39assert tt != -1
40ct = ctime(&tt)
41assert ct != NULL
42if tz:
43setenv("TZ", tz, 1)
44else:
45unsetenv("TZ")
46tzset()
47return tt, ct
48