summaryrefslogtreecommitdiff
path: root/tools/regression
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2018-07-30 15:46:40 +0000
committerAlan Somers <asomers@FreeBSD.org>2018-07-30 15:46:40 +0000
commit6040822c4e20fb46638ecaaad543fc56f6ec2b0f (patch)
tree133352663bf8c98c65abf581f6a4a8769325ca09 /tools/regression
parent19fe43f796f3d962b3bf023a4484a82d7b2a5711 (diff)
Notes
Diffstat (limited to 'tools/regression')
-rw-r--r--tools/regression/posixsem/posixsem.c35
-rw-r--r--tools/regression/sockets/udp_pingpong/udp_pingpong.c41
-rw-r--r--tools/regression/sockets/unix_cmsg/uc_check_time.c18
3 files changed, 13 insertions, 81 deletions
diff --git a/tools/regression/posixsem/posixsem.c b/tools/regression/posixsem/posixsem.c
index 693a923ab5e62..9d0465682951f 100644
--- a/tools/regression/posixsem/posixsem.c
+++ b/tools/regression/posixsem/posixsem.c
@@ -55,35 +55,6 @@ __FBSDID("$FreeBSD$");
#include "test.h"
-/* Cut and pasted from kernel header, bah! */
-
-/* Operations on timespecs */
-#define timespecclear(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0)
-#define timespecisset(tvp) ((tvp)->tv_sec || (tvp)->tv_nsec)
-#define timespeccmp(tvp, uvp, cmp) \
- (((tvp)->tv_sec == (uvp)->tv_sec) ? \
- ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \
- ((tvp)->tv_sec cmp (uvp)->tv_sec))
-#define timespecadd(vvp, uvp) \
- do { \
- (vvp)->tv_sec += (uvp)->tv_sec; \
- (vvp)->tv_nsec += (uvp)->tv_nsec; \
- if ((vvp)->tv_nsec >= 1000000000) { \
- (vvp)->tv_sec++; \
- (vvp)->tv_nsec -= 1000000000; \
- } \
- } while (0)
-#define timespecsub(vvp, uvp) \
- do { \
- (vvp)->tv_sec -= (uvp)->tv_sec; \
- (vvp)->tv_nsec -= (uvp)->tv_nsec; \
- if ((vvp)->tv_nsec < 0) { \
- (vvp)->tv_sec--; \
- (vvp)->tv_nsec += 1000000000; \
- } \
- } while (0)
-
-
#define TEST_PATH "/tmp/posixsem_regression_test"
#define ELAPSED(elapsed, limit) (abs((elapsed) - (limit)) < 100)
@@ -791,7 +762,7 @@ timedwait(semid_t id, u_int msec, u_int *delta, int error)
}
end.tv_sec = msec / 1000;
end.tv_nsec = msec % 1000 * 1000000;
- timespecadd(&end, &start);
+ timespecadd(&end, &start, &end);
if (ksem_timedwait(id, &end) < 0) {
if (errno != error) {
fail_errno("ksem_timedwait");
@@ -805,7 +776,7 @@ timedwait(semid_t id, u_int msec, u_int *delta, int error)
fail_errno("clock_gettime(CLOCK_REALTIME)");
return (-1);
}
- timespecsub(&end, &start);
+ timespecsub(&end, &start, &end);
*delta = end.tv_nsec / 1000000;
*delta += end.tv_sec * 1000;
return (0);
@@ -944,7 +915,7 @@ testwait(semid_t id, u_int *delta)
fail_errno("clock_gettime(CLOCK_REALTIME)");
return (-1);
}
- timespecsub(&end, &start);
+ timespecsub(&end, &start, &end);
*delta = end.tv_nsec / 1000000;
*delta += end.tv_sec * 1000;
return (0);
diff --git a/tools/regression/sockets/udp_pingpong/udp_pingpong.c b/tools/regression/sockets/udp_pingpong/udp_pingpong.c
index 25750b0c3c0d9..fc585d275db47 100644
--- a/tools/regression/sockets/udp_pingpong/udp_pingpong.c
+++ b/tools/regression/sockets/udp_pingpong/udp_pingpong.c
@@ -106,31 +106,6 @@ struct rtt {
#define NSEC_MAX 1000000000L
#define NSEC_IN_USEC 1000L
-#define timespecsub2(r, v, u) \
- do { \
- SEC(r) = SEC(v) - SEC(u); \
- NSEC(r) = NSEC(v) - NSEC(u); \
- if (NSEC(r) < 0 && (SEC(r) > 0 || NSEC(r) <= -NSEC_MAX)) { \
- SEC(r)--; \
- NSEC(r) += NSEC_MAX; \
- } \
- } while (0);
-
-#define timespecadd2(r, v, u) \
- do { \
- SEC(r) = SEC(v) + SEC(u); \
- NSEC(r) = NSEC(v) + NSEC(u); \
- if (NSEC(r) >= NSEC_MAX) { \
- SEC(r)++; \
- NSEC(r) -= NSEC_MAX; \
- } \
- } while (0);
-
-#define timespeccmp(t, c, u) \
- ((SEC(t) == SEC(u)) ? \
- (NSEC(t) c NSEC(u)) : \
- (SEC(t) c SEC(u)))
-
#define timeval2timespec(tv, ts) \
do { \
SEC(ts) = (tv)->tv_sec; \
@@ -536,10 +511,10 @@ static void
calc_rtt(struct test_pkt *tpp, struct rtt *rttp)
{
- timespecsub2(&rttp->a2b, &tpp->tss[1].recvd, &tpp->tss[0].sent);
- timespecsub2(&rttp->b2a, &tpp->tss[0].recvd, &tpp->tss[1].sent);
- timespecadd2(&rttp->a2b_b2a, &rttp->a2b, &rttp->b2a);
- timespecsub2(&rttp->e2e, &tpp->tss[0].recvd, &tpp->tss[0].sent);
+ timespecsub(&tpp->tss[1].recvd, &tpp->tss[0].sent, &rttp->a2b);
+ timespecsub(&tpp->tss[0].recvd, &tpp->tss[1].sent, &rttp->b2a);
+ timespecadd(&rttp->a2b, &rttp->b2a, &rttp->a2b_b2a);
+ timespecsub(&tpp->tss[0].recvd, &tpp->tss[0].sent, &rttp->e2e);
}
static void
@@ -604,13 +579,13 @@ test_run(int ts_type, int use_ipv6, int use_recvmsg, const char *name)
continue;
}
calc_rtt(&test_ctx.test_pkts[i], &rtt);
- if (!timespeccmp(&rtt.e2e, >, &rtt.a2b_b2a))
+ if (!timespeccmp(&rtt.e2e, &rtt.a2b_b2a, >))
errx(1, "end-to-end trip time is too small");
- if (!timespeccmp(&rtt.e2e, <, &max_ts))
+ if (!timespeccmp(&rtt.e2e, &max_ts, <))
errx(1, "end-to-end trip time is too large");
- if (!timespeccmp(&rtt.a2b, >, &zero_ts))
+ if (!timespeccmp(&rtt.a2b, &zero_ts, >))
errx(1, "A2B trip time is not positive");
- if (!timespeccmp(&rtt.b2a, >, &zero_ts))
+ if (!timespeccmp(&rtt.b2a, &zero_ts, >))
errx(1, "B2A trip time is not positive");
}
teardown_udp(&test_ctx);
diff --git a/tools/regression/sockets/unix_cmsg/uc_check_time.c b/tools/regression/sockets/unix_cmsg/uc_check_time.c
index 5b7dfe11bb895..682cd442077d5 100644
--- a/tools/regression/sockets/unix_cmsg/uc_check_time.c
+++ b/tools/regression/sockets/unix_cmsg/uc_check_time.c
@@ -35,20 +35,6 @@ __FBSDID("$FreeBSD$");
static const struct timeval max_diff_tv = {.tv_sec = 1, .tv_usec = 0};
static const struct timespec max_diff_ts = {.tv_sec = 1, .tv_nsec = 0};
-#define timespeccmp(tvp, uvp, cmp) \
- (((tvp)->tv_sec == (uvp)->tv_sec) ? \
- ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \
- ((tvp)->tv_sec cmp (uvp)->tv_sec))
-#define timespecsub(vvp, uvp) \
- do { \
- (vvp)->tv_sec -= (uvp)->tv_sec; \
- (vvp)->tv_nsec -= (uvp)->tv_nsec; \
- if ((vvp)->tv_nsec < 0) { \
- (vvp)->tv_sec--; \
- (vvp)->tv_nsec += 1000000000; \
- } \
- } while (0)
-
int
uc_check_bintime(const struct bintime *mt)
{
@@ -79,7 +65,7 @@ uc_check_timespec_real(const struct timespec *bt)
if (clock_gettime(CLOCK_REALTIME, &ct) < 0)
return (-1);
- timespecsub(&ct, bt);
+ timespecsub(&ct, bt, &ct);
if (!timespeccmp(&ct, &max_diff_ts, <))
return (-1);
@@ -93,7 +79,7 @@ uc_check_timespec_mono(const struct timespec *bt)
if (clock_gettime(CLOCK_MONOTONIC, &ct) < 0)
return (-1);
- timespecsub(&ct, bt);
+ timespecsub(&ct, bt, &ct);
if (!timespeccmp(&ct, &max_diff_ts, <))
return (-1);