RET_IF
RET_IF(err < 0, "getsockname(cli_fd)", "err:%d errno:%d\n",
RET_IF(err < 0, "lookup_elem(data_check_map)", "err:%d errno:%d\n",
RET_IF(1, "data_check result != expected",
RET_IF(!result.hash, "data_check result.hash empty",
RET_IF(expected.len > result.len, "expected.len > result.len",
RET_IF(expected.len != result.len, "expected.len != result.len",
RET_IF(err < 0, "lookup_elem(result_map)",
RET_IF((nev <= 0 && expected >= PASS) ||
RET_IF(expected != PASS_ERR_SK_SELECT_REUSEPORT &&
RET_IF(new_fd == -1, "accept(srv_fd)",
RET_IF(nread != sizeof(rcv_cmd),
RET_IF(nread != sizeof(rcv_cmd),
RET_IF(err < 0, "update_elem(tmp_index_ovr_map, 0, 1)",
RET_IF(err < 0 || tmp_index >= 0,
RET_IF(err == -1, "setsockopt(SO_DETACH_REUSEPORT_BPF)",
RET_IF(err == 0 || errno != ENOENT,
RET_IF(err < 0, "lookup_elem(result_map)",
RET_IF(nev <= 0, "nev <= 0",
RET_IF(err < 0, "lookup_elem(result_map)",
RET_IF(nr_run_before != nr_run_after,
RET_IF(sk_fds[i] == -1, "socket()", "sk_fds[%d]:%d errno:%d\n",
RET_IF(err == -1, "setsockopt(SO_REUSEPORT)",
RET_IF(err < 0, "setsockopt(SO_ATTACH_REUEPORT_EBPF)",
RET_IF(err < 0, "bind()", "sk_fds[%d] err:%d errno:%d\n",
RET_IF(err < 0, "listen()",
RET_IF(err < 0, "update_elem(reuseport_array)",
RET_IF(err == -1, "getsockname()",
RET_IF(epfd == -1, "epoll_create(1)",
RET_IF(err, "epoll_ctl(EPOLL_CTL_ADD)", "sk_fds[%d]\n", i);
RET_IF(err < 0, "update_elem(tmp_index_ovr_map, 0, -1)",
RET_IF(err < 0, "update_elem(outer_map, 0, reuseport_array)",
RET_IF(err, "reset elem in result_map",
RET_IF(err, "reset line number in linum_map", "err:%d errno:%d\n",
RET_IF(err < 0, "delete_elem(outer_map)",