summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorlijia <[email protected]>2021-10-27 17:01:06 +0800
committerlijia <[email protected]>2021-10-27 17:01:06 +0800
commitb99651da62483fb532ccb0b1a301249617548b61 (patch)
treefa58105a246da2ff92baf08823d2da8ad5cab08b /test
parent5bcadbe07819f8ca5e460260b0588f3157df6bbc (diff)
修复编译错误, 增加test stage.
Diffstat (limited to 'test')
-rw-r--r--test/gtest_jump_layer.cpp114
-rw-r--r--test/sample_pcap/udp_simple.pcapbin0 -> 229 bytes
2 files changed, 65 insertions, 49 deletions
diff --git a/test/gtest_jump_layer.cpp b/test/gtest_jump_layer.cpp
index e2dd1a1..3edb923 100644
--- a/test/gtest_jump_layer.cpp
+++ b/test/gtest_jump_layer.cpp
@@ -215,6 +215,7 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
printf("\033[1;31;40mMESA_net_jump_to_layer(): eth->ipv4 error!\033[0m\n");
*result_val = -1;
pcap_breakloop(g_jmp_pcap_handle);
+ return;
}
const struct ip* ip4hdr = (struct ip*)ipv4_header;
@@ -225,6 +226,7 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4->tcp error!\033[0m\n");
*result_val = -1;
pcap_breakloop(g_jmp_pcap_handle);
+ return;
}
tcp_header = MESA_net_jump_to_layer(eth_header, ADDR_TYPE_MAC, ADDR_TYPE_TCP);
@@ -232,6 +234,7 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
printf("\033[1;31;40mMESA_net_jump_to_layer(): eth->tcp error!\033[0m\n");
*result_val = -1;
pcap_breakloop(g_jmp_pcap_handle);
+ return;
}
tcp_header = MESA_net_jump_to_layer(ipv4_header, __ADDR_TYPE_IP_PAIR_V4, ADDR_TYPE_TCP);
@@ -239,6 +242,7 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4->tcp error!\033[0m\n");
*result_val = -1;
pcap_breakloop(g_jmp_pcap_handle);
+ return;
}
const struct tcphdr* thdr = (struct tcphdr *)tcp_header;
@@ -251,6 +255,7 @@ static void jump_layer_eth_ipv4_tcp(u_char *result_val, const struct pcap_pkthdr
pcap_breakloop(g_jmp_pcap_handle);
}
+#define __jump_layer_eth_ipv4_tcp 1
TEST(jump_layer, eth_ipv4_tcp)
{
int fun_ret;
@@ -265,70 +270,81 @@ TEST(jump_layer, eth_ipv4_tcp)
ASSERT_EQ(chk_res, 0);
}
-#if 0
-extern "C" char jump_layer_eth_ipv4_udp_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
+
+
+static void jump_layer_eth_ipv4_udp(u_char *result_val, const struct pcap_pkthdr *hdr, const u_char *data)
{
int ret;
- int tot_pkt_len;
- const void *pkt_header;
+ const void *eth_header = data, *ipv4_header, *udp_header;
const void *next_header;
-
- if(pstream->opstate == OP_STATE_PENDING){
- next_header = MESA_net_jump_to_layer((void *)a_packet, ADDR_TYPE_IPV4, ADDR_TYPE_UDP);
- if(NULL == next_header){
- printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4->udp error!\033[0m\n");
- sendto_test_result(GTEST_SAPP_ERR);
- exit(1);
- }
- ret = get_rawpkt_opt_from_streaminfo(pstream, RAW_PKT_GET_DATA, &pkt_header);
- if(ret < 0){
- printf("\033[1;31;40mjump_layer_eth_ipv4_udp_entry(), get_rawpkt_opt_from_streaminfo()->RAW_PKT_GET_DATA error!\033[0m\n");
- sendto_test_result(GTEST_SAPP_ERR);
- exit(1);
- }
- ret = get_rawpkt_opt_from_streaminfo(pstream, RAW_PKT_GET_TOT_LEN, &tot_pkt_len);
- if(ret < 0){
- printf("\033[1;31;40mjump_layer_eth_ipv4_udp_entry(), get_rawpkt_opt_from_streaminfo()->RAW_PKT_GET_TOT_LEN error!\033[0m\n");
- sendto_test_result(GTEST_SAPP_ERR);
- exit(1);
- }
- next_header = MESA_net_jump_to_layer(pkt_header, ADDR_TYPE_MAC, ADDR_TYPE_IPV4);
- if(NULL == next_header){
- printf("\033[1;31;40mMESA_net_jump_to_layer(): eth->ipv4 error!\033[0m\n");
- sendto_test_result(GTEST_SAPP_ERR);
- exit(1);
- }
+ ipv4_header = MESA_net_jump_to_layer(data, ADDR_TYPE_MAC, ADDR_TYPE_IPV4);
+ if(NULL == ipv4_header){
+ printf("\033[1;31;40mjump_layer_eth_ipv4_udp(): eth->ipv4 error!\033[0m\n");
+ *result_val = -1;
+ pcap_breakloop(g_jmp_pcap_handle);
+ return;
+ }
- if(next_header != a_packet){
- printf("\033[1;31;40mMESA_net_jump_to_layer(): ip header is not equal with plug_entry->a_packet!\033[0m\n");
- sendto_test_result(GTEST_SAPP_ERR);
- exit(1);
- }
+ udp_header = MESA_net_jump_to_layer((void *)ipv4_header, ADDR_TYPE_IPV4, ADDR_TYPE_UDP);
+ if(NULL == udp_header){
+ printf("\033[1;31;40mjump_layer_eth_ipv4_udp(): ipv4->udp error!\033[0m\n");
+ *result_val = -1;
+ pcap_breakloop(g_jmp_pcap_handle);
+ return;
+ }
- const struct ip* ip4hdr = (struct ip*)next_header;
+ udp_header = MESA_net_jump_to_layer((void *)eth_header, ADDR_TYPE_MAC, ADDR_TYPE_UDP);
+ if(NULL == udp_header){
+ printf("\033[1;31;40mjump_layer_eth_ipv4_udp(): ethernet->udp error!\033[0m\n");
+ *result_val = -1;
+ pcap_breakloop(g_jmp_pcap_handle);
+ return;
+ }
- jump_check_ipv4_pkt(ip4hdr, tot_pkt_len-sizeof(struct ethhdr), IPPROTO_UDP, "192.168.210.153", "111.161.107.181");
+ const struct ip* ip4hdr = (struct ip*)ipv4_header;
+ ret = jump_check_ipv4_pkt(ip4hdr, 175, IPPROTO_UDP, "192.168.210.153", "111.161.107.181");
+ if(ret < 0){
+ *result_val = -1;
+ pcap_breakloop(g_jmp_pcap_handle);
+ return;
+ }
+
+ const struct udphdr* uhdr = (struct udphdr *)udp_header;
+ ret = jump_check_udp_pkt(uhdr, 155, 4001, 8000);
+ if(ret < 0){
+ *result_val = -1;
+ pcap_breakloop(g_jmp_pcap_handle);
+ return;
+ }
- next_header = MESA_net_jump_to_layer((void *)ip4hdr, __ADDR_TYPE_IP_PAIR_V4, ADDR_TYPE_UDP);
- if(NULL == next_header){
- printf("\033[1;31;40mMESA_net_jump_to_layer(): ipv4->udp error!\033[0m\n");
- sendto_test_result(GTEST_SAPP_ERR);
- exit(1);
- }
+ printf("\033[32mjump_layer_eth_ipv4_udp() test succ\033[0m\n");
+ *result_val = 0;
- const struct udphdr* uhdr = (struct udphdr *)next_header;
- jump_check_udp_pkt(uhdr, 155, 4001, 8000);
+ return;
+}
- printf("\033[32mjump_layer_eth_ipv4_udp_entry() test succ\033[0m\n");
- sendto_test_result(GTEST_SAPP_SUCC);
- }
+#define __jump_layer_eth_ipv4_udp 1
+TEST(jump_layer, eth_ipv4_udp)
+{
+ int fun_ret;
+ u_char chk_res = -1;
- return APP_STATE_DROPME;
+ fun_ret = jmp_file_md5_checksum("./sample_pcap/udp_simple.pcap", "d218d9a401588f7ba324d8a02c2d8360");
+ ASSERT_EQ(fun_ret, 0);
+
+ fun_ret = jmp_pcap_init("./sample_pcap/udp_simple.pcap", jump_layer_eth_ipv4_udp, (u_char *)&chk_res);
+ ASSERT_EQ(fun_ret, 0);
+
+ ASSERT_EQ(chk_res, 0);
}
+#if 0
+
+
+
extern "C" char jump_layer_eth_ipv6_tcp_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int ret;
diff --git a/test/sample_pcap/udp_simple.pcap b/test/sample_pcap/udp_simple.pcap
new file mode 100644
index 0000000..3fcaef6
--- /dev/null
+++ b/test/sample_pcap/udp_simple.pcap
Binary files differ