1 /* $NetBSD: refnumtoa.c,v 1.2 2020/05/25 20:47:36 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 setUp(void);
15 void test_LocalClock(void);
16 void test_UnknownId(void);
17
18
19 void
setUp(void)20 setUp(void)
21 {
22 init_lib();
23
24 return;
25 }
26
27
28 void
test_LocalClock(void)29 test_LocalClock(void) {
30 #ifdef REFCLOCK /* clockname() is useless otherwise */
31 /* We test with a refclock address of type LOCALCLOCK.
32 * with id 8
33 */
34 u_int32 addr = REFCLOCK_ADDR;
35 addr |= REFCLK_LOCALCLOCK << 8;
36 addr |= 0x8;
37
38 sockaddr_u address;
39 address.sa4.sin_family = AF_INET;
40 address.sa4.sin_addr.s_addr = htonl(addr);
41
42 char stringStart[100]= "";
43
44 strcat(stringStart, clockname(REFCLK_LOCALCLOCK));
45 strcat(stringStart, "(8)");
46
47 char * expected = stringStart;
48
49 TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
50 #else
51 TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
52 #endif /* REFCLOCK */
53 }
54
55 void
test_UnknownId(void)56 test_UnknownId(void) {
57 #ifdef REFCLOCK /* refnumtoa() is useless otherwise */
58 /* We test with a currently unused refclock ID */
59 u_int32 addr = REFCLOCK_ADDR;
60 addr |= UNUSED_REFCLOCK_ID << 8;
61 addr |= 0x4;
62
63 sockaddr_u address;
64 address.sa4.sin_family = AF_INET;
65 address.sa4.sin_addr.s_addr = htonl(addr);
66
67 char stringStart[100]= "REFCLK(";
68 char value[100] ;
69 snprintf(value, sizeof(value), "%d", UNUSED_REFCLOCK_ID);
70 strcat(stringStart,value);
71 strcat(stringStart,",4)");
72 char * expected = stringStart;
73
74 TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
75 #else
76 TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
77 #endif /* REFCLOCK */
78 }
79