Lines Matching refs:test
59 typedef int (*load_fn)(const struct sock_addr_test *test);
90 static int bind4_prog_load(const struct sock_addr_test *test);
91 static int bind6_prog_load(const struct sock_addr_test *test);
92 static int connect4_prog_load(const struct sock_addr_test *test);
93 static int connect6_prog_load(const struct sock_addr_test *test);
94 static int sendmsg_allow_prog_load(const struct sock_addr_test *test);
95 static int sendmsg_deny_prog_load(const struct sock_addr_test *test);
96 static int recvmsg_allow_prog_load(const struct sock_addr_test *test);
97 static int recvmsg_deny_prog_load(const struct sock_addr_test *test);
98 static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test);
99 static int recvmsg4_rw_c_prog_load(const struct sock_addr_test *test);
100 static int sendmsg4_rw_c_prog_load(const struct sock_addr_test *test);
101 static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test);
102 static int recvmsg6_rw_c_prog_load(const struct sock_addr_test *test);
103 static int sendmsg6_rw_c_prog_load(const struct sock_addr_test *test);
104 static int sendmsg6_rw_v4mapped_prog_load(const struct sock_addr_test *test);
105 static int sendmsg6_rw_wildcard_prog_load(const struct sock_addr_test *test);
645 static int load_insns(const struct sock_addr_test *test, in load_insns() argument
653 load_attr.expected_attach_type = test->expected_attach_type; in load_insns()
659 if (ret < 0 && test->expected_result != LOAD_REJECT) { in load_insns()
667 static int load_path(const struct sock_addr_test *test, const char *path) in load_path() argument
676 attr.expected_attach_type = test->expected_attach_type; in load_path()
680 if (test->expected_result != LOAD_REJECT) in load_path()
688 static int bind4_prog_load(const struct sock_addr_test *test) in bind4_prog_load() argument
690 return load_path(test, BIND4_PROG_PATH); in bind4_prog_load()
693 static int bind6_prog_load(const struct sock_addr_test *test) in bind6_prog_load() argument
695 return load_path(test, BIND6_PROG_PATH); in bind6_prog_load()
698 static int connect4_prog_load(const struct sock_addr_test *test) in connect4_prog_load() argument
700 return load_path(test, CONNECT4_PROG_PATH); in connect4_prog_load()
703 static int connect6_prog_load(const struct sock_addr_test *test) in connect6_prog_load() argument
705 return load_path(test, CONNECT6_PROG_PATH); in connect6_prog_load()
708 static int xmsg_ret_only_prog_load(const struct sock_addr_test *test, in xmsg_ret_only_prog_load() argument
716 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in xmsg_ret_only_prog_load()
719 static int sendmsg_allow_prog_load(const struct sock_addr_test *test) in sendmsg_allow_prog_load() argument
721 return xmsg_ret_only_prog_load(test, /*rc*/ 1); in sendmsg_allow_prog_load()
724 static int sendmsg_deny_prog_load(const struct sock_addr_test *test) in sendmsg_deny_prog_load() argument
726 return xmsg_ret_only_prog_load(test, /*rc*/ 0); in sendmsg_deny_prog_load()
729 static int recvmsg_allow_prog_load(const struct sock_addr_test *test) in recvmsg_allow_prog_load() argument
731 return xmsg_ret_only_prog_load(test, /*rc*/ 1); in recvmsg_allow_prog_load()
734 static int recvmsg_deny_prog_load(const struct sock_addr_test *test) in recvmsg_deny_prog_load() argument
736 return xmsg_ret_only_prog_load(test, /*rc*/ 0); in recvmsg_deny_prog_load()
739 static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test) in sendmsg4_rw_asm_prog_load() argument
788 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in sendmsg4_rw_asm_prog_load()
791 static int recvmsg4_rw_c_prog_load(const struct sock_addr_test *test) in recvmsg4_rw_c_prog_load() argument
793 return load_path(test, RECVMSG4_PROG_PATH); in recvmsg4_rw_c_prog_load()
796 static int sendmsg4_rw_c_prog_load(const struct sock_addr_test *test) in sendmsg4_rw_c_prog_load() argument
798 return load_path(test, SENDMSG4_PROG_PATH); in sendmsg4_rw_c_prog_load()
801 static int sendmsg6_rw_dst_asm_prog_load(const struct sock_addr_test *test, in sendmsg6_rw_dst_asm_prog_load() argument
851 return load_insns(test, insns, sizeof(insns) / sizeof(struct bpf_insn)); in sendmsg6_rw_dst_asm_prog_load()
854 static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_asm_prog_load() argument
856 return sendmsg6_rw_dst_asm_prog_load(test, SERV6_REWRITE_IP); in sendmsg6_rw_asm_prog_load()
859 static int recvmsg6_rw_c_prog_load(const struct sock_addr_test *test) in recvmsg6_rw_c_prog_load() argument
861 return load_path(test, RECVMSG6_PROG_PATH); in recvmsg6_rw_c_prog_load()
864 static int sendmsg6_rw_v4mapped_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_v4mapped_prog_load() argument
866 return sendmsg6_rw_dst_asm_prog_load(test, SERV6_V4MAPPED_IP); in sendmsg6_rw_v4mapped_prog_load()
869 static int sendmsg6_rw_wildcard_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_wildcard_prog_load() argument
871 return sendmsg6_rw_dst_asm_prog_load(test, WILDCARD6_IP); in sendmsg6_rw_wildcard_prog_load()
874 static int sendmsg6_rw_c_prog_load(const struct sock_addr_test *test) in sendmsg6_rw_c_prog_load() argument
876 return load_path(test, SENDMSG6_PROG_PATH); in sendmsg6_rw_c_prog_load()
1134 static int init_addrs(const struct sock_addr_test *test, in init_addrs() argument
1141 if (mk_sockaddr(test->domain, test->expected_ip, test->expected_port, in init_addrs()
1145 if (mk_sockaddr(test->domain, test->requested_ip, test->requested_port, in init_addrs()
1149 if (test->expected_src_ip && in init_addrs()
1150 mk_sockaddr(test->domain, test->expected_src_ip, 0, in init_addrs()
1159 static int run_bind_test_case(const struct sock_addr_test *test) in run_bind_test_case() argument
1168 if (init_addrs(test, &requested_addr, &expected_addr, NULL)) in run_bind_test_case()
1171 servfd = start_server(test->type, &requested_addr, addr_len); in run_bind_test_case()
1179 clientfd = connect_to_server(test->type, &expected_addr, addr_len); in run_bind_test_case()
1192 static int run_connect_test_case(const struct sock_addr_test *test) in run_connect_test_case() argument
1202 if (init_addrs(test, &requested_addr, &expected_addr, in run_connect_test_case()
1207 servfd = start_server(test->type, &expected_addr, addr_len); in run_connect_test_case()
1211 clientfd = connect_to_server(test->type, &requested_addr, addr_len); in run_connect_test_case()
1222 if (test->type == SOCK_STREAM) { in run_connect_test_case()
1245 static int run_xmsg_test_case(const struct sock_addr_test *test, int max_cmsg) in run_xmsg_test_case() argument
1257 if (test->type != SOCK_DGRAM) in run_xmsg_test_case()
1260 if (init_addrs(test, &sendmsg_addr, &server_addr, &expected_addr)) in run_xmsg_test_case()
1264 servfd = start_server(test->type, &server_addr, addr_len); in run_xmsg_test_case()
1272 clientfd = sendmsg_to_server(test->type, &sendmsg_addr, in run_xmsg_test_case()
1308 static int run_test_case(int cgfd, const struct sock_addr_test *test) in run_test_case() argument
1313 printf("Test case: %s .. ", test->descr); in run_test_case()
1315 progfd = test->loadfn(test); in run_test_case()
1316 if (test->expected_result == LOAD_REJECT && progfd < 0) in run_test_case()
1318 else if (test->expected_result == LOAD_REJECT || progfd < 0) in run_test_case()
1321 err = bpf_prog_attach(progfd, cgfd, test->attach_type, in run_test_case()
1323 if (test->expected_result == ATTACH_REJECT && err) { in run_test_case()
1326 } else if (test->expected_result == ATTACH_REJECT || err) { in run_test_case()
1328 } else if (test->expected_result == ATTACH_OKAY) { in run_test_case()
1333 switch (test->attach_type) { in run_test_case()
1336 err = run_bind_test_case(test); in run_test_case()
1340 err = run_connect_test_case(test); in run_test_case()
1344 err = run_xmsg_test_case(test, 1); in run_test_case()
1348 err = run_xmsg_test_case(test, 0); in run_test_case()
1354 if (test->expected_result == SYSCALL_EPERM && err == EPERM) { in run_test_case()
1359 if (test->expected_result == SYSCALL_ENOTSUPP && err == ENOTSUPP) { in run_test_case()
1364 if (err || test->expected_result != SUCCESS) in run_test_case()
1373 bpf_prog_detach(cgfd, test->attach_type); in run_test_case()