1290001Sglebius#include "config.h" 2290001Sglebius 3290001Sglebius#include "ntp_net.h" 4290001Sglebius#include "ntp_refclock.h" 5290001Sglebius 6290001Sglebius#include "unity.h" 7290001Sglebius 8290001Sglebius 9290001Sglebius/* Might need to be updated if a new refclock gets this id. */ 10290001Sglebiusstatic const int UNUSED_REFCLOCK_ID = 250; 11290001Sglebius 12293896Sglebiusvoid setUp(void); 13290001Sglebiusvoid test_LocalClock(void); 14290001Sglebiusvoid test_UnknownId(void); 15290001Sglebius 16290001Sglebius 17290001Sglebiusvoid 18293896SglebiussetUp(void) 19293896Sglebius{ 20293896Sglebius init_lib(); 21293896Sglebius 22293896Sglebius return; 23293896Sglebius} 24293896Sglebius 25293896Sglebius 26293896Sglebiusvoid 27290001Sglebiustest_LocalClock(void) { 28290001Sglebius#ifdef REFCLOCK /* clockname() is useless otherwise */ 29290001Sglebius /* We test with a refclock address of type LOCALCLOCK. 30290001Sglebius * with id 8 31290001Sglebius */ 32290001Sglebius u_int32 addr = REFCLOCK_ADDR; 33290001Sglebius addr |= REFCLK_LOCALCLOCK << 8; 34290001Sglebius addr |= 0x8; 35290001Sglebius 36290001Sglebius sockaddr_u address; 37290001Sglebius address.sa4.sin_family = AF_INET; 38290001Sglebius address.sa4.sin_addr.s_addr = htonl(addr); 39293896Sglebius 40290001Sglebius char stringStart[100]= ""; 41290001Sglebius 42290001Sglebius strcat(stringStart, clockname(REFCLK_LOCALCLOCK)); 43290001Sglebius strcat(stringStart, "(8)"); 44290001Sglebius 45290001Sglebius char * expected = stringStart; 46290001Sglebius 47290001Sglebius TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address)); 48293896Sglebius#else 49290001Sglebius TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST"); 50290001Sglebius#endif /* REFCLOCK */ 51290001Sglebius} 52290001Sglebius 53290001Sglebiusvoid 54290001Sglebiustest_UnknownId(void) { 55290001Sglebius#ifdef REFCLOCK /* refnumtoa() is useless otherwise */ 56290001Sglebius /* We test with a currently unused refclock ID */ 57290001Sglebius u_int32 addr = REFCLOCK_ADDR; 58290001Sglebius addr |= UNUSED_REFCLOCK_ID << 8; 59290001Sglebius addr |= 0x4; 60290001Sglebius 61290001Sglebius sockaddr_u address; 62290001Sglebius address.sa4.sin_family = AF_INET; 63290001Sglebius address.sa4.sin_addr.s_addr = htonl(addr); 64293896Sglebius 65290001Sglebius char stringStart[100]= "REFCLK("; 66293896Sglebius char value[100] ; 67290001Sglebius snprintf(value, sizeof(value), "%d", UNUSED_REFCLOCK_ID); 68290001Sglebius strcat(stringStart,value); 69290001Sglebius strcat(stringStart,",4)"); 70290001Sglebius char * expected = stringStart; 71290001Sglebius 72290001Sglebius TEST_ASSERT_EQUAL_STRING(expected, refnumtoa(&address)); 73293896Sglebius#else 74290001Sglebius TEST_IGNORE_MESSAGE("REFCLOCK NOT DEFINED, SKIPPING TEST"); 75290001Sglebius#endif /* REFCLOCK */ 76290001Sglebius} 77