diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-03-22 13:33:56 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-03-22 16:01:10 +0100 |
commit | 171402fd6fc2bd27dd45e2dbf258734c53987508 (patch) | |
tree | f839579b4654395437d18bf143d6461008bf705e /tests/custom/03_stdlib/55_clock | |
parent | 3eaca1db52be980f62aed281fedf319eff599fbd (diff) |
lib: add date and time related functions
Add five new functions to deal with date calculation and timing:
- localtime(), gmtime() - return a broken down calendar date and time
specification from the given epoch (or now, if absent) in local and
UTC time respectively
- timelocal(), timegm() - the inverse operation for the former functions,
taking a date and time specification (interpreted as local or UTC time
respectively) and turning it into an epoch value
- clock() - return the second and nanosecond values of the system clock,
useful for time/performance measurements
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'tests/custom/03_stdlib/55_clock')
-rw-r--r-- | tests/custom/03_stdlib/55_clock | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/custom/03_stdlib/55_clock b/tests/custom/03_stdlib/55_clock new file mode 100644 index 0000000..109ce21 --- /dev/null +++ b/tests/custom/03_stdlib/55_clock @@ -0,0 +1,33 @@ +The `clock()` function reads the current second and microsecond value of +the system clock, optionally using the monotonic clock instead of the +default realtime one. + +-- Testcase -- +{% + let t1 = clock(); + let t3 = clock(true); + + sleep(250); + + let t2 = clock(); + let t4 = clock(true); + + let delta1 = (t2[0] - t1[0]) * 1000000000 + (t2[1] - t1[1]); + let delta2 = (t4[0] - t3[0]) * 1000000000 + (t4[1] - t3[1]); + + assert(delta1 >= 0, "Realtime clock went backwards!"); + assert(delta2 >= 0, "Monotonic clock went backwards!"); + + printf("%.J\n", [ + (delta1 >= 240000000 && delta1 <= 260000000) ? true : "unexpected delta: " + delta1, + (delta2 >= 240000000 && delta2 <= 260000000) ? true : "unexpected delta: " + delta2 + ]); +%} +-- End -- + +-- Expect stdout -- +[ + true, + true +] +-- End -- |