xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/refnumtoa.c (revision 63aea4bd5b445e491ff0389fe27ec78b3099dba3)
1 /*	$NetBSD: refnumtoa.c,v 1.1.1.3 2015/10/23 17:47:45 christos Exp $	*/
2 
3 #include "config.h"
4 
5 #include "ntp_net.h"
6 #include "ntp_refclock.h"
7 
8 #include "unity.h"
9 
10 
11 /* Might need to be updated if a new refclock gets this id. */
12 static const int UNUSED_REFCLOCK_ID = 250;
13 
14 void test_LocalClock(void);
15 void test_UnknownId(void);
16 
17 
18 void
19 test_LocalClock(void) {
20 #ifdef REFCLOCK		/* clockname() is useless otherwise */
21 	/* We test with a refclock address of type LOCALCLOCK.
22 	 * with id 8
23 	 */
24 	u_int32 addr = REFCLOCK_ADDR;
25 	addr |= REFCLK_LOCALCLOCK << 8;
26 	addr |= 0x8;
27 
28 	sockaddr_u address;
29 	address.sa4.sin_family = AF_INET;
30 	address.sa4.sin_addr.s_addr = htonl(addr);
31 
32 	char stringStart[100]= "";
33 
34 	strcat(stringStart, clockname(REFCLK_LOCALCLOCK));
35 	strcat(stringStart, "(8)");
36 
37 	char * expected = stringStart;
38 
39 	TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
40 #else
41 	TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
42 #endif	/* REFCLOCK */
43 }
44 
45 void
46 test_UnknownId(void) {
47 #ifdef REFCLOCK		/* refnumtoa() is useless otherwise */
48 	/* We test with a currently unused refclock ID */
49 	u_int32 addr = REFCLOCK_ADDR;
50 	addr |= UNUSED_REFCLOCK_ID << 8;
51 	addr |= 0x4;
52 
53 	sockaddr_u address;
54 	address.sa4.sin_family = AF_INET;
55 	address.sa4.sin_addr.s_addr = htonl(addr);
56 
57 	char stringStart[100]= "REFCLK(";
58 	char value[100] ;
59 	snprintf(value, sizeof(value), "%d", UNUSED_REFCLOCK_ID);
60 	strcat(stringStart,value);
61 	strcat(stringStart,",4)");
62 	char * expected = stringStart;
63 
64 	TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
65 #else
66 	TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
67 #endif	/* REFCLOCK */
68 }
69