/* See LICENSE file for copyright and license details. */
#include "common.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