On Thu, Apr 3, 2014 at 10:13 AM, Susant Sahani <sus...@redhat.com> wrote: > I am trying to fix the broken test cases which was working previously . > With the new refactorization and I tryied to fix them with the attached > paatch does not work . Not sure I am doing something wrong or sd-rtnl is > broken.
Thanks! I forgot to fix up this stuff. I had to fix up your patch as seen below to make the tests pass again. Feel free to ask if the reasoning behind any of the changes is unclear. Cheers, Tom commit 9295158ea6b04cd7fc0ac6083d4a40c9b733821a Author: Tom Gundersen <t...@jklm.no> Date: Thu Apr 3 18:06:45 2014 +0200 sd-rtnl: fixup manual tests diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c b/src/libsystemd/sd-rtnl/rtnl-types.c index b7aa499..27b7d04 100644 --- a/src/libsystemd/sd-rtnl/rtnl-types.c +++ b/src/libsystemd/sd-rtnl/rtnl-types.c @@ -101,30 +101,19 @@ static const NLType rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = { #endif }; -static const NLType rtnl_link_info_data_ipip_tunnel_types[IFLA_IPTUN_MAX + 1] = { - [IFLA_IPTUN_LINK] = { .type = NLA_U32 }, - [IFLA_IPTUN_LOCAL] = { .type = NLA_U32 }, - [IFLA_IPTUN_REMOTE] = { .type = NLA_U32 }, - [IFLA_IPTUN_TTL] = { .type = NLA_U8 }, - [IFLA_IPTUN_TOS] = { .type = NLA_U8 }, - [IFLA_IPTUN_PMTUDISC] = { .type = NLA_U8 }, -}; - -static const NLType rtnl_link_info_data_ipip6_tunnel_types[IFLA_IPTUN_MAX + 1] = { - [IFLA_IPTUN_LINK] = { .type = NLA_U32 }, - [IFLA_IPTUN_LOCAL] = { .type = NLA_U32 }, - [IFLA_IPTUN_REMOTE] = { .type = NLA_U32 }, - [IFLA_IPTUN_TTL] = { .type = NLA_U8 }, - [IFLA_IPTUN_TOS] = { .type = NLA_U8 }, - [IFLA_IPTUN_PMTUDISC] = { .type = NLA_U8 }, - [IFLA_IPTUN_FLAGS] = { .type = NLA_U16 }, - [IFLA_IPTUN_PROTO] = { .type = NLA_U8 }, - /* - [IFLA_IPTUN_6RD_PREFIX] = { .len = sizeof(struct in6_addr) }, - [IFLA_IPTUN_6RD_RELAY_PREFIX] = { .type = NLA_U32 }, - [IFLA_IPTUN_6RD_PREFIXLEN] = { .type = NLA_U16 }, +static const NLType rtnl_link_info_data_iptun_types[IFLA_IPTUN_MAX + 1] = { + [IFLA_IPTUN_LINK] = { .type = NLA_U32 }, + [IFLA_IPTUN_LOCAL] = { .type = NLA_U32 }, + [IFLA_IPTUN_REMOTE] = { .type = NLA_U32 }, + [IFLA_IPTUN_TTL] = { .type = NLA_U8 }, + [IFLA_IPTUN_TOS] = { .type = NLA_U8 }, + [IFLA_IPTUN_PMTUDISC] = { .type = NLA_U8 }, + [IFLA_IPTUN_FLAGS] = { .type = NLA_U16 }, + [IFLA_IPTUN_PROTO] = { .type = NLA_U8 }, + [IFLA_IPTUN_6RD_PREFIX] = { .type = NLA_IN_ADDR }, + [IFLA_IPTUN_6RD_RELAY_PREFIX] = { .type = NLA_U32 }, + [IFLA_IPTUN_6RD_PREFIXLEN] = { .type = NLA_U16 }, [IFLA_IPTUN_6RD_RELAY_PREFIXLEN] = { .type = NLA_U16 }, - */ }; typedef enum NLUnionLinkInfoData { @@ -134,7 +123,7 @@ typedef enum NLUnionLinkInfoData { NL_UNION_LINK_INFO_DATA_VETH, NL_UNION_LINK_INFO_DATA_MACVLAN, NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL, - NL_UNION_LINK_INFO_DATA_IPIP6_TUNNEL, + NL_UNION_LINK_INFO_DATA_SIT_TUNNEL, _NL_UNION_LINK_INFO_DATA_MAX, _NL_UNION_LINK_INFO_DATA_INVALID = -1 } NLUnionLinkInfoData; @@ -142,33 +131,34 @@ typedef enum NLUnionLinkInfoData { const char *nl_union_link_info_data_to_string(NLUnionLinkInfoData p) _const_; NLUnionLinkInfoData nl_union_link_info_data_from_string(const char *p) _pure_; +/* these strings must match the .kind entries in the kernel */ static const char* const nl_union_link_info_data_table[_NL_UNION_LINK_INFO_DATA_MAX] = { [NL_UNION_LINK_INFO_DATA_BOND] = "bond", [NL_UNION_LINK_INFO_DATA_BRIDGE] = "bridge", [NL_UNION_LINK_INFO_DATA_VLAN] = "vlan", [NL_UNION_LINK_INFO_DATA_VETH] = "veth", [NL_UNION_LINK_INFO_DATA_MACVLAN] = "macvlan", - [NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = "ipip_tunnel", - [NL_UNION_LINK_INFO_DATA_IPIP6_TUNNEL] = "ipip6_tunnel", + [NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = "ipip", + [NL_UNION_LINK_INFO_DATA_SIT_TUNNEL] = "sit", }; DEFINE_STRING_TABLE_LOOKUP(nl_union_link_info_data, NLUnionLinkInfoData); static const NLTypeSystem rtnl_link_info_data_type_systems[_NL_UNION_LINK_INFO_DATA_MAX] = { - [NL_UNION_LINK_INFO_DATA_BOND] = { .max = ELEMENTSOF(rtnl_link_info_data_bond_types) - 1, - .types = rtnl_link_info_data_bond_types }, - [NL_UNION_LINK_INFO_DATA_BRIDGE] = { .max = ELEMENTSOF(rtnl_link_info_data_bridge_types) - 1, - .types = rtnl_link_info_data_bridge_types }, - [NL_UNION_LINK_INFO_DATA_VLAN] = { .max = ELEMENTSOF(rtnl_link_info_data_vlan_types) - 1, - .types = rtnl_link_info_data_vlan_types }, - [NL_UNION_LINK_INFO_DATA_VETH] = { .max = ELEMENTSOF(rtnl_link_info_data_veth_types) - 1, - .types = rtnl_link_info_data_veth_types }, - [NL_UNION_LINK_INFO_DATA_MACVLAN] = { .max = ELEMENTSOF(rtnl_link_info_data_macvlan_types) - 1, - .types = rtnl_link_info_data_macvlan_types }, - [NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = { .max = ELEMENTSOF(rtnl_link_info_data_ipip_tunnel_types) - 1, - .types = rtnl_link_info_data_ipip_tunnel_types }, - [NL_UNION_LINK_INFO_DATA_IPIP6_TUNNEL] = { .max = ELEMENTSOF(rtnl_link_info_data_ipip6_tunnel_types) - 1, - .types = rtnl_link_info_data_ipip6_tunnel_types }, + [NL_UNION_LINK_INFO_DATA_BOND] = { .max = ELEMENTSOF(rtnl_link_info_data_bond_types) - 1, + .types = rtnl_link_info_data_bond_types }, + [NL_UNION_LINK_INFO_DATA_BRIDGE] = { .max = ELEMENTSOF(rtnl_link_info_data_bridge_types) - 1, + .types = rtnl_link_info_data_bridge_types }, + [NL_UNION_LINK_INFO_DATA_VLAN] = { .max = ELEMENTSOF(rtnl_link_info_data_vlan_types) - 1, + .types = rtnl_link_info_data_vlan_types }, + [NL_UNION_LINK_INFO_DATA_VETH] = { .max = ELEMENTSOF(rtnl_link_info_data_veth_types) - 1, + .types = rtnl_link_info_data_veth_types }, + [NL_UNION_LINK_INFO_DATA_MACVLAN] = { .max = ELEMENTSOF(rtnl_link_info_data_macvlan_types) - 1, + .types = rtnl_link_info_data_macvlan_types }, + [NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = { .max = ELEMENTSOF(rtnl_link_info_data_iptun_types) - 1, + .types = rtnl_link_info_data_iptun_types }, + [NL_UNION_LINK_INFO_DATA_SIT_TUNNEL] = { .max = ELEMENTSOF(rtnl_link_info_data_iptun_types) - 1, + .types = rtnl_link_info_data_iptun_types }, }; static const NLTypeSystemUnion rtnl_link_info_data_type_system_union = { diff --git a/src/test/test-rtnl-manual.c b/src/test/test-rtnl-manual.c index 2a77bf7..c8133db 100644 --- a/src/test/test-rtnl-manual.c +++ b/src/test/test-rtnl-manual.c @@ -87,10 +87,9 @@ static int test_tunnel_configure(sd_rtnl *rtnl) { assert_se(sd_rtnl_message_append_string(m, IFLA_IFNAME, "ipip-tunnel") >= 0); assert_se(sd_rtnl_message_append_u32(m, IFLA_MTU, 1234)>= 0); - assert_se(sd_rtnl_message_open_container_union(m, IFLA_LINKINFO, "ipip_tunnel") >= 0); - assert_se(sd_rtnl_message_append_string(m, IFLA_INFO_KIND, "ipip") >= 0); + assert_se(sd_rtnl_message_open_container(m, IFLA_LINKINFO) >= 0); - assert_se(sd_rtnl_message_open_container(m, IFLA_INFO_DATA) >= 0); + assert_se(sd_rtnl_message_open_container_union(m, IFLA_INFO_DATA, "ipip") >= 0); inet_pton(AF_INET, "192.168.21.1", &local.s_addr); assert_se(sd_rtnl_message_append_u32(m, IFLA_IPTUN_LOCAL, local.s_addr) >= 0); @@ -116,10 +115,9 @@ static int test_tunnel_configure(sd_rtnl *rtnl) { assert_se(sd_rtnl_message_append_string(n, IFLA_IFNAME, "sit-tunnel") >= 0); assert_se(sd_rtnl_message_append_u32(n, IFLA_MTU, 1234)>= 0); - assert_se(sd_rtnl_message_open_container_union(n, IFLA_LINKINFO, "ipip6_tunnel") >= 0); - assert_se(sd_rtnl_message_append_string(n, IFLA_INFO_KIND, "sit") >= 0); + assert_se(sd_rtnl_message_open_container(n, IFLA_LINKINFO) >= 0); - assert_se(sd_rtnl_message_open_container(n, IFLA_INFO_DATA) >= 0); + assert_se(sd_rtnl_message_open_container_union(n, IFLA_INFO_DATA, "sit") >= 0); assert_se(sd_rtnl_message_append_u8(n, IFLA_IPTUN_PROTO, IPPROTO_IPIP) >= 0); _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel