Blame tests/run/libc_time.pyx

Packit 562c7a
# tag: posix
Packit 562c7a
from libc.stdlib  cimport getenv
Packit 562c7a
from posix.stdlib cimport setenv, unsetenv
Packit 562c7a
from libc.time    cimport *
Packit 562c7a
Packit 562c7a
Packit 562c7a
def test_time():
Packit 562c7a
    """
Packit 562c7a
    >>> test_time()
Packit 562c7a
    """
Packit 562c7a
    cdef time_t t1, t2
Packit 562c7a
    t1 = time(NULL)
Packit 562c7a
    assert t1 != 0
Packit 562c7a
    t1 = time(&t2)
Packit 562c7a
    assert t1 == t2
Packit 562c7a
Packit 562c7a
Packit 562c7a
def test_mktime():
Packit 562c7a
    """
Packit 562c7a
    >>> test_mktime()  # doctest:+ELLIPSIS
Packit 562c7a
    (986138177, ...'Sun Apr  1 15:16:17 2001\\n')
Packit 562c7a
    """
Packit 562c7a
    cdef tm t, gmt
Packit 562c7a
    cdef time_t tt
Packit 562c7a
    cdef char *ct
Packit 562c7a
    cdef char *tz
Packit 562c7a
Packit 562c7a
    tz = getenv("TZ")
Packit 562c7a
    setenv("TZ", "UTC", 1)
Packit 562c7a
    tzset()
Packit 562c7a
    t.tm_sec = 17
Packit 562c7a
    t.tm_min = 16
Packit 562c7a
    t.tm_hour = 15
Packit 562c7a
    t.tm_year = 101
Packit 562c7a
    t.tm_mon = 3
Packit 562c7a
    t.tm_mday = 1
Packit 562c7a
    t.tm_isdst = 0
Packit 562c7a
    tt = mktime(&t)
Packit 562c7a
    assert tt != -1
Packit 562c7a
    ct = ctime(&tt)
Packit 562c7a
    assert ct != NULL
Packit 562c7a
    if tz:
Packit 562c7a
        setenv("TZ", tz, 1)
Packit 562c7a
    else:
Packit 562c7a
        unsetenv("TZ")
Packit 562c7a
    tzset()
Packit 562c7a
    return tt, ct