From b3721656048124473fba2ce0b1884f04268d527e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20De=20Keersmaeker?=
 <francois.dekeersmaeker@uclouvain.be>
Date: Sat, 14 Dec 2024 17:27:10 +0100
Subject: [PATCH] Unit tests: anonymize ARP

---
 test/test_mac.py | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/test/test_mac.py b/test/test_mac.py
index 098032f..871b8eb 100644
--- a/test/test_mac.py
+++ b/test/test_mac.py
@@ -106,3 +106,42 @@ def test_anonymize_ether_uaa() -> None:
     assert ether_laa.src[10:] != mac_uaa[10:]
     assert ether_laa.dst.startswith(mac_uaa[:8])
     assert ether_laa.dst[10:] != mac_uaa[10:]
+
+
+def test_anonymize_arp_multicast() -> None:
+    """
+    Test the function `anonymize_arp`,
+    with multicast addresses.
+    """
+    arp_multicast = ARP(hwsrc=mac_multicast, hwdst=mac_multicast)
+    anonymize_arp(arp_multicast)
+    assert arp_multicast.hwsrc == mac_multicast
+    assert arp_multicast.hwdst == mac_multicast
+
+
+def test_anonymize_arp_laa() -> None:
+    """
+    Test the function `anonymize_arp`,
+    with locally administered addresses.
+    """
+    arp_laa = ARP(hwsrc=mac_laa, hwdst=mac_laa)
+    anonymize_arp(arp_laa)
+    assert arp_laa.hwsrc != mac_laa
+    assert get_ig_bit(arp_laa.hwsrc) == get_ig_bit(mac_laa)
+    assert get_ul_bit(arp_laa.hwsrc) == get_ul_bit(mac_laa)
+    assert arp_laa.hwdst != mac_laa
+    assert get_ig_bit(arp_laa.hwdst) == get_ig_bit(mac_laa)
+    assert get_ul_bit(arp_laa.hwdst) == get_ul_bit(mac_laa)
+
+
+def test_anonymize_arp_uaa() -> None:
+    """
+    Test the function `anonymize_arp`,
+    with universally administered addresses.
+    """
+    arp_uaa = ARP(hwsrc=mac_uaa, hwdst=mac_uaa)
+    anonymize_arp(arp_uaa)
+    assert arp_uaa.hwsrc.startswith(mac_uaa[:8])
+    assert arp_uaa.hwsrc[10:] != mac_uaa[10:]
+    assert arp_uaa.hwdst.startswith(mac_uaa[:8])
+    assert arp_uaa.hwdst[10:] != mac_uaa[10:]
-- 
GitLab