summaryrefslogtreecommitdiffstats
path: root/contrib/ntp/tests/ntpd/t-ntp_signd.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ntp/tests/ntpd/t-ntp_signd.c')
-rw-r--r--contrib/ntp/tests/ntpd/t-ntp_signd.c116
1 files changed, 116 insertions, 0 deletions
diff --git a/contrib/ntp/tests/ntpd/t-ntp_signd.c b/contrib/ntp/tests/ntpd/t-ntp_signd.c
new file mode 100644
index 0000000..45972fb
--- /dev/null
+++ b/contrib/ntp/tests/ntpd/t-ntp_signd.c
@@ -0,0 +1,116 @@
+#include "config.h"
+
+#include "ntp.h"
+#include "ntp_calendar.h"
+#include "ntp_stdlib.h"
+
+#include "unity.h"
+
+#include "test-libntp.h"
+
+
+
+#define HAVE_NTP_SIGND
+
+#include "ntp_signd.c"
+
+extern int ux_socket_connect(const char *name);
+
+
+//MOCKED FUNCTIONS
+
+//this connect function overrides/mocks connect() from <sys/socket.h>
+int connect(int socket, const struct sockaddr *address,
+socklen_t address_len){
+ return 1;
+}
+
+//mocked write will only send 4 bytes at a time. This is so write_all can be properly tested
+ssize_t write(int fd, void const * buf, size_t len){
+ if(len >= 4){return 4;}
+ else return len;
+}
+
+ssize_t read(int fd, void * buf, size_t len){
+ if(len >= 4){return 4;}
+ else return len;
+}
+
+
+//END OF MOCKED FUNCTIONS
+
+int isGE(int a,int b){
+ if(a >= b) {return 1;}
+ else {return 0;}
+}
+
+
+void
+test_connect_incorrect_socket(void){
+ TEST_ASSERT_EQUAL(-1, ux_socket_connect(NULL));
+}
+
+void
+test_connect_correct_socket(void){
+
+
+
+ int temp = ux_socket_connect("/socket");
+
+ //risky, what if something is listening on :123, or localhost isnt 127.0.0.1?
+ //TEST_ASSERT_EQUAL(-1, ux_socket_connect("127.0.0.1:123"));
+
+ //printf("%d\n",temp);
+ TEST_ASSERT_TRUE(isGE(temp,0));
+
+ //write_all();
+ //char *socketName = "Random_Socket_Name";
+ //int length = strlen(socketName);
+
+}
+
+
+void
+test_write_all(void){
+ int fd = ux_socket_connect("/socket");
+ TEST_ASSERT_TRUE(isGE(fd,0));
+ char * str = "TEST123";
+ int temp = write_all(fd, str,strlen(str));
+ TEST_ASSERT_EQUAL(strlen(str),temp);
+}
+
+
+void
+test_send_packet(void){
+ int fd = ux_socket_connect("/socket");
+ char * str2 = "PACKET12345";
+ int temp = send_packet(fd, str2, strlen(str2));
+ TEST_ASSERT_EQUAL(0,temp);
+}
+
+
+void
+test_recv_packet(void){
+ int fd = ux_socket_connect("/socket");
+ int size = 256;
+ char str[size];
+
+ int temp = recv_packet(fd, &str, &size);
+ send_packet(fd, str, strlen(str));
+ TEST_ASSERT_EQUAL(0,temp); //0 because nobody sent us anything (yet!)
+}
+
+void
+test_send_via_ntp_signd(){
+
+ struct recvbuf *rbufp = (struct recvbuf *) malloc(sizeof(struct recvbuf));
+ int xmode = 1;
+ keyid_t xkeyid = 12345;
+ int flags =0;
+ struct pkt *xpkt = (struct pkt *) malloc(sizeof(struct pkt)); //defined in ntp.h
+
+ //send_via_ntp_signd(NULL,NULL,NULL,NULL,NULL); //doesn't work
+ send_via_ntp_signd(rbufp,xmode,xkeyid,flags,xpkt);
+
+
+}
OpenPOWER on IntegriCloud