Home | History | Annotate | Line # | Download | only in libntp
tstotv.c revision 1.1.1.5
      1 /*	$NetBSD: tstotv.c,v 1.1.1.5 2016/01/08 21:21:33 christos Exp $	*/
      2 
      3 #include "config.h"
      4 
      5 #include "ntp_fp.h"
      6 #include "timevalops.h"
      7 
      8 #include "unity.h"
      9 
     10 void test_Seconds(void);
     11 void test_MicrosecondsExact(void);
     12 void test_MicrosecondsRounding(void);
     13 
     14 
     15 void
     16 test_Seconds(void) {
     17 	const l_fp input = {{50}, 0}; /* 50.0 s */
     18 	const struct timeval expected = {50, 0};
     19 	struct timeval actual;
     20 
     21 	TSTOTV(&input, &actual);
     22 
     23 	TEST_ASSERT_EQUAL(expected.tv_sec, actual.tv_sec);
     24 	TEST_ASSERT_EQUAL(expected.tv_usec, actual.tv_usec);
     25 }
     26 
     27 void
     28 test_MicrosecondsExact(void) {
     29 	const u_long HALF = 2147483648UL;
     30 	const l_fp input = {{50}, HALF}; /* 50.5 s */
     31 	const struct timeval expected = {50, 500000};
     32 	struct timeval actual;
     33 
     34 	TSTOTV(&input, &actual);
     35 
     36 	TEST_ASSERT_EQUAL(expected.tv_sec, actual.tv_sec);
     37 	TEST_ASSERT_EQUAL(expected.tv_usec, actual.tv_usec);
     38 
     39 }
     40 
     41 void
     42 test_MicrosecondsRounding(void) {
     43 	const l_fp input = {{50}, 3865471UL}; /* Should round to 50.0009 */
     44 	const struct timeval expected = {50, 900};
     45 	struct timeval actual;
     46 
     47 	TSTOTV(&input, &actual);
     48 
     49 	TEST_ASSERT_EQUAL(expected.tv_sec, actual.tv_sec);
     50 	TEST_ASSERT_EQUAL(expected.tv_usec, actual.tv_usec);
     51 }
     52