From: Eugene Syromyatnikov Date: Thu, 24 Nov 2016 21:48:00 +0000 (+0300) Subject: Fix omission of field names in printers of timespec structure X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=acdb08613ea4d71b702144b41de66bd25b28ae5d;p=strace Fix omission of field names in printers of timespec structure * print_time.c (timespec_fmt): New constant. (print_timespec_t, sprint_timespec): Use it instead of time_fmt. * tests/aio.c: Add field names to expected output. * tests/clock_nanosleep.c (main): Likewise. * tests/clock_xettime.c (main): Likewise. * tests/futex.c (main): Likewise. * tests/mq_sendrecv.c (do_send, do_recv): Likewise. * tests/nanosleep.c (main): Likewise. * tests/ppoll-v.expected: Likewise. * tests/ppoll.expected: Likewise. * tests/pselect6.c (main): Likewise. * tests/recvmmsg-timeout.c (main): Likewise. * tests/restart_syscall.c (main): Likewise. * tests/rt_sigtimedwait.c (iterate, main): Likewise. * tests/sched_rr_get_interval.c (main): Likewise. * tests/semop.c (main): Likewise. * tests/strace-T.expected: Likewise. * tests/timer_xettime.c (main): Likewise. * tests/timerfd_xettime.c (main): Likewise. * tests/utimensat.c (print_ts): Likewise. --- diff --git a/print_time.c b/print_time.c index 500ce8e5..6276b08d 100644 --- a/print_time.c +++ b/print_time.c @@ -43,12 +43,13 @@ typedef struct timeval timeval_t; # define UTIME_OMIT ((1l << 30) - 2l) #endif +static const char timespec_fmt[] = "{tv_sec=%jd, tv_nsec=%jd}"; static const char time_fmt[] = "{%jd, %jd}"; static void print_timespec_t(const timespec_t *t) { - tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_nsec); + tprintf(timespec_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_nsec); } static void @@ -88,7 +89,7 @@ MPERS_PRINTER_DECL(const char *, sprint_timespec, struct tcb *tcp, const long addr) { timespec_t t; - static char buf[sizeof(time_fmt) + 3 * sizeof(t)]; + static char buf[sizeof(timespec_fmt) + 3 * sizeof(t)]; if (!addr) { strcpy(buf, "NULL"); @@ -96,7 +97,7 @@ MPERS_PRINTER_DECL(const char *, sprint_timespec, umove(tcp, addr, &t)) { snprintf(buf, sizeof(buf), "%#lx", addr); } else { - snprintf(buf, sizeof(buf), time_fmt, + snprintf(buf, sizeof(buf), timespec_fmt, (intmax_t) t.tv_sec, (intmax_t) t.tv_nsec); } diff --git a/tests/aio.c b/tests/aio.c index 7c5afac2..5b0c1aaf 100644 --- a/tests/aio.c +++ b/tests/aio.c @@ -267,7 +267,7 @@ main(void) printf("io_getevents(%#lx, %ld, %ld, [" "{data=%#" PRI__x64 ", obj=%p, res=%u, res2=0}, " "{data=%#" PRI__x64 ", obj=%p, res=%u, res2=0}" - "], {0, 123456789}) = %s\n", + "], {tv_sec=0, tv_nsec=123456789}) = %s\n", *ctx, (long) nr, (long) (nr + 1), cb[0].aio_data, &cb[0], sizeof_data0, cb[1].aio_data, &cb[1], sizeof_data1, diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c index d9b68fd6..87a3d5d3 100644 --- a/tests/clock_nanosleep.c +++ b/tests/clock_nanosleep.c @@ -62,7 +62,8 @@ main(void) if (syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0, &req.ts, NULL)) perror_msg_and_skip("clock_nanosleep CLOCK_REALTIME"); - printf("clock_nanosleep(CLOCK_REALTIME, 0, {%jd, %jd}, NULL) = 0\n", + printf("clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=%jd, tv_nsec=%jd}, " + "NULL) = 0\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec); assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0, @@ -72,14 +73,15 @@ main(void) assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0, &req.ts, &rem.ts) == 0); - printf("clock_nanosleep(CLOCK_REALTIME, 0, {%jd, %jd}, %p) = 0\n", + printf("clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=%jd, tv_nsec=%jd}, " + "%p) = 0\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts); req.ts.tv_nsec = 999999999 + 1; assert(syscall(__NR_clock_nanosleep, CLOCK_MONOTONIC, 0, &req.ts, &rem.ts) == -1); printf("clock_nanosleep(CLOCK_MONOTONIC, 0" - ", {%jd, %jd}, %p) = -1 EINVAL (%m)\n", + ", {tv_sec=%jd, tv_nsec=%jd}, %p) = -1 EINVAL (%m)\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts); assert(sigaction(SIGALRM, &act, NULL) == 0); @@ -97,14 +99,15 @@ main(void) --req.ts.tv_nsec; assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0, &req.ts, &rem.ts) == -1); - printf("clock_nanosleep(CLOCK_REALTIME, 0, {%jd, %jd}, {%jd, %jd})" + printf("clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=%jd, tv_nsec=%jd}, " + "{tv_sec=%jd, tv_nsec=%jd})" " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, (intmax_t) rem.ts.tv_sec, (intmax_t) rem.ts.tv_nsec); puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---"); assert(syscall(__NR_clock_gettime, CLOCK_REALTIME, &req.ts) == 0); - printf("clock_gettime(CLOCK_REALTIME, {%jd, %jd}) = 0\n", + printf("clock_gettime(CLOCK_REALTIME, {tv_sec=%jd, tv_nsec=%jd}) = 0\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec); ++req.ts.tv_sec; @@ -112,7 +115,8 @@ main(void) rem.ts.tv_nsec = 0xc0de5; assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, TIMER_ABSTIME, &req.ts, &rem.ts) == -1); - printf("clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, {%jd, %jd}, %p)" + printf("clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, {tv_sec=%jd, " + "tv_nsec=%jd}, %p)" " = ? ERESTARTNOHAND (To be restarted if no handler)\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts); puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---"); diff --git a/tests/clock_xettime.c b/tests/clock_xettime.c index 04dddf68..3ef5695f 100644 --- a/tests/clock_xettime.c +++ b/tests/clock_xettime.c @@ -48,13 +48,14 @@ main(void) if (syscall(__NR_clock_getres, CLOCK_REALTIME, &t.ts)) perror_msg_and_skip("clock_getres CLOCK_REALTIME"); - printf("clock_getres(CLOCK_REALTIME, {%jd, %jd}) = 0\n", + printf("clock_getres(CLOCK_REALTIME, {tv_sec=%jd, tv_nsec=%jd}) = 0\n", (intmax_t) t.ts.tv_sec, (intmax_t) t.ts.tv_nsec); if (syscall(__NR_clock_gettime, CLOCK_PROCESS_CPUTIME_ID, &t.ts)) perror_msg_and_skip("clock_gettime CLOCK_PROCESS_CPUTIME_ID"); - printf("clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {%jd, %jd}) = 0\n", + printf("clock_gettime(CLOCK_PROCESS_CPUTIME_ID, " + "{tv_sec=%jd, tv_nsec=%jd}) = 0\n", (intmax_t) t.ts.tv_sec, (intmax_t) t.ts.tv_nsec); @@ -63,8 +64,8 @@ main(void) if (!syscall(__NR_clock_settime, CLOCK_THREAD_CPUTIME_ID, &t.ts)) error_msg_and_skip("clock_settime CLOCK_THREAD_CPUTIME_ID:" " EINVAL expected"); - printf("clock_settime(CLOCK_THREAD_CPUTIME_ID, {%jd, %jd})" - " = -1 EINVAL (%m)\n", + printf("clock_settime(CLOCK_THREAD_CPUTIME_ID, {tv_sec=%jd, " + "tv_nsec=%jd}) = -1 EINVAL (%m)\n", (intmax_t) t.ts.tv_sec, (intmax_t) t.ts.tv_nsec); diff --git a/tests/futex.c b/tests/futex.c index dc7ad4bb..e4958ce2 100644 --- a/tests/futex.c +++ b/tests/futex.c @@ -189,14 +189,14 @@ main(int argc, char *argv[]) /* uaddr is NULL */ CHECK_FUTEX(NULL, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EFAULT)); - printf("futex(NULL, FUTEX_WAIT, %u, {%jd, %jd}) = %s\n", + printf("futex(NULL, FUTEX_WAIT, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); /* uaddr is faulty */ CHECK_FUTEX(uaddr + 1, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EFAULT)); - printf("futex(%p, FUTEX_WAIT, %u, {%jd, %jd}) = %s\n", + printf("futex(%p, FUTEX_WAIT, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr + 1, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); @@ -209,14 +209,15 @@ main(int argc, char *argv[]) /* uaddr is not as provided; uaddr2 is faulty but ignored */ CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN)); - printf("futex(%p, FUTEX_WAIT, %u, {%jd, %jd}) = %s\n", + printf("futex(%p, FUTEX_WAIT, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); /* uaddr is not as provided; uaddr2 is faulty but ignored */ CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN)); - printf("futex(%p, FUTEX_WAIT_PRIVATE, %u, {%jd, %jd}) = %s\n", + printf("futex(%p, FUTEX_WAIT_PRIVATE, %u, {tv_sec=%jd, tv_nsec=%jd}) = " + "%s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); @@ -227,7 +228,7 @@ main(int argc, char *argv[]) FUTEX_CLOCK_REALTIME | FUTEX_WAIT, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN)); printf("futex(%p, FUTEX_WAIT|FUTEX_CLOCK_REALTIME, %u, " - "{%jd, %jd}) = %s\n", uaddr, VAL_PR, + "{tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); @@ -235,7 +236,7 @@ main(int argc, char *argv[]) FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT , VAL, tmout, uaddr2, 0, (rc == -1) && (errno == EAGAIN)); printf("futex(%p, FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME, %u, " - "{%jd, %jd}) = %s\n", uaddr, VAL_PR, + "{tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); @@ -253,21 +254,24 @@ main(int argc, char *argv[]) CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN)); - printf("futex(%p, FUTEX_WAIT_BITSET, %u, {%jd, %jd}, %#x) = %s\n", + printf("futex(%p, FUTEX_WAIT_BITSET, %u, {tv_sec=%jd, tv_nsec=%jd}, " + "%#x) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, VAL3_PR, sprintrc(rc)); /* val3 of 0 is invalid */ CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, 0, (rc == -1) && (errno == EINVAL)); - printf("futex(%p, FUTEX_WAIT_BITSET, %u, {%jd, %jd}, %#x) = %s\n", + printf("futex(%p, FUTEX_WAIT_BITSET, %u, {tv_sec=%jd, tv_nsec=%jd}, " + "%#x) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, 0, sprintrc(rc)); CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN)); - printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE, %u, {%jd, %jd}, %#x) = " - "%s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, + printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE, %u, " + "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", + uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, VAL3_PR, sprintrc(rc)); /* Next 3 tests are with CLOCKRT bit set */ @@ -275,7 +279,7 @@ main(int argc, char *argv[]) CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN)); printf("futex(%p, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %u, " - "{%jd, %jd}, %#x) = %s\n", uaddr, VAL_PR, + "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, VAL3_PR, sprintrc(rc)); @@ -283,7 +287,7 @@ main(int argc, char *argv[]) CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, 0, (rc == -1) && (errno == EINVAL)); printf("futex(%p, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %u, " - "{%jd, %jd}, %#x) = %s\n", uaddr, VAL_PR, + "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, 0, sprintrc(rc)); @@ -291,7 +295,7 @@ main(int argc, char *argv[]) FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN)); printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, %u, " - "{%jd, %jd}, %#x) = %s\n", uaddr, VAL_PR, + "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, VAL3_PR, sprintrc(rc)); @@ -543,13 +547,14 @@ main(int argc, char *argv[]) CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_LOCK_PI, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EFAULT)); - printf("futex(%p, FUTEX_LOCK_PI, {%jd, %jd}) = %s\n", + printf("futex(%p, FUTEX_LOCK_PI, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr + 1, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_LOCK_PI, VAL, tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EFAULT)); - printf("futex(%p, FUTEX_LOCK_PI_PRIVATE, {%jd, %jd}) = %s\n", + printf("futex(%p, FUTEX_LOCK_PI_PRIVATE, {tv_sec=%jd, tv_nsec=%jd}) = " + "%s\n", uaddr + 1, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); @@ -623,20 +628,22 @@ main(int argc, char *argv[]) CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN)); - printf("futex(%p, FUTEX_WAIT_REQUEUE_PI, %u, {%jd, %jd}, %p) = %s\n", + printf("futex(%p, FUTEX_WAIT_REQUEUE_PI, %u, " + "{tv_sec=%jd, tv_nsec=%jd}, %p) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, uaddr2, sprintrc(rc)); CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN)); - printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE, %u, {%jd, %jd}, %p) " + printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE, %u, " + "{tv_sec=%jd, tv_nsec=%jd}, %p) " "= %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, uaddr2, sprintrc(rc)); CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN)); printf("futex(%p, FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME, %u, " - "{%jd, %jd}, %p) = %s\n", uaddr, VAL_PR, + "{tv_sec=%jd, tv_nsec=%jd}, %p) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, uaddr2, sprintrc(rc)); @@ -644,7 +651,7 @@ main(int argc, char *argv[]) FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN)); printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME, " - "%u, {%jd, %jd}, %p) = %s\n", uaddr, VAL_PR, + "%u, {tv_sec=%jd, tv_nsec=%jd}, %p) = %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, uaddr2, sprintrc(rc)); diff --git a/tests/mq_sendrecv.c b/tests/mq_sendrecv.c index 97bf9f2b..34eb97c8 100644 --- a/tests/mq_sendrecv.c +++ b/tests/mq_sendrecv.c @@ -148,7 +148,7 @@ do_send(int fd, char *msg, unsigned int msg_size, struct timespec *tmout, if (cropped) printf("..."); errno = saved_errno; - printf(", %u, 42, {%jd, %jd}) = %s\n", msg_size, + printf(", %u, 42, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", msg_size, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); errno = saved_errno; @@ -186,7 +186,7 @@ do_recv(int fd, char *msg, unsigned int msg_size, struct timespec *tmout, printf("%p", msg); } errno = saved_errno; - printf(", %u, [42], {%jd, %jd}) = %s\n", MSG_SIZE, + printf(", %u, [42], {tv_sec=%jd, tv_nsec=%jd}) = %s\n", MSG_SIZE, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, sprintrc(rc)); errno = saved_errno; @@ -305,7 +305,8 @@ main(void) /* Partially invalid message (memory only partially available) */ rc = syscall(__NR_mq_timedsend, bogus_fd, msg + MSG_SIZE - MSG_CUT, MSG_SIZE, bogus_prio, bogus_tmout); - printf("mq_timedsend(%d, %p, %llu, %u, {%jd, %jd}) = %s\n", + printf("mq_timedsend(%d, %p, %llu, %u, {tv_sec=%jd, tv_nsec=%jd}) = " + "%s\n", (int) bogus_fd, msg + MSG_SIZE - MSG_CUT, (unsigned long long) MSG_SIZE, (unsigned) bogus_prio, (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec, @@ -317,7 +318,7 @@ main(void) errstr = sprintrc(rc); printf("mq_timedsend(%d, ", (int) bogus_fd); printstr(MSG_START + MSG_SIZE - MSG_CUT, MSG_CUT); - printf(", %llu, %u, {%jd, %jd}) = %s\n", + printf(", %llu, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", (unsigned long long) MSG_CUT, (unsigned) bogus_prio, (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec, errstr); @@ -328,7 +329,7 @@ main(void) errstr = sprintrc(rc); printf("mq_timedsend(%d, ", (int) bogus_fd); printstr(MSG_START + MSG_CUT, MSG_MAX_UNCUT); - printf("..., %llu, %u, {%jd, %jd}) = %s\n", + printf("..., %llu, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", (unsigned long long) MSG_SIZE, (unsigned) bogus_prio, (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec, errstr); @@ -351,7 +352,8 @@ main(void) /* Invalid fd, valid msg pointer */ rc = syscall(__NR_mq_timedreceive, bogus_fd, msg, bogus_size, bogus_prio_ptr, bogus_tmout); - printf("mq_timedreceive(%d, %p, %llu, %p, {%jd, %jd}) = %s\n", + printf("mq_timedreceive(%d, %p, %llu, %p, {tv_sec=%jd, tv_nsec=%jd}) = " + "%s\n", (int) bogus_fd, msg, (unsigned long long) bogus_size, bogus_prio_ptr, (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec, sprintrc(rc)); diff --git a/tests/nanosleep.c b/tests/nanosleep.c index db430e51..86bc2a45 100644 --- a/tests/nanosleep.c +++ b/tests/nanosleep.c @@ -57,7 +57,7 @@ main(void) if (nanosleep(&req.ts, NULL)) perror_msg_and_fail("nanosleep"); - printf("nanosleep({%jd, %jd}, NULL) = 0\n", + printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, NULL) = 0\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec); assert(nanosleep(NULL, &rem.ts) == -1); @@ -65,12 +65,12 @@ main(void) if (nanosleep(&req.ts, &rem.ts)) perror_msg_and_fail("nanosleep"); - printf("nanosleep({%jd, %jd}, %p) = 0\n", + printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, %p) = 0\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts); req.ts.tv_nsec = 1000000000; assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({%jd, %jd}, %p) = -1 EINVAL (%m)\n", + printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, %p) = -1 EINVAL (%m)\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts); assert(sigaction(SIGALRM, &act, NULL) == 0); @@ -87,7 +87,7 @@ main(void) req.ts.tv_nsec = 999999999; assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({%jd, %jd}, {%jd, %jd})" + printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, {tv_sec=%jd, tv_nsec=%jd})" " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n", (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, (intmax_t) rem.ts.tv_sec, (intmax_t) rem.ts.tv_nsec); diff --git a/tests/ppoll-v.expected b/tests/ppoll-v.expected index 5172717c..31070ad1 100644 --- a/tests/ppoll-v.expected +++ b/tests/ppoll-v.expected @@ -1,3 +1,3 @@ -ppoll\(\[\{fd=0, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=1, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}, \{fd=3, events=POLLIN\|POLLPRI\}, \{fd=4, events=POLLOUT\}\], 4, \{42, 999999999\}, \[(USR2 CHLD|CHLD USR2)\], (4|8|16)\) = 2 \(\[\{fd=1, revents=POLLOUT(\|POLLWRNORM)?\}, \{fd=4, revents=POLLOUT\}\], left \{42, 9[0-9]{8}\}\) -ppoll\(\[\{fd=1, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=0, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}\], 2, \{0, 999\}, ~\[HUP KILL STOP[^]]*\], (4|8|16)\) = 0 \(Timeout\) +ppoll\(\[\{fd=0, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=1, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}, \{fd=3, events=POLLIN\|POLLPRI\}, \{fd=4, events=POLLOUT\}\], 4, \{tv_sec=42, tv_nsec=999999999\}, \[(USR2 CHLD|CHLD USR2)\], (4|8|16)\) = 2 \(\[\{fd=1, revents=POLLOUT(\|POLLWRNORM)?\}, \{fd=4, revents=POLLOUT\}\], left \{tv_sec=42, tv_nsec=9[0-9]{8}\}\) +ppoll\(\[\{fd=1, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=0, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}\], 2, \{tv_sec=0, tv_nsec=999\}, ~\[HUP KILL STOP[^]]*\], (4|8|16)\) = 0 \(Timeout\) ppoll\(NULL, 42, NULL, NULL, (4|8|16)\) = -1 EFAULT .* diff --git a/tests/ppoll.expected b/tests/ppoll.expected index 4dfc830d..c38a2062 100644 --- a/tests/ppoll.expected +++ b/tests/ppoll.expected @@ -1,3 +1,3 @@ -ppoll\(\[\{fd=0, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=1, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}, \.\.\.\], 4, \{42, 999999999\}, \[(USR2 CHLD|CHLD USR2)\], (4|8|16)\) = 2 \(\[\{fd=1, revents=POLLOUT(\|POLLWRNORM)?\}, \{fd=4, revents=POLLOUT\}\], left \{42, 9[0-9]{8}\}\) -ppoll\(\[\{fd=1, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=0, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}\], 2, \{0, 999\}, ~\[HUP KILL STOP[^]]*\], (4|8|16)\) = 0 \(Timeout\) +ppoll\(\[\{fd=0, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=1, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}, \.\.\.\], 4, \{tv_sec=42, tv_nsec=999999999\}, \[(USR2 CHLD|CHLD USR2)\], (4|8|16)\) = 2 \(\[\{fd=1, revents=POLLOUT(\|POLLWRNORM)?\}, \{fd=4, revents=POLLOUT\}\], left \{tv_sec=42, tv_nsec=9[0-9]{8}\}\) +ppoll\(\[\{fd=1, events=POLLIN\|POLLPRI\|POLLRDNORM\|POLLRDBAND\}, \{fd=0, events=POLLOUT(\|POLLWRNORM)?\|POLLWRBAND\}\], 2, \{tv_sec=0, tv_nsec=999\}, ~\[HUP KILL STOP[^]]*\], (4|8|16)\) = 0 \(Timeout\) ppoll\(NULL, 42, NULL, NULL, (4|8|16)\) = -1 EFAULT .* diff --git a/tests/pselect6.c b/tests/pselect6.c index 7dbc06a9..b2599546 100644 --- a/tests/pselect6.c +++ b/tests/pselect6.c @@ -100,8 +100,9 @@ int main(int ac, char **av) FD_SET(fds[0], set[1]); FD_SET(fds[1], set[1]); assert(syscall(__NR_pselect6, fds[1] + 1, NULL, set[1], NULL, &tm.ts, NULL) == 3); - printf("pselect6(%d, NULL, [1 2 %d %d], NULL, {%lld, %lld}, NULL)" - " = 3 (out [1 2 %d], left {%lld, %lld})\n", + printf("pselect6(%d, NULL, [1 2 %d %d], NULL, " + "{tv_sec=%lld, tv_nsec=%lld}, NULL) = 3 (out [1 2 %d], left " + "{tv_sec=%lld, tv_nsec=%lld})\n", fds[1] + 1, fds[0], fds[1], (long long) tm_in.ts.tv_sec, (long long) tm_in.ts.tv_nsec, fds[1], @@ -126,8 +127,9 @@ int main(int ac, char **av) tm.ts.tv_sec = 0; tm.ts.tv_nsec = 123; assert(pselect(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0); - printf("pselect6(%d, [%d], [], NULL, {0, 123}, {[HUP CHLD], %u}) " - "= 0 (Timeout)\n", FD_SETSIZE + 1, fds[0], NSIG / 8); + printf("pselect6(%d, [%d], [], NULL, {tv_sec=0, tv_nsec=123}, " + "{[HUP CHLD], %u}) = 0 (Timeout)\n", + FD_SETSIZE + 1, fds[0], NSIG / 8); /* * See how timeouts are decoded. @@ -137,8 +139,9 @@ int main(int ac, char **av) tm.ts.tv_nsec = 222222222; assert(pselect(0, NULL, NULL, NULL, &tm.ts, &mask) == -1); - printf("pselect6(0, NULL, NULL, NULL, {0, 222222222}, {[HUP CHLD], %u})" - " = ? ERESTARTNOHAND (To be restarted if no handler)\n", + printf("pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=222222222}, " + "{[HUP CHLD], %u}) = " + "? ERESTARTNOHAND (To be restarted if no handler)\n", NSIG / 8); puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---"); diff --git a/tests/recvmmsg-timeout.c b/tests/recvmmsg-timeout.c index 4afd8a60..7cf064db 100644 --- a/tests/recvmmsg-timeout.c +++ b/tests/recvmmsg-timeout.c @@ -53,7 +53,7 @@ main(void) struct timespec t = { .tv_sec = 0, .tv_nsec = 12345678 }; int rc = recv_mmsg(-1, &mh, 1, 0, &t); - printf("recvmmsg(-1, %p, 1, 0, {0, 12345678})" + printf("recvmmsg(-1, %p, 1, 0, {tv_sec=0, tv_nsec=12345678})" " = %d %s (%m)\n", &mh, rc, errno2name()); rc = recv_mmsg(fds[0], &mh, 1, 0, &t); @@ -62,7 +62,8 @@ main(void) printf("recvmmsg(%d, [{msg_hdr={msg_name=NULL, msg_namelen=0" ", msg_iov=[{iov_base=\"A\", iov_len=1}], msg_iovlen=1" ", msg_controllen=0, msg_flags=0}, msg_len=1}], 1, 0" - ", {0, 12345678}) = %d (left {0, %d})\n", + ", {tv_sec=0, tv_nsec=12345678}) = " + "%d (left {tv_sec=0, tv_nsec=%d})\n", fds[0], rc, (int) t.tv_nsec); puts("+++ exited with 0 +++"); diff --git a/tests/restart_syscall.c b/tests/restart_syscall.c index 3f07d783..e492e62e 100644 --- a/tests/restart_syscall.c +++ b/tests/restart_syscall.c @@ -55,7 +55,8 @@ main(void) if (nanosleep(&req, &rem)) perror_msg_and_fail("nanosleep"); - printf("nanosleep\\(\\{%jd, %jd\\}, \\{%jd, %jd\\}\\)" + printf("nanosleep\\(\\{tv_sec=%jd, tv_nsec=%jd\\}, " + "\\{tv_sec=%jd, tv_nsec=%jd\\}\\)" " = \\? ERESTART_RESTARTBLOCK \\(Interrupted by signal\\)\n", (intmax_t) req.tv_sec, (intmax_t) req.tv_nsec, (intmax_t) rem.tv_sec, (intmax_t) rem.tv_nsec); @@ -66,7 +67,8 @@ main(void) #else # define ALTERNATIVE_NANOSLEEP_REQ "" #endif - printf("(nanosleep\\((%s\\{%jd, %jd\\}), %p|restart_syscall\\(<\\.\\.\\." + printf("(nanosleep\\((%s\\{tv_sec=%jd, tv_nsec=%jd\\}), " + "%p|restart_syscall\\(<\\.\\.\\." " resuming interrupted nanosleep \\.\\.\\.>)\\) = 0\n", ALTERNATIVE_NANOSLEEP_REQ, (intmax_t) req.tv_sec, (intmax_t) req.tv_nsec, &rem); diff --git a/tests/rt_sigtimedwait.c b/tests/rt_sigtimedwait.c index ee6d3b99..10311e6e 100644 --- a/tests/rt_sigtimedwait.c +++ b/tests/rt_sigtimedwait.c @@ -54,19 +54,22 @@ iterate(const char *const text, const void *set, for (;;) { assert(k_sigtimedwait(set, NULL, timeout, size) == -1); if (EINTR == errno) { - tprintf("rt_sigtimedwait(%s, NULL, {%jd, %jd}, %u)" + tprintf("rt_sigtimedwait(%s, NULL, " + "{tv_sec=%jd, tv_nsec=%jd}, %u)" " = -1 EAGAIN (%m)\n", text, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, size); } else { if (size < sizeof(long)) - tprintf("rt_sigtimedwait(%p, NULL, {%jd, %jd}" + tprintf("rt_sigtimedwait(%p, NULL, " + "{tv_sec=%jd, tv_nsec=%jd}" ", %u) = -1 EINVAL (%m)\n", set, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, size); else - tprintf("rt_sigtimedwait(%s, NULL, {%jd, %jd}" + tprintf("rt_sigtimedwait(%s, NULL, " + "{tv_sec=%jd, tv_nsec=%jd}" ", %u) = -1 EINVAL (%m)\n", text, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, size); @@ -97,14 +100,14 @@ main(void) assert(k_sigtimedwait(k_set, NULL, timeout, set_size) == -1); if (EAGAIN == errno) break; - tprintf("rt_sigtimedwait(%p, NULL, {%jd, %jd}, %u)" + tprintf("rt_sigtimedwait(%p, NULL, {tv_sec=%jd, tv_nsec=%jd}, %u)" " = -1 EINVAL (%m)\n", k_set, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size); } if (!set_size) perror_msg_and_fail("rt_sigtimedwait"); - tprintf("rt_sigtimedwait([], NULL, {%jd, %jd}, %u) = -1 EAGAIN (%m)\n", + tprintf("rt_sigtimedwait([], NULL, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n", (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size); @@ -115,7 +118,7 @@ main(void) assert(k_sigtimedwait(k_set, info, timeout, set_size) == -1); assert(EAGAIN == errno); - tprintf("rt_sigtimedwait([HUP], %p, {%jd, %jd}, %u) = -1 EAGAIN (%m)\n", + tprintf("rt_sigtimedwait([HUP], %p, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n", info, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size); @@ -124,7 +127,7 @@ main(void) assert(k_sigtimedwait(k_set, info, timeout, set_size) == -1); assert(EAGAIN == errno); - tprintf("rt_sigtimedwait([HUP INT], %p, {%jd, %jd}, %u)" + tprintf("rt_sigtimedwait([HUP INT], %p, {tv_sec=%jd, tv_nsec=%jd}, %u)" " = -1 EAGAIN (%m)\n", info, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size); @@ -136,7 +139,7 @@ main(void) assert(k_sigtimedwait(k_set, info, timeout, set_size) == -1); assert(EAGAIN == errno); - tprintf("rt_sigtimedwait(%s, %p, {%jd, %jd}, %u) = -1 EAGAIN (%m)\n", + tprintf("rt_sigtimedwait(%s, %p, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n", "[HUP INT QUIT ALRM TERM]", info, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size); @@ -144,7 +147,7 @@ main(void) memset(k_set - set_size, -1, set_size); assert(k_sigtimedwait(k_set - set_size, info, timeout, set_size) == -1); assert(EAGAIN == errno); - tprintf("rt_sigtimedwait(~[], %p, {%jd, %jd}, %u) = -1 EAGAIN (%m)\n", + tprintf("rt_sigtimedwait(~[], %p, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n", info, (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size); @@ -161,7 +164,7 @@ main(void) raise(SIGALRM); assert(k_sigtimedwait(k_set, info, timeout, set_size) == SIGALRM); tprintf("rt_sigtimedwait(%s, {si_signo=%s, si_code=SI_TKILL" - ", si_pid=%d, si_uid=%d}, {%jd, %jd}, %u) = %d (%s)\n", + ", si_pid=%d, si_uid=%d}, {tv_sec=%jd, tv_nsec=%jd}, %u) = %d (%s)\n", "[HUP INT QUIT ALRM TERM]", "SIGALRM", getpid(), getuid(), (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec, set_size, SIGALRM, "SIGALRM"); diff --git a/tests/sched_rr_get_interval.c b/tests/sched_rr_get_interval.c index 99943e7b..0aacd2b7 100644 --- a/tests/sched_rr_get_interval.c +++ b/tests/sched_rr_get_interval.c @@ -25,8 +25,8 @@ main(void) rc = syscall(__NR_sched_rr_get_interval, 0, tp); if (rc == 0) - printf("sched_rr_get_interval(0, {%jd, %jd}) = 0\n", - (intmax_t)tp->tv_sec, (intmax_t)tp->tv_nsec); + printf("sched_rr_get_interval(0, {tv_sec=%jd, tv_nsec=%jd}) = " + "0\n", (intmax_t)tp->tv_sec, (intmax_t)tp->tv_nsec); else printf("sched_rr_get_interval(-1, %p) = %s\n", tp, sprintrc(rc)); diff --git a/tests/semop.c b/tests/semop.c index f9b74440..a2ff2635 100644 --- a/tests/semop.c +++ b/tests/semop.c @@ -92,8 +92,8 @@ main(void) id, sem_b + 1, ts + 1, sprintrc(rc)); rc = semtimedop(bogus_semid, sem_b2, 2, ts); - printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u, {%jd, %jd}) = " - "%s\n", + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u, " + "{tv_sec=%jd, tv_nsec=%jd}) = %s\n", bogus_semid, sem_b2->sem_num, sem_b2->sem_op, sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", @@ -110,7 +110,8 @@ main(void) sem_b->sem_op = -1; if (semtimedop(id, sem_b, 1, ts)) perror_msg_and_skip("semtimedop, -1"); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, {%jd, %jd}) = 0\n", id, + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, " + "{tv_sec=%jd, tv_nsec=%jd}) = 0\n", id, (intmax_t) ts->tv_sec, (intmax_t) ts->tv_nsec); puts("+++ exited with 0 +++"); diff --git a/tests/strace-T.expected b/tests/strace-T.expected index 809b7ea1..1ea02046 100644 --- a/tests/strace-T.expected +++ b/tests/strace-T.expected @@ -1 +1 @@ -nanosleep\(\{1, 0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests/timer_xettime.c b/tests/timer_xettime.c index 877f7173..9eabbf08 100644 --- a/tests/timer_xettime.c +++ b/tests/timer_xettime.c @@ -75,8 +75,10 @@ main(void) if (syscall(__NR_timer_settime, tid, 0, &new.its, &old.its)) perror_msg_and_skip("timer_settime"); printf("timer_settime(%d, 0" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" + ", {it_interval={tv_sec=%jd, tv_nsec=%jd}" + ", it_value={tv_sec=%jd, tv_nsec=%jd}}" + ", {it_interval={tv_sec=%jd, tv_nsec=%jd}" + ", it_value={tv_sec=%jd, tv_nsec=%jd}}" ") = 0\n", tid, (intmax_t) new.its.it_interval.tv_sec, @@ -91,8 +93,8 @@ main(void) if (syscall(__NR_timer_gettime, tid, &old.its)) perror_msg_and_skip("timer_gettime"); printf("timer_gettime(%d" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ") = 0\n", + ", {it_interval={tv_sec=%jd, tv_nsec=%jd}" + ", it_value={tv_sec=%jd, tv_nsec=%jd}}) = 0\n", tid, (intmax_t) old.its.it_interval.tv_sec, (intmax_t) old.its.it_interval.tv_nsec, diff --git a/tests/timerfd_xettime.c b/tests/timerfd_xettime.c index 2742ec2b..ca7124ec 100644 --- a/tests/timerfd_xettime.c +++ b/tests/timerfd_xettime.c @@ -67,8 +67,10 @@ main(void) if (syscall(__NR_timerfd_settime, 0, 0, &new.its, &old.its)) perror_msg_and_skip("timerfd_settime"); printf("timerfd_settime(0, 0" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" + ", {it_interval={tv_sec=%jd, tv_nsec=%jd}" + ", it_value={tv_sec=%jd, tv_nsec=%jd}}" + ", {it_interval={tv_sec=%jd, tv_nsec=%jd}" + ", it_value={tv_sec=%jd, tv_nsec=%jd}}" ") = 0\n", (intmax_t) new.its.it_interval.tv_sec, (intmax_t) new.its.it_interval.tv_nsec, @@ -82,8 +84,8 @@ main(void) if (syscall(__NR_timerfd_gettime, 0, &old.its)) perror_msg_and_skip("timerfd_gettime"); printf("timerfd_gettime(0" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ") = 0\n", + ", {it_interval={tv_sec=%jd, tv_nsec=%jd}" + ", it_value={tv_sec=%jd, tv_nsec=%jd}}) = 0\n", (intmax_t) old.its.it_interval.tv_sec, (intmax_t) old.its.it_interval.tv_nsec, (intmax_t) old.its.it_value.tv_sec, diff --git a/tests/utimensat.c b/tests/utimensat.c index 24e91062..6d9faac2 100644 --- a/tests/utimensat.c +++ b/tests/utimensat.c @@ -43,7 +43,8 @@ static void print_ts(const struct timespec *ts) { - printf("{%ju, %ju}", (uintmax_t) ts->tv_sec, (uintmax_t) ts->tv_nsec); + printf("{tv_sec=%ju, tv_nsec=%ju}", (uintmax_t) ts->tv_sec, + (uintmax_t) ts->tv_nsec); } int