Signed-off-by: Zeng Linggang <zenglg...@cn.fujitsu.com> Signed-off-by: Alexey Kodanev <alexey.koda...@oracle.com> Signed-off-by: Cyril Hrubis <chru...@suse.cz> --- runtest/ipv6_lib | 4 - testcases/network/.gitignore | 4 - testcases/network/lib6/Makefile | 4 - testcases/network/lib6/asapi_01.c | 251 ---------------------------- testcases/network/lib6/asapi_02.c | 338 -------------------------------------- testcases/network/lib6/asapi_03.c | 234 -------------------------- testcases/network/lib6/asapi_05.c | 119 +------------- testcases/network/lib6/asapi_07.c | 144 ---------------- testcases/network/lib6/runcc.c | 209 ----------------------- testcases/network/lib6/runcc.h | 30 ---- 10 files changed, 1 insertion(+), 1336 deletions(-) delete mode 100644 testcases/network/lib6/asapi_01.c delete mode 100644 testcases/network/lib6/asapi_02.c delete mode 100644 testcases/network/lib6/asapi_03.c delete mode 100644 testcases/network/lib6/asapi_07.c delete mode 100644 testcases/network/lib6/runcc.c delete mode 100644 testcases/network/lib6/runcc.h
diff --git a/runtest/ipv6_lib b/runtest/ipv6_lib index 75614fb..203e275 100644 --- a/runtest/ipv6_lib +++ b/runtest/ipv6_lib @@ -2,10 +2,6 @@ in6_01 in6_01 in6_02 in6_02 getaddrinfo_01 getaddrinfo_01 -asapi_01 asapi_01 -asapi_02 asapi_02 -asapi_03 asapi_03 asapi_04 asapi_04 asapi_05 asapi_05 asapi_06 asapi_06 -asapi_07 asapi_07 diff --git a/testcases/network/.gitignore b/testcases/network/.gitignore index aa6d4da..18b0203 100644 --- a/testcases/network/.gitignore +++ b/testcases/network/.gitignore @@ -1,13 +1,9 @@ /can/filter-tests/can_filter /can/filter-tests/can_rcv_own_msgs /datafiles/ -/lib6/asapi_01 -/lib6/asapi_02 -/lib6/asapi_03 /lib6/asapi_04 /lib6/asapi_05 /lib6/asapi_06 -/lib6/asapi_07 /lib6/getaddrinfo_01 /lib6/in6_01 /lib6/in6_02 diff --git a/testcases/network/lib6/Makefile b/testcases/network/lib6/Makefile index e337938..e9fde3b 100644 --- a/testcases/network/lib6/Makefile +++ b/testcases/network/lib6/Makefile @@ -31,8 +31,4 @@ LDLIBS += -lpthread CLEAN_TARGETS += $(LIB) -FILTER_OUT_MAKE_TARGETS := runcc - include $(top_srcdir)/include/mk/generic_leaf_target.mk - -$(MAKE_TARGETS): %: %.o runcc.o diff --git a/testcases/network/lib6/asapi_01.c b/testcases/network/lib6/asapi_01.c deleted file mode 100644 index 5d8bdc7..0000000 --- a/testcases/network/lib6/asapi_01.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * Author: David L Stevens - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * Description: - * These tests are for the "Advanced Sockets API" (RFC 3542) - * Verify that in6 and sockaddr fields are present. - */ - -#include <stdio.h> -#include <unistd.h> -#include <errno.h> - -#include <sys/wait.h> - -#include <netinet/ip6.h> - -#include "test.h" -#include "runcc.h" - -enum ttype { EXISTS, ALIAS, VALUE }; - -static struct ftent { - char *ft_tname; /* test name */ - int ft_type; /* test type */ - char *ft_incl; /* include file list */ - char *ft_struct; /* structure name */ - char *ft_field; /* field name */ - char *ft_offset; /* field offset */ - union { - char *fu_value; /* field size or value */ - char *fu_dname; /* #define name */ - } ftun; -#define ft_value ftun.fu_value -#define ft_dname ftun.fu_dname -} ftab[] = { - /* section 2.1 structure & field definitions */ - { "ip6_hdr un1_flow", EXISTS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_flow", "0", {"4"} }, - { "ip6_hdr ip6_flow", ALIAS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_flow", NULL, {"ip6_flow"} }, - { "ip6_hdr un1_plen", EXISTS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_plen", "4", {"2"} }, - { "ip6_hdr ip6_plen", ALIAS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_plen", "4", {"ip6_plen"} }, - { "ip6_hdr un1_nxt", EXISTS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_nxt", "6", {"1"} }, - { "ip6_hdr ip6_nxt", ALIAS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_nxt", NULL, {"ip6_nxt"} }, - { "ip6_hdr un1_hlim", EXISTS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_hlim", "7", {"1"} }, - { "ip6_hdr ip6_hlim", ALIAS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un1.ip6_un1_hlim", NULL, {"ip6_hlim"} }, - { "ip6_hdr un1_vfc", EXISTS, IP6_H, "ip6_hdr", - "ip6_ctlun.ip6_un2_vfc", "0", {"1"} }, - { "ip6_hdr ip6_src", EXISTS, IP6_H, "ip6_hdr", - "ip6_src", "sizeof(struct ip6_hdrctl)", - {"sizeof(struct in6_addr)"} }, - { "ip6_hdr ip6_dst", EXISTS, IP6_H, "ip6_hdr", "ip6_dst", - "(sizeof(struct ip6_hdrctl)+sizeof(struct in6_addr))", - {"sizeof(struct in6_addr)"} }, - /* section 2.2 structure and field definitions */ - { "IPPROTO_HOPOPTS", VALUE, IN_H, "IPPROTO_HOPOPTS", - NULL, NULL, {"0"} }, - { "IPPROTO_IPV6", VALUE, IN_H, "IPPROTO_IPV6", - NULL, NULL, {"41"} }, - { "IPPROTO_ROUTING", VALUE, IN_H, "IPPROTO_ROUTING", - NULL, NULL, {"43"} }, - { "IPPROTO_FRAGMENT", VALUE, IN_H, "IPPROTO_FRAGMENT", - NULL, NULL, {"44"} }, - { "IPPROTO_ESP", VALUE, IN_H, "IPPROTO_ESP", - NULL, NULL, {"50"} }, - { "IPPROTO_AH", VALUE, IN_H, "IPPROTO_AH", - NULL, NULL, {"51"} }, - { "IPPROTO_ICMPV6", VALUE, IN_H, "IPPROTO_ICMPV6", - NULL, NULL, {"58"} }, - { "IPPROTO_NONE", VALUE, IN_H, "IPPROTO_NONE", - NULL, NULL, {"59"} }, - { "IPPROTO_DSTOPTS", VALUE, IN_H, "IPPROTO_DSTOPTS", - NULL, NULL, {"60"} }, - /* ip6_hbh */ - { "ip6_hbh ip6h_nxt", EXISTS, IP6_H, "ip6_hbh", - "ip6h_nxt", "0", {"1"} }, - { "ip6_hbh ip6h_nxt", EXISTS, IP6_H, "ip6_hbh", - "ip6h_len", "1", {"1"} }, - /* ip6_dest */ - { "ip6_dest ip6d_nxt", EXISTS, IP6_H, "ip6_dest", - "ip6d_nxt", "0", {"1"} }, - { "ip6_dest ip6d_nxt", EXISTS, IP6_H, "ip6_dest", - "ip6d_len", "1", {"1"} }, - /* ip6_rthdr0 */ - { "ip6_rthdr0 ip6r0_nxt", EXISTS, IP6_H, "ip6_rthdr0", - "ip6r0_nxt", "0", {"1"} }, - { "ip6_rthdr0 ip6r0_len", EXISTS, IP6_H, "ip6_rthdr0", - "ip6r0_len", "1", {"1"} }, - { "ip6_rthdr0 ip6r0_type", EXISTS, IP6_H, "ip6_rthdr0", - "ip6r0_type", "2", {"1"} }, - { "ip6_rthdr0 ip6r0_segleft", EXISTS, IP6_H, "ip6_rthdr0", - "ip6r0_segleft", "3", {"1"} }, - { "ip6_rthdr0 ip6r0_reserved", EXISTS, IP6_H, "ip6_rthdr0", - "ip6r0_reserved", "4", {"1"} }, - /* ip6_frag */ - { "ip6_frag ip6f_nxt", EXISTS, IP6_H, "ip6_frag", - "ip6f_nxt", "0", {"1"} }, - { "ip6_frag ip6f_reserved", EXISTS, IP6_H, "ip6_frag", - "ip6f_reserved", "1", {"1"} }, - { "ip6_frag ip6f_offlg", EXISTS, IP6_H, "ip6_frag", - "ip6f_offlg", "2", {"2"} }, - { "ip6_frag ip6f_ident", EXISTS, IP6_H, "ip6_frag", - "ip6f_ident", "4", {"4"} }, - { "IP6F_OFF_MASK", VALUE, IP6_H, "IP6F_OFF_MASK", - NULL, NULL, {"htons(0xfff8)"} }, - { "IP6F_RESERVED_MASK", VALUE, IP6_H, "IP6F_RESERVED_MASK", - NULL, NULL, {"htons(0x0006)"} }, - { "IP6F_MORE_FRAG", VALUE, IP6_H, "IP6F_MORE_FRAG", - NULL, NULL, {"htons(0x0001)"} }, - { "IP6OPT_TYPE", VALUE, IP6_H, "IP6OPT_TYPE(0xff)", - NULL, NULL, {"0xc0"} }, - { "IP6OPT_TYPE_SKIP", VALUE, IP6_H, "IP6OPT_TYPE_SKIP", - NULL, NULL, {"0x00"} }, - { "IP6OPT_TYPE_DISCARD", VALUE, IP6_H, "IP6OPT_TYPE_DISCARD", - NULL, NULL, {"0x40"} }, - { "IP6OPT_TYPE_FORCEICMP", VALUE, IP6_H, "IP6OPT_TYPE_FORCEICMP", - NULL, NULL, {"0x80"} }, - { "IP6OPT_TYPE_ICMP", VALUE, IP6_H, "IP6OPT_TYPE_ICMP", - NULL, NULL, {"0xc0"} }, - { "IP6OPT_TYPE_MUTABLE", VALUE, IP6_H, "IP6OPT_TYPE_MUTABLE", - NULL, NULL, {"0x20"} }, - { "IP6OPT_PAD1", VALUE, IP6_H, "IP6OPT_PAD1", - NULL, NULL, {"0x00"} }, - { "IP6OPT_PADN", VALUE, IP6_H, "IP6OPT_PADN", - NULL, NULL, {"0x01"} }, - { "IP6OPT_JUMBO", VALUE, IP6_H, "IP6OPT_JUMBO", - NULL, NULL, {"0xc2"} }, - { "IP6OPT_NSAP_ADDR", VALUE, IP6_H, "IP6OPT_NSAP_ADDR", - NULL, NULL, {"0xc3"} }, - { "IP6OPT_TUNNEL_LIMIT", VALUE, IP6_H, "IP6OPT_TUNNEL_LIMIT", - NULL, NULL, {"0x04"} }, - { "IP6OPT_ROUTER_ALERT", VALUE, IP6_H, "IP6OPT_ROUTER_ALERT", - NULL, NULL, {"0x05"} }, - /* ip6_opt_jumbo */ - { "ip6_opt_jumbo ip6oj_type", EXISTS, IP6_H, "ip6_opt_jumbo", - "ip6oj_type", "0", {"1"} }, - { "ip6_opt_jumbo ip6oj_len", EXISTS, IP6_H, "ip6_opt_jumbo", - "ip6oj_len", "1", {"1"} }, - { "ip6_opt_jumbo ip6oj_jumbo_len element", EXISTS, IP6_H, - "ip6_opt_jumbo", "ip6oj_jumbo_len[0]", "2", {"1"} }, - { "ip6_opt_jumbo ip6oj_jumbo_len array", EXISTS, IP6_H, - "ip6_opt_jumbo", "ip6oj_jumbo_len", "2", {"4"} }, - /* ip6_opt_nsap */ - { "ip6_opt_nsap ip6on_type", EXISTS, IP6_H, "ip6_opt_nsap", - "ip6on_type", "0", {"1"} }, - { "ip6_opt_nsap ip6on_len", EXISTS, IP6_H, "ip6_opt_nsap", - "ip6on_len", "1", {"1"} }, - { "ip6_opt_nsap ip6on_src_nsap_len", EXISTS, IP6_H, - "ip6_opt_nsap", "ip6on_src_nsap_len", "2", {"1"} }, - { "ip6_opt_nsap ip6on_dst_nsap_len", EXISTS, IP6_H, - "ip6_opt_nsap", "ip6on_dst_nsap_len", "3", {"1"} }, - /* ip6_opt_tunnel */ - { "ip6_opt_tunnel ip6ot_type", EXISTS, IP6_H, - "ip6_opt_tunnel", "ip6ot_type", "0", {"1"} }, - { "ip6_opt_tunnel ip6ot_len", EXISTS, IP6_H, - "ip6_opt_tunnel", "ip6ot_len", "1", {"1"} }, - { "ip6_opt_tunnel ip6ot_encap_limit", EXISTS, IP6_H, - "ip6_opt_tunnel", "ip6ot_encap_limit", "2", {"1"} }, - /* ip6_opt_router */ - { "ip6_opt_router ip6or_type", EXISTS, IP6_H, - "ip6_opt_router", "ip6or_type", "0", {"1"} }, - { "ip6_opt_router ip6or_len", EXISTS, IP6_H, - "ip6_opt_router", "ip6or_len", "1", {"1"} }, - { "ip6_opt_router ip6or_value element", EXISTS, IP6_H, - "ip6_opt_router", "ip6or_value[0]", "2", {"1"} }, - { "ip6_opt_router ip6or_value array", EXISTS, IP6_H, - "ip6_opt_router", "ip6or_value", "2", {"2"} }, - /* IP6_ALERT_* definitions */ - { "IP6_ALERT_MLD", VALUE, IP6_H, "IP6_ALERT_MLD", - NULL, NULL, {"0"} }, - { "IP6_ALERT_RSVP", VALUE, IP6_H, "IP6_ALERT_RSVP", - NULL, NULL, {"htons(1)"} }, - { "IP6_ALERT_AN", VALUE, IP6_H, "IP6_ALERT_AN", - NULL, NULL, {"htons(2)"} }, -}; - -static void setup(void); -static void do_test(const struct ftent *); - -char *TCID = "asapi_01"; -int TST_TOTAL = ARRAY_SIZE(ftab); - -int main(int argc, char *argv[]) -{ - int i, lc; - - tst_parse_opts(argc, argv, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); ++lc) { - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) - do_test(&ftab[i]); - } - - tst_exit(); -} - -void setup(void) -{ - TEST_PAUSE; -} - -void do_test(const struct ftent *ftptr) -{ - switch (ftptr->ft_type) { - case EXISTS: - structcheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_field, - ftptr->ft_offset, ftptr->ft_value); - break; - case ALIAS: - aliascheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_field, - ftptr->ft_dname); - break; - case VALUE: - valuecheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_dname); - break; - default: - tst_resm(TBROK, "invalid type %d", - ftptr->ft_type); - break; - } -} diff --git a/testcases/network/lib6/asapi_02.c b/testcases/network/lib6/asapi_02.c deleted file mode 100644 index 01bee37..0000000 --- a/testcases/network/lib6/asapi_02.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * Author: David L Stevens - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * Description: - * These tests are for the "Advanced Sockets API" (RFC 3542) - * Verify that in6 and sockaddr fields are present. - */ - -#include <stdio.h> -#include <unistd.h> -#include <errno.h> - -#include <sys/wait.h> - -#include <netinet/ip6.h> - -#include "test.h" -#include "runcc.h" - -enum ttype { EXISTS, ALIAS, VALUE }; - -static struct ftent { - char *ft_tname; /* test name */ - int ft_type; /* test type */ - char *ft_incl; /* include file list */ - char *ft_struct; /* structure name */ - char *ft_field; /* field name */ - char *ft_offset; /* field offset */ - union { - char *fu_value; /* field size or value */ - char *fu_dname; /* #define name */ - } ftun; -#define ft_value ftun.fu_value -#define ft_dname ftun.fu_dname -} ftab[] = { - /* Section 2.2, icmp6_hdr & defines */ - { "icmp6_hdr icmp6_type", EXISTS, ICMP6_H, "icmp6_hdr", - "icmp6_type", "0", {"1"} }, - { "icmp6_hdr icmp6_code", EXISTS, ICMP6_H, "icmp6_hdr", - "icmp6_code", "1", {"1"} }, - { "icmp6_hdr icmp6_cksum", EXISTS, ICMP6_H, "icmp6_hdr", - "icmp6_cksum", "2", {"2"} }, - { "icmp6_hdr icmp6_un_data32 element", EXISTS, ICMP6_H, - "icmp6_hdr", "icmp6_dataun.icmp6_un_data32[0]", "4", {"4"} }, - { "icmp6_hdr icmp6_un_data32 array", EXISTS, ICMP6_H, - "icmp6_hdr", "icmp6_dataun.icmp6_un_data32", "4", {"4"} }, - { "icmp6_hdr icmp6_un_data16 element", EXISTS, ICMP6_H, - "icmp6_hdr", "icmp6_dataun.icmp6_un_data16[0]", "4", {"2"} }, - { "icmp6_hdr icmp6_un_data16 array", EXISTS, ICMP6_H, - "icmp6_hdr", "icmp6_dataun.icmp6_un_data16", "4", {"4"} }, - { "icmp6_hdr icmp6_un_data8 element", EXISTS, ICMP6_H, - "icmp6_hdr", "icmp6_dataun.icmp6_un_data8[0]", "4", {"1"} }, - { "icmp6_hdr icmp6_un_data8 array", EXISTS, ICMP6_H, - "icmp6_hdr", "icmp6_dataun.icmp6_un_data8", "4", {"4"} }, - /* icmp6_hdr definitions */ - { "icmp6_hdr icmp6_data32 define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data32", NULL, {"icmp6_data32"} }, - { "icmp6_hdr icmp6_data16 define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data16", NULL, {"icmp6_data16"} }, - { "icmp6_hdr icmp6_data8 define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data8", NULL, {"icmp6_data8"} }, - { "icmp6_hdr icmp6_pptr define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data32[0]", NULL, {"icmp6_pptr"} }, - { "icmp6_hdr icmp6_mtu define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data32[0]", NULL, {"icmp6_mtu"} }, - { "icmp6_hdr icmp6_id define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data16[0]", NULL, {"icmp6_id"} }, - { "icmp6_hdr icmp6_seq define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data16[1]", NULL, {"icmp6_seq"} }, - { "icmp6_hdr icmp6_maxdelay define", ALIAS, ICMP6_H, "icmp6_hdr", - "icmp6_dataun.icmp6_un_data16[0]", NULL, {"icmp6_maxdelay"} }, - /* Section 2.2.1 ICMPv6 Type and Code Values */ - { "ICMP6_DST_UNREACH", VALUE, ICMP6_H, "ICMP6_DST_UNREACH", - NULL, NULL, {"1"} }, - { "ICMP6_PACKET_TOO_BIG", VALUE, ICMP6_H, "ICMP6_PACKET_TOO_BIG", - NULL, NULL, {"2"} }, - { "ICMP6_TIME_EXCEEDED", VALUE, ICMP6_H, "ICMP6_TIME_EXCEEDED", - NULL, NULL, {"3"} }, - { "ICMP6_PARAM_PROB", VALUE, ICMP6_H, "ICMP6_PARAM_PROB", - NULL, NULL, {"4"} }, - { "ICMP6_INFOMSG_MASK", VALUE, ICMP6_H, "ICMP6_INFOMSG_MASK", - NULL, NULL, {"0x80"} }, - { "ICMP6_ECHO_REQUEST", VALUE, ICMP6_H, "ICMP6_ECHO_REQUEST", - NULL, NULL, {"128"} }, - { "ICMP6_ECHO_REPLY", VALUE, ICMP6_H, "ICMP6_ECHO_REPLY", - NULL, NULL, {"129"} }, - { "ICMP6_DST_UNREACH_NOROUTE", VALUE, ICMP6_H, - "ICMP6_DST_UNREACH_NOROUTE", NULL, NULL, {"0"} }, - { "ICMP6_DST_UNREACH_ADMIN", VALUE, ICMP6_H, - "ICMP6_DST_UNREACH_ADMIN", NULL, NULL, {"1"} }, - { "ICMP6_DST_UNREACH_BEYONDSCOPE", VALUE, ICMP6_H, - "ICMP6_DST_UNREACH_BEYONDSCOPE", NULL, NULL, {"2"} }, - { "ICMP6_DST_UNREACH_ADDR", VALUE, ICMP6_H, - "ICMP6_DST_UNREACH_ADDR", NULL, NULL, {"3"} }, - { "ICMP6_DST_UNREACH_NOPORT", VALUE, ICMP6_H, - "ICMP6_DST_UNREACH_NOPORT", NULL, NULL, {"4"} }, - { "ICMP6_TIME_EXCEED_TRANSIT", VALUE, ICMP6_H, - "ICMP6_TIME_EXCEED_TRANSIT", NULL, NULL, {"0"} }, - { "ICMP6_TIME_EXCEED_REASSEMBLY", VALUE, ICMP6_H, - "ICMP6_TIME_EXCEED_REASSEMBLY", NULL, NULL, {"1"} }, - { "ICMP6_PARAMPROB_HEADER", VALUE, ICMP6_H, - "ICMP6_PARAMPROB_HEADER", NULL, NULL, {"0"} }, - { "ICMP6_PARAMPROB_NEXTHEADER", VALUE, ICMP6_H, - "ICMP6_PARAMPROB_NEXTHEADER", NULL, NULL, {"1"} }, - { "ICMP6_PARAMPROB_OPTION", VALUE, ICMP6_H, - "ICMP6_PARAMPROB_OPTION", NULL, NULL, {"2"} }, - /* section 2.2.2, Neighbor Discovery */ - { "ND_ROUTER_SOLICIT", VALUE, ICMP6_H, - "ND_ROUTER_SOLICIT", NULL, NULL, {"133"} }, - { "ND_ROUTER_ADVERT", VALUE, ICMP6_H, - "ND_ROUTER_ADVERT", NULL, NULL, {"134"} }, - { "ND_NEIGHBOR_SOLICIT", VALUE, ICMP6_H, - "ND_NEIGHBOR_SOLICIT", NULL, NULL, {"135"} }, - { "ND_NEIGHBOR_ADVERT", VALUE, ICMP6_H, - "ND_NEIGHBOR_ADVERT", NULL, NULL, {"136"} }, - { "ND_REDIRECT", VALUE, ICMP6_H, - "ND_REDIRECT", NULL, NULL, {"137"} }, - { "nd_router_solicit nd_rs_hdr", EXISTS, ICMP6_H, - "nd_router_solicit", "nd_rs_hdr", "0", - {"sizeof(struct icmp6_hdr)"} }, - { "nd_router_solicit nd_rs_type define", ALIAS, ICMP6_H, - "nd_router_solicit", "nd_rs_hdr.icmp6_type", - NULL, {"nd_rs_type"} }, - { "nd_router_solicit nd_rs_code define", ALIAS, ICMP6_H, - "nd_router_solicit", "nd_rs_hdr.icmp6_code", - NULL, {"nd_rs_code"} }, - { "nd_router_solicit nd_rs_cksum define", ALIAS, ICMP6_H, - "nd_router_solicit", "nd_rs_hdr.icmp6_cksum", - NULL, {"nd_rs_cksum"} }, - { "nd_router_solicit nd_rs_reserved define", ALIAS, ICMP6_H, - "nd_router_solicit", "nd_rs_hdr.icmp6_data32[0]", - NULL, {"nd_rs_reserved"} }, - { "nd_router_advert nd_ra_hdr", EXISTS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr", "0", - {"sizeof(struct icmp6_hdr)"} }, - { "nd_router_advert nd_ra_reachable", EXISTS, ICMP6_H, - "nd_router_advert", "nd_ra_reachable", - "sizeof(struct icmp6_hdr)", {"4"} }, - { "nd_router_advert nd_ra_retransmit", EXISTS, ICMP6_H, - "nd_router_advert", "nd_ra_retransmit", - "sizeof(struct icmp6_hdr)+4", {"4"} }, - { "nd_router_advert nd_ra_type define", ALIAS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr.icmp6_type", - NULL, {"nd_ra_type"} }, - { "nd_router_advert nd_ra_code define", ALIAS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr.icmp6_code", - NULL, {"nd_ra_code"} }, - { "nd_router_advert nd_ra_cksum define", ALIAS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr.icmp6_cksum", - NULL, {"nd_ra_cksum"} }, - { "nd_router_advert nd_ra_curhoplimit define", ALIAS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr.icmp6_data8[0]", - NULL, {"nd_ra_curhoplimit"} }, - { "nd_router_advert nd_ra_flags_reserved define", ALIAS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr.icmp6_data8[1]", - NULL, {"nd_ra_flags_reserved"} }, - { "ND_RA_FLAG_MANAGED", VALUE, ICMP6_H, - "ND_RA_FLAG_MANAGED", NULL, NULL, {"0x80"} }, - { "ND_RA_FLAG_OTHER", VALUE, ICMP6_H, - "ND_RA_FLAG_OTHER", NULL, NULL, {"0x40"} }, - { "nd_router_advert nd_ra_router_lifetime define", ALIAS, ICMP6_H, - "nd_router_advert", "nd_ra_hdr.icmp6_data16[1]", - NULL, {"nd_ra_router_lifetime"} }, - { "nd_neighbor_solicit nd_ns_hdr", EXISTS, ICMP6_H, - "nd_neighbor_solicit", "nd_ns_hdr", - "0", {"sizeof(struct icmp6_hdr)"} }, - { "nd_neighbor_solicit nd_ns_target", EXISTS, ICMP6_H, - "nd_neighbor_solicit", "nd_ns_target", - "sizeof(struct icmp6_hdr)", {"sizeof(struct in6_addr)"} }, - { "nd_neighbor_solicit nd_ns_type define", ALIAS, ICMP6_H, - "nd_neighbor_solicit", "nd_ns_hdr.icmp6_type", - NULL, {"nd_ns_type"} }, - { "nd_neighbor_solicit nd_ns_code define", ALIAS, ICMP6_H, - "nd_neighbor_solicit", "nd_ns_hdr.icmp6_code", - NULL, {"nd_ns_code"} }, - { "nd_neighbor_solicit nd_ns_cksum define", ALIAS, ICMP6_H, - "nd_neighbor_solicit", "nd_ns_hdr.icmp6_cksum", - NULL, {"nd_ns_cksum"} }, - { "nd_neighbor_solicit nd_ns_reserved define", ALIAS, ICMP6_H, - "nd_neighbor_solicit", "nd_ns_hdr.icmp6_data32[0]", - NULL, {"nd_ns_reserved"} }, - { "nd_neighbor_advert nd_na_hdr", EXISTS, ICMP6_H, - "nd_neighbor_advert", "nd_na_hdr", - "0", {"sizeof(struct icmp6_hdr)"} }, - { "nd_neighbor_advert nd_na_target", EXISTS, ICMP6_H, - "nd_neighbor_advert", "nd_na_target", - "sizeof(struct icmp6_hdr)", {"sizeof(struct in6_addr)"} }, - { "nd_neighbor_advert nd_na_type define", ALIAS, ICMP6_H, - "nd_neighbor_advert", "nd_na_hdr.icmp6_type", - NULL, {"nd_na_type"} }, - { "nd_neighbor_advert nd_na_code define", ALIAS, ICMP6_H, - "nd_neighbor_advert", "nd_na_hdr.icmp6_code", - NULL, {"nd_na_code"} }, - { "nd_neighbor_advert nd_na_cksum define", ALIAS, ICMP6_H, - "nd_neighbor_advert", "nd_na_hdr.icmp6_cksum", - NULL, {"nd_na_cksum"} }, - { "nd_neighbor_advert nd_na_flags_reserved define", ALIAS, - ICMP6_H, "nd_neighbor_advert", "nd_na_hdr.icmp6_data32[0]", - NULL, {"nd_na_flags_reserved"} }, - { "ND_NA_FLAG_ROUTER", VALUE, ICMP6_H, "ND_NA_FLAG_ROUTER", - NULL, NULL, {"htonl(0x80000000)"} }, - { "ND_NA_FLAG_SOLICITED", VALUE, ICMP6_H, "ND_NA_FLAG_SOLICITED", - NULL, NULL, {"htonl(0x40000000)"} }, - { "ND_NA_FLAG_OVERRIDE", VALUE, ICMP6_H, "ND_NA_FLAG_OVERRIDE", - NULL, NULL, {"htonl(0x20000000)"} }, - { "nd_redirect nd_rd_hdr", EXISTS, ICMP6_H, "nd_redirect", - "nd_rd_hdr", "0", {"sizeof(struct icmp6_hdr)"} }, - { "nd_redirect nd_rd_target", EXISTS, ICMP6_H, - "nd_redirect", "nd_rd_target", - "sizeof(struct icmp6_hdr)", {"sizeof(struct in6_addr)"} }, - { "nd_redirect nd_rd_dst", EXISTS, ICMP6_H, "nd_redirect", - "nd_rd_dst", "sizeof(struct icmp6_hdr)+sizeof(struct in6_addr)", - {"sizeof(struct in6_addr)"} }, - { "nd_redirect nd_rd_type define", ALIAS, ICMP6_H, - "nd_neighbor_advert", "nd_na_hdr.icmp6_data32[0]", - NULL, {"nd_na_flags_reserved"} }, - { "nd_opt_hdr nd_rd_hdr", EXISTS, ICMP6_H, "nd_opt_hdr", - "nd_opt_type", "0", {"1"} }, - { "nd_opt_hdr nd_rd_hdr", EXISTS, ICMP6_H, "nd_opt_hdr", - "nd_opt_len", "1", {"1"} }, - { "ND_OPT_SOURCE_LINKADDR", VALUE, ICMP6_H, - "ND_OPT_SOURCE_LINKADDR", NULL, NULL, {"1"} }, - { "ND_OPT_TARGET_LINKADDR", VALUE, ICMP6_H, - "ND_OPT_TARGET_LINKADDR", NULL, NULL, {"2"} }, - { "ND_OPT_PREFIX_INFORMATION", VALUE, ICMP6_H, - "ND_OPT_PREFIX_INFORMATION", NULL, NULL, {"3"} }, - { "ND_OPT_REDIRECTED_HEADER", VALUE, ICMP6_H, - "ND_OPT_REDIRECTED_HEADER", NULL, NULL, {"4"} }, - { "ND_OPT_MTU", VALUE, ICMP6_H, "ND_OPT_MTU", - NULL, NULL, {"5"} }, - { "nd_opt_prefix_info nd_opt_pi_type", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_type", "0", {"1"} }, - { "nd_opt_prefix_info nd_opt_pi_len", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_len", "1", {"1"} }, - { "nd_opt_prefix_info nd_opt_pi_prefix_len", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_prefix_len", "2", {"1"} }, - { "nd_opt_prefix_info nd_opt_pi_flags_reserved", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_flags_reserved", "3", {"1"} }, - { "nd_opt_prefix_info nd_opt_pi_valid_time", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_valid_time", "4", {"4"} }, - { "nd_opt_prefix_info nd_opt_pi_preferred_time", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_preferred_time", "8", {"4"} }, - { "nd_opt_prefix_info nd_opt_pi_reserved2", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_reserved2", "12", {"4"} }, - { "nd_opt_prefix_info nd_opt_pi_prefix", EXISTS, ICMP6_H, - "nd_opt_prefix_info", "nd_opt_pi_prefix", - "16", {"sizeof(struct in6_addr)"} }, - { "ND_OPT_PI_FLAG_ONLINK", VALUE, ICMP6_H, - "ND_OPT_PI_FLAG_ONLINK", NULL, NULL, {"0x80"} }, - { "ND_OPT_PI_FLAG_AUTO", VALUE, ICMP6_H, - "ND_OPT_PI_FLAG_AUTO", NULL, NULL, {"0x40"} }, - { "nd_opt_rd_hdr nd_opt_rh_type", EXISTS, ICMP6_H, - "nd_opt_rd_hdr", "nd_opt_rh_type", "0", {"1"} }, - { "nd_opt_rd_hdr nd_opt_rh_len", EXISTS, ICMP6_H, - "nd_opt_rd_hdr", "nd_opt_rh_len", "1", {"1"} }, - { "nd_opt_rd_hdr nd_opt_rh_reserved1", EXISTS, ICMP6_H, - "nd_opt_rd_hdr", "nd_opt_rh_reserved1", "2", {"2"} }, - { "nd_opt_rd_hdr nd_opt_rh_reserved2", EXISTS, ICMP6_H, - "nd_opt_rd_hdr", "nd_opt_rh_reserved2", "4", {"4"} }, - { "nd_opt_mtu nd_opt_mtu_type", EXISTS, ICMP6_H, - "nd_opt_mtu", "nd_opt_mtu_type", "0", {"1"} }, - { "nd_opt_mtu nd_opt_mtu_len", EXISTS, ICMP6_H, - "nd_opt_mtu", "nd_opt_mtu_len", "1", {"1"} }, - { "nd_opt_mtu nd_opt_mtu_reserved", EXISTS, ICMP6_H, - "nd_opt_mtu", "nd_opt_mtu_reserved", "2", {"2"} }, - { "nd_opt_mtu nd_opt_mtu_mtu", EXISTS, ICMP6_H, - "nd_opt_mtu", "nd_opt_mtu_mtu", "4", {"4"} }, -}; - -static void setup(void); -static void do_test(const struct ftent *); - -char *TCID = "asapi_02"; -int TST_TOTAL = ARRAY_SIZE(ftab); - -int main(int argc, char *argv[]) -{ - int i, lc; - - tst_parse_opts(argc, argv, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); ++lc) { - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) - do_test(&ftab[i]); - } - - tst_exit(); -} - -void setup(void) -{ - TEST_PAUSE; -} - -void do_test(const struct ftent *ftptr) -{ - switch (ftptr->ft_type) { - case EXISTS: - structcheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_field, - ftptr->ft_offset, ftptr->ft_value); - break; - case ALIAS: - aliascheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_field, - ftptr->ft_dname); - break; - case VALUE: - valuecheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_dname); - break; - default: - tst_resm(TBROK, "invalid type %d", - ftptr->ft_type); - break; - } -} diff --git a/testcases/network/lib6/asapi_03.c b/testcases/network/lib6/asapi_03.c deleted file mode 100644 index f458d7d..0000000 --- a/testcases/network/lib6/asapi_03.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * Author: David L Stevens - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * Description: - * These tests are for the "Advanced Sockets API" (RFC 3542) - * Verify that in6 and sockaddr fields are present. - */ - -#include <stdio.h> -#include <unistd.h> -#include <errno.h> - -#include <sys/wait.h> - -#include <netinet/ip6.h> - -#include "test.h" -#include "runcc.h" - -enum ttype { EXISTS, ALIAS, VALUE }; - -static struct ftent { - char *ft_tname; /* test name */ - int ft_type; /* test type */ - char *ft_incl; /* include file list */ - char *ft_struct; /* structure name */ - char *ft_field; /* field name */ - char *ft_offset; /* field offset */ - union { - char *fu_value; /* field size or value */ - char *fu_dname; /* #define name */ - } ftun; -#define ft_value ftun.fu_value -#define ft_dname ftun.fu_dname -} ftab[] = { - /* section 2.2.3, MLDv1 */ - { "MLD_LISTENER_QUERY", VALUE, ICMP6_H, - "MLD_LISTENER_QUERY", NULL, NULL, {"130"} }, - { "MLD_LISTENER_REPORT", VALUE, ICMP6_H, - "MLD_LISTENER_REPORT", NULL, NULL, {"131"} }, - { "MLD_LISTENER_REDUCTION", VALUE, ICMP6_H, - "MLD_LISTENER_REDUCTION", NULL, NULL, {"132"} }, - { "mld_hdr mld_icmp6_hdr", EXISTS, ICMP6_H, - "mld_hdr", "mld_icmp6_hdr", "0", - {"sizeof(struct icmp6_hdr)"} }, - { "mld_hdr mld_addr", EXISTS, ICMP6_H, "mld_hdr", - "mld_addr", "sizeof(struct icmp6_hdr)", - {"sizeof(struct in6_addr)"} }, - { "mld_hdr mld_type define", ALIAS, ICMP6_H, "mld_hdr", - "mld_icmp6_hdr.icmp6_type", NULL, {"mld_type"} }, - { "mld_hdr mld_code define", ALIAS, ICMP6_H, "mld_hdr", - "mld_icmp6_hdr.icmp6_code", NULL, {"mld_code"} }, - { "mld_hdr mld_cksum define", ALIAS, ICMP6_H, "mld_hdr", - "mld_icmp6_hdr.icmp6_cksum", NULL, {"mld_cksum"} }, - { "mld_hdr mld_maxdelay define", ALIAS, ICMP6_H, "mld_hdr", - "mld_icmp6_hdr.icmp6_data16[0]", NULL, {"mld_maxdelay"} }, - { "mld_hdr mld_reserved define", ALIAS, ICMP6_H, "mld_hdr", - "mld_icmp6_hdr.icmp6_data16[1]", NULL, {"mld_reserved"} }, - /* section 2.2.4, Router renumbering */ - { "ICMP6_ROUTER_RENUMBERING", VALUE, ICMP6_H, - "ICMP6_ROUTER_RENUMBERING", NULL, NULL, {"138"} }, - { "icmp6_router_renum rr_hdr", EXISTS, ICMP6_H, - "icmp6_router_renum", "rr_hdr", "0", - {"sizeof(struct icmp6_hdr)"} }, - { "icmp6_router_renum rr_segnum", EXISTS, ICMP6_H, - "icmp6_router_renum", "rr_segnum", - "sizeof(struct icmp6_hdr)", {"1"} }, - { "icmp6_router_renum rr_flags", EXISTS, ICMP6_H, - "icmp6_router_renum", "rr_flags", - "sizeof(struct icmp6_hdr)+1", {"1"} }, - { "icmp6_router_renum rr_maxdelay", EXISTS, ICMP6_H, - "icmp6_router_renum", "rr_maxdelay", - "sizeof(struct icmp6_hdr)+2", {"2"} }, - { "icmp6_router_renum rr_reserved", EXISTS, ICMP6_H, - "icmp6_router_renum", "rr_reserved", - "sizeof(struct icmp6_hdr)+4", {"4"} }, - { "icmp6_router_renum rr_type define", ALIAS, ICMP6_H, - "icmp6_router_renum", "rr_hdr.icmp6_type", - NULL, {"rr_type"} }, - { "icmp6_router_renum rr_code define", ALIAS, ICMP6_H, - "icmp6_router_renum", "rr_hdr.icmp6_code", - NULL, {"rr_code"} }, - { "icmp6_router_renum rr_cksum define", ALIAS, ICMP6_H, - "icmp6_router_renum", "rr_hdr.icmp6_cksum", - NULL, {"rr_cksum"} }, - { "icmp6_router_renum rr_seqnum define", ALIAS, ICMP6_H, - "icmp6_router_renum", "rr_hdr.icmp6_data32[0]", - NULL, {"rr_seqnum"} }, - { "ICMP6_RR_FLAGS_TEST", VALUE, ICMP6_H, - "ICMP6_RR_FLAGS_TEST", NULL, NULL, {"0x80"} }, - { "ICMP6_RR_FLAGS_REQRESULT", VALUE, ICMP6_H, - "ICMP6_RR_FLAGS_REQRESULT", NULL, NULL, {"0x40"} }, - { "ICMP6_RR_FLAGS_FORCEAPPLY", VALUE, ICMP6_H, - "ICMP6_RR_FLAGS_FORCEAPPLY", NULL, NULL, {"0x20"} }, - { "ICMP6_RR_FLAGS_SPECSITE", VALUE, ICMP6_H, - "ICMP6_RR_FLAGS_SPECSITE", NULL, NULL, {"0x10"} }, - { "ICMP6_RR_FLAGS_PREVDONE", VALUE, ICMP6_H, - "ICMP6_RR_FLAGS_PREVDONE", NULL, NULL, {"0x08"} }, - { "rr_pco_match rpm_code", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_code", "0", {"1"} }, - { "rr_pco_match rpm_len", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_len", "1", {"1"} }, - { "rr_pco_match rpm_ordinal", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_ordinal", "2", {"1"} }, - { "rr_pco_match rpm_matchlen", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_matchlen", "3", {"1"} }, - { "rr_pco_match rpm_minlen", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_minlen", "4", {"1"} }, - { "rr_pco_match rpm_maxlen", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_maxlen", "5", {"1"} }, - { "rr_pco_match rpm_reserved", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_reserved", "6", {"2"} }, - { "rr_pco_match rpm_prefix", EXISTS, ICMP6_H, - "rr_pco_match", "rpm_prefix", "8", - {"sizeof(struct in6_addr)"} }, - { "RPM_PCO_ADD", VALUE, ICMP6_H, "RPM_PCO_ADD", - NULL, NULL, {"1"} }, - { "RPM_PCO_CHANGE", VALUE, ICMP6_H, "RPM_PCO_CHANGE", - NULL, NULL, {"2"} }, - { "RPM_PCO_SETGLOBAL", VALUE, ICMP6_H, "RPM_PCO_SETGLOBAL", - NULL, NULL, {"3"} }, - { "rr_pco_use rpu_uselen", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_uselen", "0", {"1"} }, - { "rr_pco_use rpu_keeplen", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_keeplen", "1", {"1"} }, - { "rr_pco_use rpu_ramask", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_ramask", "2", {"1"} }, - { "rr_pco_use rpu_raflags", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_raflags", "3", {"1"} }, - { "rr_pco_use rpu_vltime", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_vltime", "4", {"4"} }, - { "rr_pco_use rpu_pltime", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_pltime", "8", {"4"} }, - { "rr_pco_use rpu_flags", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_flags", "12", {"4"} }, - { "rr_pco_use rpu_prefix", EXISTS, ICMP6_H, "rr_pco_use", - "rpu_prefix", "16", {"sizeof(struct in6_addr)"} }, - { "ICMP6_RR_PCOUSE_RAFLAGS_ONLINK", VALUE, ICMP6_H, - "ICMP6_RR_PCOUSE_RAFLAGS_ONLINK", NULL, NULL, {"0x20"} }, - { "ICMP6_RR_PCOUSE_RAFLAGS_AUTO", VALUE, ICMP6_H, - "ICMP6_RR_PCOUSE_RAFLAGS_AUTO", NULL, NULL, {"0x10"} }, - { "ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME", VALUE, ICMP6_H, - "ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME", NULL, NULL, - {"htonl(0x80000000)"} }, - { "ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME", VALUE, ICMP6_H, - "ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME", NULL, NULL, - {"htonl(0x40000000)"} }, - { "rr_result rrr_flags", EXISTS, ICMP6_H, "rr_result", - "rrr_flags", "0", {"2"} }, - { "rr_result rrr_ordinal", EXISTS, ICMP6_H, "rr_result", - "rrr_ordinal", "2", {"1"} }, - { "rr_result rrr_matchedlen", EXISTS, ICMP6_H, "rr_result", - "rrr_matchedlen", "3", {"1"} }, - { "rr_result rrr_ifid", EXISTS, ICMP6_H, "rr_result", - "rrr_ifid", "4", {"4"} }, - { "rr_result rrr_prefix", EXISTS, ICMP6_H, "rr_result", - "rrr_prefix", "8", {"sizeof(struct in6_addr)"} }, - { "ICMP6_RR_RESULT_FLAGS_OOB", VALUE, ICMP6_H, - "ICMP6_RR_RESULT_FLAGS_OOB", NULL, NULL, - {"htons(0x0002)"} }, - { "ICMP6_RR_RESULT_FLAGS_FORBIDDEN", VALUE, ICMP6_H, - "ICMP6_RR_RESULT_FLAGS_FORBIDDEN", NULL, NULL, - {"htons(0x0001)"} }, -}; - -static void setup(void); -static void do_test(const struct ftent *); - -char *TCID = "asapi_03"; -int TST_TOTAL = ARRAY_SIZE(ftab); - -int main(int argc, char *argv[]) -{ - int i, lc; - - tst_parse_opts(argc, argv, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); ++lc) { - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) - do_test(&ftab[i]); - } - - tst_exit(); -} - -void setup(void) -{ - TEST_PAUSE; -} - -void do_test(const struct ftent *ftptr) -{ - switch (ftptr->ft_type) { - case EXISTS: - structcheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_field, - ftptr->ft_offset, ftptr->ft_value); - break; - case ALIAS: - aliascheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_field, - ftptr->ft_dname); - break; - case VALUE: - valuecheck(ftptr->ft_tname, ftptr->ft_incl, - ftptr->ft_struct, ftptr->ft_dname); - break; - default: - tst_resm(TBROK, "invalid type %d", - ftptr->ft_type); - break; - } -} diff --git a/testcases/network/lib6/asapi_05.c b/testcases/network/lib6/asapi_05.c index b2e7d2a..e251eee 100644 --- a/testcases/network/lib6/asapi_05.c +++ b/testcases/network/lib6/asapi_05.c @@ -47,14 +47,12 @@ #include <netinet/icmp6.h> #include "test.h" -#include "runcc.h" char *TCID = "asapi_05"; /* Test program identifier. */ void setup(void); void cleanup(void); -void icmp6_et(void); void icmp6_ft(void); int main(int argc, char *argv[]) @@ -67,7 +65,6 @@ int main(int argc, char *argv[]) setup(); for (lc = 0; TEST_LOOPING(lc); ++lc) { - icmp6_et(); icmp6_ft(); } @@ -76,120 +73,6 @@ int main(int argc, char *argv[]) tst_exit(); } -enum ttype { EXISTS, ALIAS, VALUE, DEFINED }; - -struct etent { - char *et_tname; /* test name */ - int et_type; /* test type */ - char *et_incl; /* include file list */ - char *et_struct; /* structure name */ - char *et_field; /* field name */ - char *et_offset; /* field offset */ - union { - char *fu_value; /* field size or value */ - char *fu_dname; /* #define name */ - } ftun; -#define et_value ftun.fu_value -#define et_dname ftun.fu_dname -} etab[] = { -/* existence checks, RFC 3542 section 3 */ - { - "icmp6_filter icmp6_filt", EXISTS, ICMP6_H, "icmp6_filter", - "icmp6_filt", "0", { - "32"}}, { - "icmp6_filter icmp6_filt[0]", EXISTS, ICMP6_H, "icmp6_filter", - "icmp6_filt[0]", "0", { - "4"}}, { - "ICMP6_FILTER_WILLPASS", DEFINED, ICMP6_H, - "ICMP6_FILTER_WILLPASS", NULL, NULL, { - 0}}, { - "ICMP6_FILTER_WILLBLOCK", DEFINED, ICMP6_H, - "ICMP6_FILTER_WILLBLOCK", NULL, NULL, { - 0}}, { - "ICMP6_FILTER_SETPASS", DEFINED, ICMP6_H, - "ICMP6_FILTER_SETPASS", NULL, NULL, { - 0}}, { - "ICMP6_FILTER_SETBLOCK", DEFINED, ICMP6_H, - "ICMP6_FILTER_SETBLOCK", NULL, NULL, { - 0}}, { - "ICMP6_FILTER_SETPASSALL", DEFINED, ICMP6_H, - "ICMP6_FILTER_SETPASSALL", NULL, NULL, { - 0}}, { - "ICMP6_FILTER_SETBLOCKALL", DEFINED, ICMP6_H, - "ICMP6_FILTER_SETBLOCKALL", NULL, NULL, { - 0}}, { - "ICMP6_FILTER", DEFINED, ICMP6_H, "ICMP6_FILTER", NULL, NULL, { - 0}}, -/* existence checks, RFC 3542 section 4 */ -/* socket options */ - { - "IPV6_RECVPKTINFO", VALUE, IN_H, "IPV6_RECVPKTINFO", NULL, NULL, { - "IPV6_RECVPKTINFO"}}, { - "IPV6_RECVHOPLIMIT", VALUE, IN_H, "IPV6_RECVHOPLIMIT", NULL, - NULL, { - "IPV6_RECVHOPLIMIT"}}, { - "IPV6_RECVRTHDR", VALUE, IN_H, "IPV6_RECVRTHDR", NULL, NULL, { - "IPV6_RECVRTHDR"}}, { - "IPV6_RECVHOPOPTS", VALUE, IN_H, "IPV6_RECVHOPOPTS", NULL, NULL, { - "IPV6_RECVHOPOPTS"}}, { - "IPV6_RECVDSTOPTS", VALUE, IN_H, "IPV6_RECVDSTOPTS", NULL, NULL, { - "IPV6_RECVDSTOPTS"}}, { - "IPV6_RECVTCLASS", VALUE, IN_H, "IPV6_RECVTCLASS", NULL, NULL, { - "IPV6_RECVTCLASS"}}, -/* cmsg types */ - { - "IPV6_PKTINFO", DEFINED, IN_H, "IPV6_PKTINFO", NULL, NULL, { - 0}}, { - "IPV6_HOPLIMIT", DEFINED, IN_H, "IPV6_HOPLIMIT", NULL, NULL, { - 0}}, { - "IPV6_NEXTHOP", DEFINED, IN_H, "IPV6_NEXTHOP", NULL, NULL, { - 0}}, { - "IPV6_RTHDR", DEFINED, IN_H, "IPV6_RTHDR", NULL, NULL, { - 0}}, { - "IPV6_HOPOPTS", DEFINED, IN_H, "IPV6_HOPOPTS", NULL, NULL, { - 0}}, { - "IPV6_DSTOPTS", DEFINED, IN_H, "IPV6_DSTOPTS", NULL, NULL, { - 0}}, { - "IPV6_RTHDRDSTOPTS", DEFINED, IN_H, "IPV6_RTHDRDSTOPTS", NULL, - NULL, { - 0}}, { - "IPV6_TCLASS", DEFINED, IN_H, "IPV6_TCLASS", NULL, NULL, { -0}},}; - -#define ETCOUNT (sizeof(etab)/sizeof(etab[0])) - -/* existence tests */ -void icmp6_et(void) -{ - int i; - - for (i = 0; i < ETCOUNT; ++i) { - switch (etab[i].et_type) { - case EXISTS: - structcheck(etab[i].et_tname, etab[i].et_incl, - etab[i].et_struct, etab[i].et_field, - etab[i].et_offset, etab[i].et_value); - break; - case ALIAS: - aliascheck(etab[i].et_tname, etab[i].et_incl, - etab[i].et_struct, etab[i].et_field, - etab[i].et_dname); - break; - case VALUE: - valuecheck(etab[i].et_tname, etab[i].et_incl, - etab[i].et_struct, etab[i].et_dname); - break; - case DEFINED: - funccheck(etab[i].et_tname, etab[i].et_incl, - etab[i].et_struct); - break; - default: - tst_resm(TBROK, "invalid type %d", etab[i].et_type); - break; - } - } -} - void setup(void) { TEST_PAUSE; /* if -P option specified */ @@ -414,4 +297,4 @@ void icmp6_ft(void) } } -int TST_TOTAL = ETCOUNT; +int TST_TOTAL = FTCOUNT; diff --git a/testcases/network/lib6/asapi_07.c b/testcases/network/lib6/asapi_07.c deleted file mode 100644 index 826cea6..0000000 --- a/testcases/network/lib6/asapi_07.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * Author: David L Stevens - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * Description: - * These tests are for the "Advanced Sockets API" (RFC 3542) - * Section 20, ancillary data macros and structure definitions - */ - -#include <stdio.h> -#include <unistd.h> -#include <errno.h> - -#include <sys/wait.h> - -#include <netinet/in.h> -#include <netinet/ip6.h> -#include <netinet/icmp6.h> - -#include "test.h" -#include "runcc.h" - -enum ttype { EXISTS, ALIAS, VALUE, DEFINED }; - -static struct etent { - char *et_tname; /* test name */ - int et_type; /* test type */ - char *et_incl; /* include file list */ - char *et_struct; /* structure name */ - char *et_field; /* field name */ - char *et_offset; /* field offset */ - union { - char *fu_value; /* field size or value */ - char *fu_dname; /* #define name */ - } ftun; -#define et_value ftun.fu_value -#define et_dname ftun.fu_dname -} etab[] = { - /* existence checks, RFC 3542 sections 5, 20 */ - { "msghdr msg_name", EXISTS, SOCKET_H, "msghdr", - "msg_name", NULL, {"sizeof(void *)"} }, - { "msghdr msg_namelen", EXISTS, SOCKET_H, "msghdr", - "msg_namelen", NULL, {"sizeof(socklen_t)"} }, - { "msghdr msg_iov", EXISTS, SOCKET_H, "msghdr", - "msg_iov", NULL, {"sizeof(struct iovec *)"} }, - { "msghdr msg_iovlen", EXISTS, SOCKET_H, "msghdr", - "msg_iovlen", NULL, {"sizeof(size_t)"} }, - { "msghdr msg_control", EXISTS, SOCKET_H, "msghdr", - "msg_control", NULL, {"sizeof(void *)"} }, - { "msghdr msg_controllen", EXISTS, SOCKET_H, "msghdr", - "msg_controllen", NULL, {"sizeof(size_t)"} }, - { "msghdr msg_flags", EXISTS, SOCKET_H, "msghdr", - "msg_flags", NULL, {"sizeof(int)"} }, - { "cmsghdr cmsg_len", EXISTS, SOCKET_H, "cmsghdr", - "cmsg_len", NULL, {"sizeof(size_t)"} }, - { "cmsghdr cmsg_level", EXISTS, SOCKET_H, "cmsghdr", - "cmsg_level", NULL, {"sizeof(int)"} }, - { "cmsghdr cmsg_type", EXISTS, SOCKET_H, "cmsghdr", - "cmsg_type", NULL, {"sizeof(int)"} }, - { "CMSG_DATA", DEFINED, SOCKET_H, "CMSG_DATA", - NULL, NULL, {0} }, - { "CMSG_NXTHDR", DEFINED, SOCKET_H, "CMSG_NXTHDR", - NULL, NULL, {0} }, - { "CMSG_FIRSTHDR", DEFINED, SOCKET_H, "CMSG_FIRSTHDR", - NULL, NULL, {0} }, - { "CMSG_SPACE", DEFINED, SOCKET_H, "CMSG_SPACE", - NULL, NULL, {0} }, - { "CMSG_LEN", DEFINED, SOCKET_H, "CMSG_LEN", - NULL, NULL, {0} }, -}; - -static void setup(void); -static void adatet(const struct etent *etptr); - -char *TCID = "asapi_07"; -int TST_TOTAL = ARRAY_SIZE(etab); - -int main(int argc, char *argv[]) -{ - int i, lc; - - tst_parse_opts(argc, argv, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); ++lc) { - tst_count = 0; - - for (i = 0; i < TST_TOTAL; i++) - adatet(&etab[i]); - } - - tst_exit(); -} - -void setup(void) -{ - TEST_PAUSE; -} - -/* existence tests */ -void adatet(const struct etent *etptr) -{ - switch (etptr->et_type) { - case EXISTS: - structcheck(etptr->et_tname, etptr->et_incl, - etptr->et_struct, etptr->et_field, - etptr->et_offset, etptr->et_value); - break; - case ALIAS: - aliascheck(etptr->et_tname, etptr->et_incl, - etptr->et_struct, etptr->et_field, - etptr->et_dname); - break; - case VALUE: - valuecheck(etptr->et_tname, etptr->et_incl, - etptr->et_struct, etptr->et_dname); - break; - case DEFINED: - funccheck(etptr->et_tname, etptr->et_incl, - etptr->et_struct); - break; - default: - tst_resm(TBROK, "invalid type %d", - etptr->et_type); - break; - } -} diff --git a/testcases/network/lib6/runcc.c b/testcases/network/lib6/runcc.c deleted file mode 100644 index 91a0b16..0000000 --- a/testcases/network/lib6/runcc.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/* - * runcc.a - common functions for lib6 testing - * - * HISTORY - * 05/2005 written by David L Stevens - * - * RESTRICTIONS: - * None. - * - */ - -#include <stdio.h> -#include <unistd.h> -#include <errno.h> -#include <ctype.h> - -#include <sys/wait.h> - -#include "test.h" - -char fieldref[1024]; -char program[8192]; - -char *filetmpl = "/tmp/%.*s_XXXXXX"; - -char cmd[1024]; - -/* - * like strspn, with ASCII, numbers and underscore only - */ -int strfpn(char *name) -{ - int i; - - for (i = 0; *name; ++name, ++i) - if (!(isalnum(*name) || *name == '_')) - break; - return i; -} - -int runcc(char *tname, char *filename0, char *program) -{ - static char filename[1024]; - int fd, es, saved_errno; - char *cflags = ""; - - fd = mkstemp(filename0); - if (fd < 0) { - perror("mkstemp"); - return -1; - } - strncpy(filename, filename0, sizeof(filename) - 1); - filename[sizeof(filename) - 1] = '\0'; - strncat(filename, ".c", sizeof(filename) - strlen(filename) - 1); - if (rename(filename0, filename) < 0) { - perror("rename"); - unlink(filename0); - return -1; - } - if (write(fd, program, strlen(program)) < 0) { - perror("write"); - unlink(filename); - return -1; - } - (void)close(fd); - - cflags = getenv("CFLAGS"); - if (cflags == NULL) { - tst_resm(TINFO, "CFLAGS not found, using default cc arch."); - cflags = ""; - } - - snprintf(cmd, sizeof(cmd), "%s %s -o %s %s > /tmp/test 2>&1", "cc", - cflags, filename0, filename); - es = system(cmd); - if (WEXITSTATUS(es) == 127) { - tst_resm(TBROK, "can't run C compiler: \"%s\"", cmd); - if (unlink(filename) < 0) - tst_resm(TWARN, "%s; unlink \"%s\" failed: %s", tname, - filename, strerror(errno)); - return -1; - } - if (unlink(filename) < 0) - tst_resm(TWARN, "%s: unlink \"%s\" failed: %s", tname, - filename, strerror(errno)); - - if (WIFSIGNALED(es) && - (WTERMSIG(es) == SIGINT || WTERMSIG(es) == SIGQUIT)) - exit(1); - - if (WEXITSTATUS(es)) { - tst_resm(TFAIL, "%s: not present", tname); - return -1; - } - /* run the test */ - - es = system(filename0); - saved_errno = errno; - if (unlink(filename0) < 0) - tst_resm(TWARN, "%s: unlink \"%s\" failed: %s", tname, - filename0, strerror(errno)); - - if (WIFSIGNALED(es) && - (WTERMSIG(es) == SIGINT || WTERMSIG(es) == SIGQUIT)) - exit(1); - - if (WEXITSTATUS(es) == 127) - tst_resm(TBROK, "%s: can't run \"%s\": %s", tname, filename0, - strerror(saved_errno)); - if (WEXITSTATUS(es)) - tst_resm(TFAIL, "%s: present, but incorrect", tname); - else - tst_resm(TPASS, "%s present and correct", tname); - return 0; -} - -char *field_fmt = "\n\texit((offsetof(struct %s, %s) != %s) || " - "sizeof(tst.%s) != (%s));\n"; -/* no offset check */ -char *field_fmt2 = "\n\texit(sizeof(tst.%s) != (%s));\n"; - -const char *stmpl = - "%s\n#ifndef offsetof\n" - "#define offsetof(dtype, dfield) ((int)&((dtype *)0)->dfield)\n" - "#endif\n\nstruct %s tst;\n\nmain(int argc, char *argv[])\n{\n\t%s\n}\n"; - -int -structcheck(char *tname, char *incl, char *structure, char *field, - char *offset, char *size) -{ - int rv; - static char filename[1024]; - - if (offset) - sprintf(fieldref, field_fmt, structure, field, offset, field, - size); - else - sprintf(fieldref, field_fmt2, field, size); - sprintf(program, stmpl, incl, structure, fieldref); - snprintf(filename, sizeof(filename), filetmpl, strfpn(structure), - structure); - rv = runcc(tname, filename, program); - return rv; -} - -char *aliasfmt = - "exit(&tst.%s != &tst.%s || sizeof(tst.%s) != sizeof(tst.%s));"; - -int -aliascheck(char *tname, char *incl, char *structure, char *field, char *dname) -{ - int rv; - static char filename[1024]; - - sprintf(fieldref, aliasfmt, field, dname, field, dname); - sprintf(program, stmpl, incl, structure, fieldref); - snprintf(filename, sizeof(filename), filetmpl, strfpn(structure), - structure); - rv = runcc(tname, filename, program); - return rv; -} - -const char *dtmpl = - "%s\n\nmain(int argc, char *argv[])\n{\n\texit((%s) != (%s));\n}\n"; - -int valuecheck(char *tname, char *incl, char *dname, char *dval) -{ - int rv; - static char filename[1024]; - - sprintf(program, dtmpl, incl, dname, dval); - snprintf(filename, sizeof(filename), filetmpl, strfpn(dname), dname); - rv = runcc(tname, filename, program); - return rv; -} - -const char *ftmpl = - "%s\n\nmain(int argc, char *argv[])\n{\n#ifdef %s\n\texit(0);\n#else\n" - "\tsyntax error;\n#endif\n}\n"; - -int funccheck(char *tname, char *incl, char *fname) -{ - int rv; - static char filename[1024]; - - sprintf(program, ftmpl, incl, fname); - snprintf(filename, sizeof(filename), filetmpl, strfpn(fname), fname); - rv = runcc(tname, filename, program); - return rv; -} diff --git a/testcases/network/lib6/runcc.h b/testcases/network/lib6/runcc.h deleted file mode 100644 index 4e2a0d5..0000000 --- a/testcases/network/lib6/runcc.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -int aliascheck(char *tname, char *incl, char *structure, char *field, - char *dname); -int funccheck(char *tname, char *incl, char *fname); -int structcheck(char *tname, char *incl, char *structure, char *field, - char *offset, char *size); -int valuecheck(char *tname, char *incl, char *dname, char *dval); - -#define IP6_H "#include <netinet/ip6.h>\n" -#define IN_H "#include <netinet/in.h>\n" -#define ICMP6_H "#include <netinet/icmp6.h>\n" -#define SOCKET_H "#include <sys/types.h>\n#include <sys/socket.h>\n" -- 1.9.3 ------------------------------------------------------------------------------ _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list