Tools/NetTest - Add a runner to test networking stack
[tpg/acess2.git] / Tools / NetTest_Runner / test_arp.c
diff --git a/Tools/NetTest_Runner/test_arp.c b/Tools/NetTest_Runner/test_arp.c
new file mode 100644 (file)
index 0000000..e97e2c3
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ */
+#include "test.h"
+#include "tests.h"
+#include "net.h"
+#include "stack.h"
+#include "arp.h"
+
+bool Test_ARP_Basic(void)
+{
+       TEST_SETNAME(__func__);
+       size_t  rxlen;
+       char rxbuf[MTU];
+       
+       // Request test machine's IP
+       ARP_SendRequest(0, BLOB(TEST_IP));
+       TEST_ASSERT( rxlen = Net_Receive(0, sizeof(rxbuf), rxbuf, 1000) );
+       TEST_ASSERT( ARP_Pkt_IsResponse(rxlen, rxbuf, BLOB(TEST_IP), BLOB(TEST_MAC)) );
+
+       // Request host machine's IP
+       ARP_SendRequest(0, HOST_IP_STR);
+       TEST_ASSERT( Net_Receive(0, sizeof(rxbuf), rxbuf, 1000) == 0 );
+
+       #if 0   
+       // Ask test machine to request our IP
+       Stack_SendCommand("arprequest "HOST_IP_STR);
+       TEST_ASSERT( rxlen = Net_Receive(0, sizeof(rxbuf), rxbuf, 1000) );
+       TEST_ASSERT( ARP_Pkt_IsRequest(rxlen, rxbuf, HOST_IP) );
+
+       // Respond
+       ARP_SendResponse(0, HOST_IP, HOST_MAC);
+       
+       // Ask test machine to request our IP again (expecting nothing)
+       Stack_SendCommand("arprequest "HOST_IP_STR);
+       TEST_ASSERT( !Net_Receive(0, sizeof(rxbuf), rxbuf, 1000) );
+       #endif
+       
+       return true;
+}

UCC git Repository :: git.ucc.asn.au