summaryrefslogtreecommitdiffstats
path: root/contrib/ntp/tests/libntp/refnumtoa.c
blob: 9db5fb11d999a2c82dc11f1924ae40a699b5beac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "config.h"

#include "ntp_net.h"
#include "ntp_refclock.h"

#include "unity.h"


/* Might need to be updated if a new refclock gets this id. */
static const int UNUSED_REFCLOCK_ID = 250;

void setUp(void);
void test_LocalClock(void);
void test_UnknownId(void);


void
setUp(void)
{
	init_lib();

	return;
}


void
test_LocalClock(void) {
#ifdef REFCLOCK		/* clockname() is useless otherwise */
	/* We test with a refclock address of type LOCALCLOCK.
	 * with id 8
	 */
	u_int32 addr = REFCLOCK_ADDR;
	addr |= REFCLK_LOCALCLOCK << 8;
	addr |= 0x8;

	sockaddr_u address;
	address.sa4.sin_family = AF_INET;
	address.sa4.sin_addr.s_addr = htonl(addr);

	char stringStart[100]= "";

	strcat(stringStart, clockname(REFCLK_LOCALCLOCK));
	strcat(stringStart, "(8)");

	char * expected = stringStart;

	TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
#else
	TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
#endif	/* REFCLOCK */
}

void
test_UnknownId(void) {
#ifdef REFCLOCK		/* refnumtoa() is useless otherwise */
	/* We test with a currently unused refclock ID */
	u_int32 addr = REFCLOCK_ADDR;
	addr |= UNUSED_REFCLOCK_ID << 8;
	addr |= 0x4;

	sockaddr_u address;
	address.sa4.sin_family = AF_INET;
	address.sa4.sin_addr.s_addr = htonl(addr);

	char stringStart[100]= "REFCLK(";
	char value[100] ;
	snprintf(value, sizeof(value), "%d", UNUSED_REFCLOCK_ID);
	strcat(stringStart,value);
	strcat(stringStart,",4)");
	char * expected = stringStart;

	TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address));
#else
	TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST");
#endif	/* REFCLOCK */
}
OpenPOWER on IntegriCloud