|
Packit |
437b5e |
specify posix.time:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
tm = require "posix.time"
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
now = tm.time ()
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe clock_getres:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
clock_getres = tm.clock_getres
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
if clock_getres then
|
|
Packit |
437b5e |
badargs.diagnose (clock_getres, "(int)")
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns a PosixTimespec:
|
|
Packit |
437b5e |
if clock_getres then
|
|
Packit |
437b5e |
expect (prototype (clock_getres (tm.CLOCK_REALTIME))).
|
|
Packit |
437b5e |
to_be "PosixTimespec"
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe clock_gettime:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
clock_gettime = tm.clock_gettime
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
if clock_gettime then
|
|
Packit |
437b5e |
badargs.diagnose (clock_gettime, "(int)")
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns a PosixTimespec:
|
|
Packit |
437b5e |
if clock_getres then
|
|
Packit |
437b5e |
expect (prototype (clock_gettime (tm.CLOCK_REALTIME))).
|
|
Packit |
437b5e |
to_be "PosixTimespec"
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe gmtime:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
gmtime = tm.gmtime
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
badargs.diagnose (gmtime, "(int)")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns a PosixTm:
|
|
Packit |
437b5e |
expect (prototype (gmtime (now))).to_be "PosixTm"
|
|
Packit |
437b5e |
- it fetches broken-down time values:
|
|
Packit |
437b5e |
t = gmtime (now)
|
|
Packit |
437b5e |
fields = {"tm_sec", "tm_min", "tm_hour", "tm_mday",
|
|
Packit |
437b5e |
"tm_mon", "tm_year", "tm_wday", "tm_yday", "tm_isdst"}
|
|
Packit |
437b5e |
expect (t).to_contain.a_permutation_of (fields)
|
|
Packit |
437b5e |
for _, field in pairs (fields) do
|
|
Packit |
437b5e |
expect (type (t[field])).to_be "number"
|
|
Packit |
437b5e |
expect (t[field] >= 0).to_be (true)
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
- it returns a month in the range 0-11:
|
|
Packit |
437b5e |
# A recent December afternoon in epoch seconds...
|
|
Packit |
437b5e |
expect (gmtime (1418734089).tm_mon).to_be (11)
|
|
Packit |
437b5e |
t = gmtime (now)
|
|
Packit |
437b5e |
expect (t.tm_mon >= 0 and t.tm_mon < 12).to_be (true)
|
|
Packit |
437b5e |
- it returns years since 1900:
|
|
Packit |
437b5e |
expect (gmtime (now).tm_year < 1900).to_be (true)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe localtime:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
localtime = tm.localtime
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
badargs.diagnose (localtime, "(int)")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns a PosixTm:
|
|
Packit |
437b5e |
expect (prototype (localtime (now))).to_be "PosixTm"
|
|
Packit |
437b5e |
- it fetches broken-down time values:
|
|
Packit |
437b5e |
t = localtime (now)
|
|
Packit |
437b5e |
fields = {"tm_sec", "tm_min", "tm_hour", "tm_mday",
|
|
Packit |
437b5e |
"tm_mon", "tm_year", "tm_wday", "tm_yday", "tm_isdst"}
|
|
Packit |
437b5e |
expect (t).to_contain.a_permutation_of (fields)
|
|
Packit |
437b5e |
for _, field in pairs (fields) do
|
|
Packit |
437b5e |
expect (type (t[field])).to_be "number"
|
|
Packit |
437b5e |
expect (t[field] >= 0).to_be (true)
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
- it returns a month in the range 0-11:
|
|
Packit |
437b5e |
# A recent December afternoon in epoch seconds...
|
|
Packit |
437b5e |
expect (localtime (1418734089).tm_mon).to_be (11)
|
|
Packit |
437b5e |
t = localtime (now)
|
|
Packit |
437b5e |
expect (t.tm_mon >= 0 and t.tm_mon < 12).to_be (true)
|
|
Packit |
437b5e |
- it returns years since 1900:
|
|
Packit |
437b5e |
expect (localtime (now).tm_year < 1900).to_be (true)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe mktime:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
localtime, mktime, time = tm.localtime, tm.mktime, tm.time
|
|
Packit |
437b5e |
epoch = time ()
|
|
Packit |
437b5e |
t = localtime (epoch)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
badargs.diagnose (mktime, "(table)")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns an epoch time:
|
|
Packit |
437b5e |
expect (prototype (mktime (t))).to_be "number"
|
|
Packit |
437b5e |
- it is the inverse of localtime:
|
|
Packit |
437b5e |
expect (mktime (t)).to_be (epoch)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe nanosleep:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
nanosleep, typeerrors = init (tm, "nanosleep")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments: |
|
|
Packit |
437b5e |
badargs.diagnose (nanosleep, "(table)")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
examples {
|
|
Packit |
437b5e |
["context diagnosing timespec table fields"] = {
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
["it diagnoses argument #1 tv_sec field type not int"] = function ()
|
|
Packit |
437b5e |
expect (nanosleep {tv_sec = false}).
|
|
Packit |
437b5e |
to_raise.any_of (typeerrors (1, "int", "tv_sec", "boolean"))
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
},
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
["it diagnoses argument #1 tv_nsec field type not int"] = function ()
|
|
Packit |
437b5e |
expect (nanosleep {tv_sec = -1, tv_nsec = false}).
|
|
Packit |
437b5e |
to_raise.any_of (typeerrors (1, "int", "tv_nsec", "boolean"))
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
},
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
["it diagnoses argument #1 spurious fields"] = function ()
|
|
Packit |
437b5e |
expect (nanosleep {tv_sec = -1, tv_nsec = -1, bogus = false}).
|
|
Packit |
437b5e |
to_raise.any_of (typeerrors (1, nil, "bogus"))
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
},
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns an integer:
|
|
Packit |
437b5e |
expect (nanosleep {tv_sec = 0, tv_nsec = 10}).to_be (0)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe strftime:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
strftime = tm.strftime
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
t = {
|
|
Packit |
437b5e |
tm_wday = 0, tm_isdst = 1, tm_sec = 2, tm_min = 3, tm_hour = 4,
|
|
Packit |
437b5e |
tm_mday = 5, tm_mon = 6, tm_year = 7, tm_yday = 8
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
badargs.diagnose (strftime, "(string, table)")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with place-holders:
|
|
Packit |
437b5e |
- it plugs tm_wday:
|
|
Packit |
437b5e |
expect (strftime ("%w", t)).to_be "0"
|
|
Packit |
437b5e |
- it plugs tm_sec:
|
|
Packit |
437b5e |
expect (strftime ("%S", t)).to_be "02"
|
|
Packit |
437b5e |
- it plugs tm_min:
|
|
Packit |
437b5e |
expect (strftime ("%M", t)).to_be "03"
|
|
Packit |
437b5e |
- it plugs tm_hour:
|
|
Packit |
437b5e |
expect (strftime ("%H", t)).to_be "04"
|
|
Packit |
437b5e |
- it plugs tm_mday:
|
|
Packit |
437b5e |
expect (strftime ("%d", t)).to_be "05"
|
|
Packit |
437b5e |
- it plugs tm_mon:
|
|
Packit |
437b5e |
expect (strftime ("%m", t)).to_be "07"
|
|
Packit |
437b5e |
- it plugs tm_year:
|
|
Packit |
437b5e |
expect (strftime ("%y", t)).to_be "07"
|
|
Packit |
437b5e |
- it plugs tm_yday:
|
|
Packit |
437b5e |
expect (strftime ("%j", t)).to_be "009"
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe strptime:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
strptime = tm.strptime
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
badargs.diagnose (strptime, "(string, string)")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with place-holders:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
t, i = strptime ("Mon Jun 4 03:02:01 BST 1906 garbage",
|
|
Packit |
437b5e |
"%a %b %d %H:%M:%S BST %Y")
|
|
Packit |
437b5e |
- it returns the first unconsumed character:
|
|
Packit |
437b5e |
expect (i).to_be (29)
|
|
Packit |
437b5e |
# tm_yday and tm_isdst are not set by strptime
|
|
Packit |
437b5e |
- it scans into tm_wday:
|
|
Packit |
437b5e |
expect (t.tm_wday).to_be (1)
|
|
Packit |
437b5e |
- it scans into tm_sec:
|
|
Packit |
437b5e |
expect (t.tm_sec).to_be (1)
|
|
Packit |
437b5e |
- it scans into tm_min:
|
|
Packit |
437b5e |
expect (t.tm_min).to_be (2)
|
|
Packit |
437b5e |
- it scans into tm_hour:
|
|
Packit |
437b5e |
expect (t.tm_hour).to_be (3)
|
|
Packit |
437b5e |
- it scans into tm_mday:
|
|
Packit |
437b5e |
expect (t.tm_mday).to_be (4)
|
|
Packit |
437b5e |
- it scans into tm_mon:
|
|
Packit |
437b5e |
expect (t.tm_mon).to_be (5)
|
|
Packit |
437b5e |
- it scans into tm_year:
|
|
Packit |
437b5e |
expect (t.tm_year).to_be (6)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- describe time:
|
|
Packit |
437b5e |
- before:
|
|
Packit |
437b5e |
time = tm.time
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- context with bad arguments:
|
|
Packit |
437b5e |
badargs.diagnose (time, "()")
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
- it returns epoch seconds:
|
|
Packit |
437b5e |
expect (type (time ())).to_be "number"
|
|
Packit |
437b5e |
expect (time () > 0).to_be (true)
|