|
@@ -2,10 +2,12 @@
|
|
|
#include <sys/time.h>
|
|
|
|
|
|
int main() {
|
|
|
- struct timeval x = { .tv_sec = 0, .tv_usec = 15 };
|
|
|
- struct timeval y = { .tv_sec = 0, .tv_usec = 0 };
|
|
|
- struct timeval one = { .tv_sec = 0, .tv_usec = 1 };
|
|
|
- struct timeval max_usec = { .tv_sec = 0, .tv_usec = 999999 };
|
|
|
+ struct timeval x = { .tv_usec = 15 };
|
|
|
+ struct timeval y = { 0 };
|
|
|
+ struct timeval z = { 0 };
|
|
|
+ struct timeval one_usec = { .tv_usec = 1 };
|
|
|
+ struct timeval max_usec = { .tv_usec = 999999 };
|
|
|
+ struct timeval one_sec = { .tv_sec = 1 };
|
|
|
|
|
|
assert(!timerisset(&y));
|
|
|
assert(timerisset(&x));
|
|
@@ -13,14 +15,22 @@ int main() {
|
|
|
assert(!timerisset(&x));
|
|
|
|
|
|
assert(timercmp(&x, &y, ==));
|
|
|
- timeradd(&y, &one, &y);
|
|
|
- assert(!timercmp(&x, &y, ==));
|
|
|
- assert(timercmp(&x, &y, <));
|
|
|
+ timeradd(&y, &one_usec, &z);
|
|
|
+ assert(!timercmp(&x, &z, ==));
|
|
|
+ assert(timercmp(&x, &z, <));
|
|
|
|
|
|
- timeradd(&y, &max_usec, &y);
|
|
|
+ timeradd(&z, &max_usec, &y);
|
|
|
assert(y.tv_sec == 1);
|
|
|
assert(y.tv_usec == 0);
|
|
|
- timersub(&y, &one, &y);
|
|
|
- assert(y.tv_sec == 0);
|
|
|
+ timersub(&y, &one_usec, &z);
|
|
|
+ assert(z.tv_sec == 0);
|
|
|
+ assert(z.tv_usec == 999999);
|
|
|
+ timeradd(&z, &one_sec, &y);
|
|
|
+ assert(y.tv_sec == 1);
|
|
|
+ assert(y.tv_usec == 999999);
|
|
|
+ for (int i = 0; i < 3; i += 1) {
|
|
|
+ timersub(&y, &one_sec, &y);
|
|
|
+ }
|
|
|
+ assert(y.tv_sec == -2);
|
|
|
assert(y.tv_usec == 999999);
|
|
|
}
|