Livt packages

Livt.Net

Version 1.4.1

Ethernet, IPv4, TCP, UDP, ARP, TFTP, and Telnet networking components for Livt hardware.

Published files (163)

tests/EthernetFrameBuilderTest.lvt

namespace Livt.Net.Tests

using Livt.Net

/**
 * Checks explicit Ethernet addresses and EtherType against header octets.
 */
@Test
component EthernetFrameBuilderTest
{
	/**
	 * Compares emitted header fields with explicit expected octets; no timing property is asserted.
	 */
	@Test
	fn BuildsReplyEthernetHeader()
	{
		var request: byte[128]
		var clientMac: byte[6]
		clientMac[0] = 0x02
		clientMac[1] = 0x10
		clientMac[2] = 0x20
		clientMac[3] = 0x30
		clientMac[4] = 0x40
		clientMac[5] = 0x50
		var localMac: byte[6]
		localMac[0] = 0x02
		localMac[1] = 0xAA
		localMac[2] = 0xBB
		localMac[3] = 0xCC
		localMac[4] = 0xDD
		localMac[5] = 0xEE
		var etherTypeIpv4: byte[2]
		etherTypeIpv4[0] = 0x08
		etherTypeIpv4[1] = 0x00

		request[6] = clientMac[0]
		request[7] = clientMac[1]
		request[8] = clientMac[2]
		request[9] = clientMac[3]
		request[10] = clientMac[4]
		request[11] = clientMac[5]

		var destinationMac: byte[6] = [request[6], request[7], request[8], request[9], request[10], request[11]]
		assert EthernetFrameBuilder.GetByte(0, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0x02
		assert EthernetFrameBuilder.GetByte(5, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0x50
		assert EthernetFrameBuilder.GetByte(6, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0x02
		assert EthernetFrameBuilder.GetByte(7, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0xAA
		assert EthernetFrameBuilder.GetByte(11, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0xEE
		assert EthernetFrameBuilder.GetByte(12, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0x08
		assert EthernetFrameBuilder.GetByte(13, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0x00
		assert EthernetFrameBuilder.GetByte(14, localMac, destinationMac, NetworkOrder.Word(etherTypeIpv4[0], etherTypeIpv4[1])) == 0x00
	}
}