Lines Matching refs:test

55 typedef int (*load_fn)(const struct sock_addr_test *test);
86 static int bind4_prog_load(const struct sock_addr_test *test);
87 static int bind6_prog_load(const struct sock_addr_test *test);
88 static int connect4_prog_load(const struct sock_addr_test *test);
89 static int connect6_prog_load(const struct sock_addr_test *test);
90 static int sendmsg_allow_prog_load(const struct sock_addr_test *test);
91 static int sendmsg_deny_prog_load(const struct sock_addr_test *test);
92 static int recvmsg_allow_prog_load(const struct sock_addr_test *test);
93 static int recvmsg_deny_prog_load(const struct sock_addr_test *test);
94 static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test);
95 static int recvmsg4_rw_asm_prog_load(const struct sock_addr_test *test);
96 static int sendmsg4_rw_c_prog_load(const struct sock_addr_test *test);
97 static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test);
98 static int recvmsg6_rw_asm_prog_load(const struct sock_addr_test *test);
99 static int sendmsg6_rw_c_prog_load(const struct sock_addr_test *test);
100 static int sendmsg6_rw_v4mapped_prog_load(const struct sock_addr_test *test);
101 static int sendmsg6_rw_wildcard_prog_load(const struct sock_addr_test *test);
641 static int load_insns(const struct sock_addr_test *test, in load_insns() argument
649 load_attr.expected_attach_type = test->expected_attach_type; in load_insns()
655 if (ret < 0 && test->expected_result != LOAD_REJECT) { in load_insns()
674 static int bind4_prog_load(const struct sock_addr_test *test) in bind4_prog_load() argument
760 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in bind4_prog_load()
763 static int bind6_prog_load(const struct sock_addr_test *test) in bind6_prog_load() argument
826 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in bind6_prog_load()
829 static int load_path(const struct sock_addr_test *test, const char *path) in load_path() argument
838 attr.expected_attach_type = test->expected_attach_type; in load_path()
842 if (test->expected_result != LOAD_REJECT) in load_path()
850 static int connect4_prog_load(const struct sock_addr_test *test) in connect4_prog_load() argument
852 return load_path(test, CONNECT4_PROG_PATH); in connect4_prog_load()
855 static int connect6_prog_load(const struct sock_addr_test *test) in connect6_prog_load() argument
857 return load_path(test, CONNECT6_PROG_PATH); in connect6_prog_load()
860 static int xmsg_ret_only_prog_load(const struct sock_addr_test *test, in xmsg_ret_only_prog_load() argument
868 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in xmsg_ret_only_prog_load()
871 static int sendmsg_allow_prog_load(const struct sock_addr_test *test) in sendmsg_allow_prog_load() argument
873 return xmsg_ret_only_prog_load(test, /*rc*/ 1); in sendmsg_allow_prog_load()
876 static int sendmsg_deny_prog_load(const struct sock_addr_test *test) in sendmsg_deny_prog_load() argument
878 return xmsg_ret_only_prog_load(test, /*rc*/ 0); in sendmsg_deny_prog_load()
881 static int recvmsg_allow_prog_load(const struct sock_addr_test *test) in recvmsg_allow_prog_load() argument
883 return xmsg_ret_only_prog_load(test, /*rc*/ 1); in recvmsg_allow_prog_load()
886 static int recvmsg_deny_prog_load(const struct sock_addr_test *test) in recvmsg_deny_prog_load() argument
888 return xmsg_ret_only_prog_load(test, /*rc*/ 0); in recvmsg_deny_prog_load()
891 static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test) in sendmsg4_rw_asm_prog_load() argument
940 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in sendmsg4_rw_asm_prog_load()
943 static int recvmsg4_rw_asm_prog_load(const struct sock_addr_test *test) in recvmsg4_rw_asm_prog_load() argument
981 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in recvmsg4_rw_asm_prog_load()
984 static int sendmsg4_rw_c_prog_load(const struct sock_addr_test *test) in sendmsg4_rw_c_prog_load() argument
986 return load_path(test, SENDMSG4_PROG_PATH); in sendmsg4_rw_c_prog_load()
989 static int sendmsg6_rw_dst_asm_prog_load(const struct sock_addr_test *test, in sendmsg6_rw_dst_asm_prog_load() argument
1039 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in sendmsg6_rw_dst_asm_prog_load()
1042 static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_asm_prog_load() argument
1044 return sendmsg6_rw_dst_asm_prog_load(test, SERV6_REWRITE_IP); in sendmsg6_rw_asm_prog_load()
1047 static int recvmsg6_rw_asm_prog_load(const struct sock_addr_test *test) in recvmsg6_rw_asm_prog_load() argument
1077 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in recvmsg6_rw_asm_prog_load()
1080 static int sendmsg6_rw_v4mapped_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_v4mapped_prog_load() argument
1082 return sendmsg6_rw_dst_asm_prog_load(test, SERV6_V4MAPPED_IP); in sendmsg6_rw_v4mapped_prog_load()
1085 static int sendmsg6_rw_wildcard_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_wildcard_prog_load() argument
1087 return sendmsg6_rw_dst_asm_prog_load(test, WILDCARD6_IP); in sendmsg6_rw_wildcard_prog_load()
1090 static int sendmsg6_rw_c_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_c_prog_load() argument
1092 return load_path(test, SENDMSG6_PROG_PATH); in sendmsg6_rw_c_prog_load()
1350 static int init_addrs(const struct sock_addr_test *test, in init_addrs() argument
1357 if (mk_sockaddr(test->domain, test->expected_ip, test->expected_port, in init_addrs()
1361 if (mk_sockaddr(test->domain, test->requested_ip, test->requested_port, in init_addrs()
1365 if (test->expected_src_ip && in init_addrs()
1366 mk_sockaddr(test->domain, test->expected_src_ip, 0, in init_addrs()
1375 static int run_bind_test_case(const struct sock_addr_test *test) in run_bind_test_case() argument
1384 if (init_addrs(test, &requested_addr, &expected_addr, NULL)) in run_bind_test_case()
1387 servfd = start_server(test->type, &requested_addr, addr_len); in run_bind_test_case()
1395 clientfd = connect_to_server(test->type, &expected_addr, addr_len); in run_bind_test_case()
1408 static int run_connect_test_case(const struct sock_addr_test *test) in run_connect_test_case() argument
1418 if (init_addrs(test, &requested_addr, &expected_addr, in run_connect_test_case()
1423 servfd = start_server(test->type, &expected_addr, addr_len); in run_connect_test_case()
1427 clientfd = connect_to_server(test->type, &requested_addr, addr_len); in run_connect_test_case()
1438 if (test->type == SOCK_STREAM) { in run_connect_test_case()
1461 static int run_xmsg_test_case(const struct sock_addr_test *test, int max_cmsg) in run_xmsg_test_case() argument
1473 if (test->type != SOCK_DGRAM) in run_xmsg_test_case()
1476 if (init_addrs(test, &sendmsg_addr, &server_addr, &expected_addr)) in run_xmsg_test_case()
1480 servfd = start_server(test->type, &server_addr, addr_len); in run_xmsg_test_case()
1488 clientfd = sendmsg_to_server(test->type, &sendmsg_addr, in run_xmsg_test_case()
1524 static int run_test_case(int cgfd, const struct sock_addr_test *test) in run_test_case() argument
1529 printf("Test case: %s .. ", test->descr); in run_test_case()
1531 progfd = test->loadfn(test); in run_test_case()
1532 if (test->expected_result == LOAD_REJECT && progfd < 0) in run_test_case()
1534 else if (test->expected_result == LOAD_REJECT || progfd < 0) in run_test_case()
1537 err = bpf_prog_attach(progfd, cgfd, test->attach_type, in run_test_case()
1539 if (test->expected_result == ATTACH_REJECT && err) { in run_test_case()
1542 } else if (test->expected_result == ATTACH_REJECT || err) { in run_test_case()
1544 } else if (test->expected_result == ATTACH_OKAY) { in run_test_case()
1549 switch (test->attach_type) { in run_test_case()
1552 err = run_bind_test_case(test); in run_test_case()
1556 err = run_connect_test_case(test); in run_test_case()
1560 err = run_xmsg_test_case(test, 1); in run_test_case()
1564 err = run_xmsg_test_case(test, 0); in run_test_case()
1570 if (test->expected_result == SYSCALL_EPERM && err == EPERM) { in run_test_case()
1575 if (test->expected_result == SYSCALL_ENOTSUPP && err == ENOTSUPP) { in run_test_case()
1580 if (err || test->expected_result != SUCCESS) in run_test_case()
1589 bpf_prog_detach(cgfd, test->attach_type); in run_test_case()