X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=tests%2Ftime%2Ftime.psi;h=514d2b3b9a0b17d6eee09fffe064cba9dfc1f828;hp=5b02dc4a5afa80f3eaf42c7c25e2c939b3cf51f2;hb=7e4c03791c729bce5ebe6226a72786191bc67f8f;hpb=207ff7bc85e967235f0ad1ffbf47c0f85f375063 diff --git a/tests/time/time.psi b/tests/time/time.psi index 5b02dc4..514d2b3 100644 --- a/tests/time/time.psi +++ b/tests/time/time.psi @@ -13,13 +13,26 @@ function psi\asctime(array $tm = NULL) : string { return to_string(asctime); } +extern char *asctime_r(struct tm *tm, char *buf); +function psi\asctime_r(array $tm = NULL) : string { + let tm = arrval($tm); + let buf = calloc(32, char); + return to_string(asctime_r); +} -extern struct tm *gmtime(time_t tp); +extern struct tm *gmtime(time_t *tp); function psi\gmtime(int $ts) : array { let tp = &intval($ts); return to_array(gmtime); } +extern struct tm *gmtime_r(time_t *tp, struct tm *buf); +function psi\gmtime_r(int $ts) : array { + let tp = &intval($ts); + let buf = calloc(1, struct tm); + return to_array(gmtime_r); +} + extern int nanosleep(struct timespec *rqtp, struct timespec *rmtp); function psi\nanosleep(array $rq = NULL, array &$rm = NULL) : int { let rqtp = arrval($rq); @@ -27,3 +40,10 @@ function psi\nanosleep(array $rq = NULL, array &$rm = NULL) : int { return to_int(nanosleep); set $rm = to_array(*rmtp); } + +extern clock_t times(struct tms *buf); +function psi\times(array &$tms = NULL) : int { + let buf = calloc(1, struct tms); + return to_int(times); + set $tms = to_array(*buf); +}