1 /* $NetBSD: refnumtoa.c,v 1.3 2024/08/18 20:47:27 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 void setUp(void);
12 void test_LocalClock(void);
13 void test_UnknownId(void);
14
15
16 void
setUp(void)17 setUp(void)
18 {
19 init_lib();
20
21 return;
22 }
23
24
25 void
test_LocalClock(void)26 test_LocalClock(void) {
27 #ifdef REFCLOCK /* clockname() is useless otherwise */
28 /* We test with a refclock address of type LOCALCLOCK.
29 * with unit id 8
30 */
31 const u_char unit = 8;
32 u_int32 addr;
33 char expected[100];
34 sockaddr_u address;
35
36 addr = REFCLOCK_ADDR;
37 addr |= REFCLK_LOCALCLOCK << 8;
38 addr |= unit;
39
40 AF(&address) = AF_INET;
41 NSRCADR(&address) = htonl(addr);
42 snprintf(expected, sizeof(expected), "%s(%u)",
43 clockname(REFCLK_LOCALCLOCK), unit);
44
45 TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
46 #else
47 TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
48 #endif /* REFCLOCK */
49 }
50
51 void
test_UnknownId(void)52 test_UnknownId(void) {
53 #ifdef REFCLOCK /* refnumtoa() is useless otherwise */
54 /* We test with a currently unused refclock ID */
55 /* Might need to be updated if a new refclock gets this id. */
56 const u_char UNUSED_REFCLOCK_ID = 250;
57 const u_char unit = 4;
58 u_int32 addr;
59 char expected[100];
60 sockaddr_u address;
61
62 addr = REFCLOCK_ADDR;
63 addr |= UNUSED_REFCLOCK_ID << 8;
64 addr |= unit;
65
66 AF(&address) = AF_INET;
67 NSRCADR(&address) = htonl(addr);
68
69 snprintf(expected, sizeof(expected), "REFCLK(%u,%u)",
70 UNUSED_REFCLOCK_ID, unit);
71
72 TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
73 #else
74 TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
75 #endif /* REFCLOCK */
76 }
77