/* See LICENSE file for copyright and license details. */
#include "libsimple.h"
#ifndef TEST
extern inline int libsimple_cmptimespec(const struct timespec *, const struct timespec *);
#else
#include "test.h"
int
main(void)
{
struct timespec ts1, ts2;
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 999999999L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = 0, ts1.tv_nsec = 999999999L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 999999999L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 999999999L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 999999999L;
ts2.tv_sec = 0, ts2.tv_nsec = 999999999L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = 1, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 1, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 1, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 1, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = 1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = 1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = 1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = 1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 1, ts1.tv_nsec = 0L;
ts2.tv_sec = 1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = 1, ts1.tv_nsec = 1L;
ts2.tv_sec = 1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 1, ts1.tv_nsec = 0L;
ts2.tv_sec = 1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 1, ts1.tv_nsec = 1L;
ts2.tv_sec = 1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = -1, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = -1, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = -1, ts1.tv_nsec = 0L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = -1, ts1.tv_nsec = 1L;
ts2.tv_sec = 0, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = -1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = -1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = -1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = 0, ts1.tv_nsec = 1L;
ts2.tv_sec = -1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = -1, ts1.tv_nsec = 0L;
ts2.tv_sec = -1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = -1, ts1.tv_nsec = 1L;
ts2.tv_sec = -1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = -1, ts1.tv_nsec = 0L;
ts2.tv_sec = -1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = -1, ts1.tv_nsec = 1L;
ts2.tv_sec = -1, ts2.tv_nsec = 1L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = 0, ts1.tv_nsec = 0L;
ts2.tv_sec = TIME_MAX, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = 1, ts1.tv_nsec = 0L;
ts2.tv_sec = TIME_MAX, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
ts1.tv_sec = TIME_MAX, ts1.tv_nsec = 0L;
ts2.tv_sec = TIME_MAX, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 0);
ts1.tv_sec = 1, ts1.tv_nsec = 0L;
ts2.tv_sec = -1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == 1);
ts1.tv_sec = -1, ts1.tv_nsec = 0L;
ts2.tv_sec = 1, ts2.tv_nsec = 0L;
assert(libsimple_cmptimespec(&ts1, &ts2) == -1);
return 0;
}
#endif