[riot-notifications] [RIOT-OS/RIOT] sys/net/dhcpv6: Add IA_NA support to the DHCPv6 client (#16228)

Jan Romann notifications at github.com
Tue Aug 10 23:35:58 CEST 2021

@JKRhb commented on this pull request.

> +
+def check_ia_pd_addr(ia_pd_addr, global_pfx):
+    """Check if the expected IA_PD address has been assigned"""
+    return ia_pd_addr.startswith(global_pfx)
+def check_global_addrs(ia_na_addr, ia_pd_addr, global_pfx):
+    """Perform IA_NA check for the first and IA_PD for the second address"""
+    return check_ia_na_addr(ia_na_addr) and check_ia_pd_addr(ia_pd_addr, global_pfx)
+def test_global_addrs(global_addr_1, global_addr_2, global_pfx):
+    """Assert that one global address is the IA_NA and the other one is the IA_PD address"""
+    result_1 = check_global_addrs(global_addr_1, global_addr_2, global_pfx)
+    result_2 = check_global_addrs(global_addr_2, global_addr_1, global_pfx)
+    assert result_1 != result_2

> with the extended return value of check_global_addrs providing addtional safety

Hmm, now that I think about it, the lazy evaluation might actually be more accurate to ensure correct behavior.

Consider that the first address is the correct IA_NA address and the other one is not the expected IA_PD address. In the case where only a single boolean value is returned, both `check_global_addrs` calls return `False` which leads to a failed assertion.

In the case with the dictionary (and I guess similarly in the case of the list) this would result in 

assert {"ia_na_check": True, "ia_pd_check": False} != {"ia_na_check": False, "ia_pd_check": False}

which should pass. I guess I would therefore either stick to the original solution or add

assert any(result_1.values()) != any(result_2.values())
as mentioned above.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210810/26f56dca/attachment.htm>

More information about the notifications mailing list