diff --git a/automation/tests/busted.lua b/automation/tests/busted.lua index a9863db84..f1b680899 100644 --- a/automation/tests/busted.lua +++ b/automation/tests/busted.lua @@ -7,16 +7,36 @@ ffi.cdef[[ } timeval; int gettimeofday(timeval *t, void *tzp); + + typedef struct timespec { + long tv_sec; + long tv_nsec; + } timespec; + int clock_gettime(int clk_id, timespec *tp); ]] +function gettime() + local t = ffi.new("timeval") + ffi.C.gettimeofday(t, nil) + return tonumber(t.tv_sec) + tonumber(t.tv_usec) / 1000000.0 +end +function monotime() + local ts = ffi.new("timespec") + ffi.C.clock_gettime(6, ts) + return tonumber(ts.tv_sec) + tonumber(ts.tv_nsec) / 1000000000.0 +end +function sleep() +end + -- busted depends on luasocket just for gettime(), so just supply a definition -- of that to avoid the dep package.loaded['socket'] = { - gettime = function() - local t = ffi.new("timeval") - ffi.C.gettimeofday(t, nil) - return tonumber(t.tv_sec) + tonumber(t.tv_usec) / 1000000.0 - end + gettime = gettime +} +package.loaded['system'] = { + gettime = gettime, + monotime = monotime, + sleep = sleep } package.loaded['term'] = {