TRACE_WRAPPER
uint32_t
trace_ppb_net_address_private_get_scope_id(const struct PP_NetAddress_Private *addr)
{
    trace_info("[PPB] {zilch} %s\n", __func__+6);
    return ppb_net_address_private_get_scope_id(addr);
}
TEST(ppb_net_address_private, ipv4_compose_decompose)
{
    const uint8_t ip[4] = {192, 168, 1, 2};
    const uint16_t port = 1234;
    uint8_t ip_out[sizeof(ip)] = {};
    struct PP_NetAddress_Private addr;

    ppb_net_address_private_create_from_ipv4_address(ip, port, &addr);

    ppb_net_address_private_get_address(&addr, ip_out, sizeof(ip_out));
    ASSERT_EQ(memcmp(ip, ip_out, sizeof(ip)), 0);

    ASSERT_EQ(ppb_net_address_private_get_port(&addr), port);
    ASSERT_EQ(ppb_net_address_private_get_family(&addr), PP_NETADDRESSFAMILY_PRIVATE_IPV4);
    ASSERT_EQ(ppb_net_address_private_get_scope_id(&addr), 0);
}
TEST(ppb_net_address_private, ipv6_compose_decompose)
{
    const uint8_t ip[16] = { 0x01, 0x23, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde,
                             0xef, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
    const uint16_t port = 3333;
    const uint32_t scope_id = 555;

    struct PP_NetAddress_Private addr;
    uint8_t ip_out[sizeof(ip)] = {};

    ppb_net_address_private_create_from_ipv6_address(ip, scope_id, port, &addr);

    ppb_net_address_private_get_address(&addr, ip_out, sizeof(ip_out));
    ASSERT_EQ(memcmp(ip, ip_out, sizeof(ip)), 0);

    ASSERT_EQ(ppb_net_address_private_get_port(&addr), port);
    ASSERT_EQ(ppb_net_address_private_get_family(&addr), PP_NETADDRESSFAMILY_PRIVATE_IPV6);
    ASSERT_EQ(ppb_net_address_private_get_scope_id(&addr), scope_id);
}