aboutsummaryrefslogblamecommitdiffstats
path: root/cmptimeval.c
blob: 7324988cfad000181b0f5ff61756fb9cf450dcbf (plain) (tree)























































































































































































































































                                                                                       
/* See LICENSE file for copyright and license details. */
#include "libsimple.h"
#ifndef TEST


extern inline int libsimple_cmptimeval(const struct timeval *, const struct timeval *);


#else
#include "test.h"

int
main(void)
{
	struct timeval tv1, tv2;

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 999999L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 999999L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 999999L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 999999L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 999999L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 999999L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = 0;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 1L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 1L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = 0;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = TIME_MAX;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = TIME_MAX;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	tv1.tv_sec  = TIME_MAX;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = TIME_MAX;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 0);

	tv1.tv_sec  = 1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = -1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == 1);

	tv1.tv_sec  = -1;
	tv1.tv_usec = 0L;
	tv2.tv_sec  = 1;
	tv2.tv_usec = 0L;
	assert(libsimple_cmptimeval(&tv1, &tv2) == -1);

	return 0;
}

#endif