summaryrefslogtreecommitdiff
path: root/module_test/src
diff options
context:
space:
mode:
authorlijia <[email protected]>2024-11-19 10:10:51 +0800
committerlijia <[email protected]>2024-11-20 18:54:08 +0800
commit8d24a9cc945c2a6d0b0bfa447c7b4d1caec9397c (patch)
tree98ab11fcdf4d9ce7497da687f5564666718ab0cb /module_test/src
parent6dd815e9e42ed52130c136e671bd83a05aaa34fd (diff)
TSG-23816: support stream uuid_t id
Diffstat (limited to 'module_test/src')
-rw-r--r--module_test/src/gtest_main.cpp19
-rw-r--r--module_test/src/gtest_sapp_fun.h19
-rw-r--r--module_test/src/gtest_sapp_support.cpp79
-rw-r--r--module_test/src/gtest_sapp_support_plug.cpp129
4 files changed, 149 insertions, 97 deletions
diff --git a/module_test/src/gtest_main.cpp b/module_test/src/gtest_main.cpp
index 91ef42f..6c09d49 100644
--- a/module_test/src/gtest_main.cpp
+++ b/module_test/src/gtest_main.cpp
@@ -25,7 +25,7 @@ const char *user_define_args;
const char *for_test_sapp_version = "4.2.68_c9193fe";
-static int g_libsapp_devel_res = GTEST_SAPP_ERR; /* 使用lisapp_devel.so在同一个进程内运行的测试结�???*/
+static int g_libsapp_devel_res = GTEST_SAPP_ERR; /* 使用lisapp_devel.so在同一个进程内运行的测试结�????*/
int gtest_set_libsapp_devel_result(int res_value)
{
g_libsapp_devel_res = res_value;
@@ -171,7 +171,7 @@ void call_libsapp_devel_online_mode(void)
while(sapp_get_current_state() != SAPP_STATE_PROCESSING){
usleep(100);
}
- sleep(3); /* TODO: 此处不用超时, 而是靠一个标志位或特定状�???*/
+ sleep(3); /* TODO: 此处不用超时, 而是靠一个标志位或特定状�????*/
libsapp_destroy_env();
}
@@ -991,6 +991,13 @@ TEST(control, get_tcp_rtt_s2c)
// EXPECT_EXIT(control_get_tcp_rtt_run(), testing::ExitedWithCode(0), "test succ");
}
+TEST(control, get_stream_uuid)
+{
+ control_get_stream_uuid_run();
+ ASSERT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result());
+ // EXPECT_EXIT(control_get_tcp_rtt_run(), testing::ExitedWithCode(0), "test succ");
+}
+
/************************ project_requirement.h API test ***********************/
#define project_simple 1 // for SI symbol view
TEST(project, simple)
@@ -1336,7 +1343,7 @@ TEST(timer, DISABLED_simple)
/********************* inject rst packet Test ***********************/
#if SAPP_V4 //rst_tcp only support in sapp-v4.0
-#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�???*/
+#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�????*/
#define inject_rst_packet_test_v4 1 // for SI symbol view
TEST(inject, rst_pkt_v4)
{
@@ -1347,7 +1354,7 @@ TEST(inject, rst_pkt_v4)
/********************* inject rst packet Test ***********************/
#define inject_rst_packet_test_v6 1 // for SI symbol view
-#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�???*/
+#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�????*/
TEST(inject, rst_pkt_v6)
{
MESA_rst_tcp_test_v6_run();
@@ -2054,7 +2061,7 @@ TEST(proxy, simple)
#define _proxy_kill_tcp 1
/*
TODO:
- 使用libsapp_devel实测, 两个用例不能顺序执行, 疑似与解析层dlopen有关�??? 暂未定位原因, 待解�???!!!
+ 使用libsapp_devel实测, 两个用例不能顺序执行, 疑似与解析层dlopen有关�???? 暂未定位原因, 待解�????!!!
*/
#if 0
TEST(proxy, kill_tcp)
@@ -2176,7 +2183,7 @@ TEST(fake_marsio, vlan_flip_and_symmetric_mpls1vs2)
#define _fake_marsio_vlan_mac_flip_inject_no_asymmetric 1
TEST(fake_marsio, vlan_mac_flip_inject_no_asymmetric)
{
- /* 别着�??? 不是BUG!
+ /* 别着�???? 不是BUG!
这个测试用例就是应该错的 !!!
*/
EXPECT_EXIT(fake_marsio_vlan_mac_flipping_inject_run(0), testing::ExitedWithCode(1), "index:4, mac addr error");
diff --git a/module_test/src/gtest_sapp_fun.h b/module_test/src/gtest_sapp_fun.h
index 96f76d1..3298c1e 100644
--- a/module_test/src/gtest_sapp_fun.h
+++ b/module_test/src/gtest_sapp_fun.h
@@ -16,8 +16,8 @@
/*
说明:
- 为了方便测试sapp的某些功�?不得已引用了一些private级别的头文件,
- 但是如果sapp的头文件更新�? 但此模块没同步更�? 导致结构体不一�? 可能会测试不通过.
+ 为了方便测试sapp的某些功�??不得已引用了一些private级别的头文件,
+ 但是如果sapp的头文件更新�?? 但此模块没同步更�?? 导致结构体不一�?? 可能会测试不通过.
*/
#include "sapp_limits.h"
@@ -51,8 +51,8 @@
#define GTEST_INLINE_TO_SAPP_SUCC (0x07654321) /* inline模式下TAP模拟外部设备检测正确返回�?*/
#define GTEST_TRANSPARENT_TO_SAPP_SUCC (0x00ABCDEF) /* 双臂模式下TAP模拟外部设备检测正确返回�?*/
#define GTEST_FAKE_MARSIO_SUCC (0x0FEFEFE0) /* fake marsio模式检测正确返回�?*/
-#define GTEST_SAPP_ERR_SKIP (0x534B4950U) /* 因sapp的内部结构体变化, 无法测试, 跳过此用例的返回�? 即字符SKIP的十六进�?*/
-#define GTEST_RESULT_NONE (0x4E4F4E45) /* "NONE"�?6进制, 不发送或者表示无任何意义的返回�?*/
+#define GTEST_SAPP_ERR_SKIP (0x534B4950U) /* 因sapp的内部结构体变化, 无法测试, 跳过此用例的返回�?? 即字符SKIP的十六进�??*/
+#define GTEST_RESULT_NONE (0x4E4F4E45) /* "NONE"�??6进制, 不发送或者表示无任何意义的返回�?*/
#define BENCHMARK_PCAP_ROOT_DIR "../benchmark_pcap"
@@ -68,7 +68,7 @@
#define SAPP_GTEST_LOG(level, module, fmt, args...) do{MESA_handle_runtime_log(g_sapp_test_log_handle, level, module, fmt, ##args);}while(0)
-/* 用于sapp插件上下文空�? 有可能是被fork之后调用sapp, 跟gtest_main函数不在同一个进程里 */
+/* 用于sapp插件上下文空�?? 有可能是被fork之后调用sapp, 跟gtest_main函数不在同一个进程里 */
#define SAPP_PLUG_LOG(level, module, fmt, args...) do{MESA_handle_runtime_log(g_sapp_plug_log_handle, level, module, fmt, ##args);}while(0)
@@ -148,7 +148,7 @@ enum gtest_inject_type{
GINJECT_UDP_PAYLOAD = GINJECT_TYPE_UDP|0x01,
};
-/* 用于指定哪些pcap�? 对应哪些检测函�?*/
+/* 用于指定哪些pcap�?? 对应哪些检测函�??*/
typedef struct {
const char *pcap_file_md5;
unsigned int default_check_result;
@@ -159,8 +159,8 @@ typedef struct {
typedef struct {
const char *pcap_file_md5;
const char *keepalive_ip; /* inline 回流 保活ip */
- int inject_reverse; /* 注入包是否反�?*/
- int inject_pkt_trigger_threshold; /* inject超过几个包发送成功结�?*/
+ int inject_reverse; /* 注入包是否反�??*/
+ int inject_pkt_trigger_threshold; /* inject超过几个包发送成功结�??*/
unsigned int default_check_result;
void (*pcap_callback)(u_char *user, const struct pcap_pkthdr *hdr, const u_char *data);
const char *description;
@@ -224,7 +224,7 @@ void gtest_exec_printf(const char *fmt, ...);
void gtest_plug_printf(const char *fmt, ...);
-extern "C" void sapp_printf(const char *fmt, ...); /* 在插件的上下文调�?*/
+extern "C" void sapp_printf(const char *fmt, ...); /* 在插件的上下文调�??*/
extern "C" int gtest_sapp_slave_init(void);
/*********************************** tcp **************************************/
void tcp_simple_run(void);
@@ -379,6 +379,7 @@ void control_get_ip_ttl_run(void);
void control_get_tcp_rtt_run(void);
void control_get_tcp_rtt_c2s_run(void);
void control_get_tcp_rtt_s2c_run(void);
+void control_get_stream_uuid_run(void);
/****************************** tunnel **************************/
void teredo_unstandard_port_run(void);
void teredo_with_auth_hdr_run(void);
diff --git a/module_test/src/gtest_sapp_support.cpp b/module_test/src/gtest_sapp_support.cpp
index 263ba39..b252901 100644
--- a/module_test/src/gtest_sapp_support.cpp
+++ b/module_test/src/gtest_sapp_support.cpp
@@ -21,7 +21,7 @@ void control_max_unorder_run(void)
{
set_default_config();
#if SAPP_V3
- update_config_file("conf/main.conf", "MaxUnorderNum", "3"); /* ȫ�����������С��ʵ������İ����, �ᵼ����Ϊ�Ƕ��� */
+ update_config_file("conf/main.conf", "MaxUnorderNum", "3"); /* ȫ�����������С��ʵ������İ����?, �ᵼ����Ϊ�Ƕ��� */
#elif SAPP_V4
update_config_file("etc/sapp.toml", "reorder_pkt_max", "3");
#else
@@ -201,7 +201,7 @@ void control_tunnel_type_l2tp_run(void)
{
set_default_config();
- /* l2tpʶ��Ŀǰ��Ҫ����l2tp_protocol��� */
+ /* l2tpʶ��Ŀǰ��Ҫ����l2tp_protocol���? */
insert_into_conflist_inf("protocol", "./plug/protocol/l2tp_protocol_plug/l2tp_protocol_plug.inf");
update_plugin_inf("TCP", "ctrl_tunnel_l2tp_entry");
@@ -245,7 +245,7 @@ void control_tunnel_type_gtp_run(void)
call_libsapp_devel_with_args(2, sapp_start_args);
}
-/* ����sapp_get_platform_opt()�ӿ���ع��� */
+/* ����sapp_get_platform_opt()�ӿ���ع���? */
void control_stream_and_traffic_run(void)
{
set_default_config();
@@ -302,10 +302,10 @@ void project_nodify_run(void)
/* ����gtest.inf */
update_plugin_inf_with_options("./plug/business/gtest_sapp", "gtest", "project_test_init", NULL, "TCP", "project_customer_entry");
- /* project_producer_notify_entry ע�ᵽTCP_ALL, ��֤Ҫ����TCP�������, �Ȳ���projectֵ */
+ /* project_producer_notify_entry ע�ᵽTCP_ALL, ��֤Ҫ����TCP�������?, �Ȳ���projectֵ */
append_plugin_inf("TCP_ALL", "project_producer_notify_entry");
- /* ����sapp_appstate���������IJ��Ŀ¼, ��������project nofity���� */
+ /* ����sapp_appstate���������IJ��Ŀ�?, ��������project nofity���� */
update_plugin_inf_with_options("./plug/business/gtest_sapp_appstate_1", "notify1", "project_nofity_custom1_init", NULL, "TCP", "project_customer_entry1");
update_plugin_inf_with_options("./plug/business/gtest_sapp_appstate_2", "notify2", "project_nofity_custom2_init", NULL, "TCP", "project_customer_entry2");
@@ -351,7 +351,7 @@ void timer_simple_run(void)
/*
����һ��pcap��, ʹ�����dz���, ʹ��--dumpfile-speed=timestamp����,��֤ƽ̨��ʱ�䲻�˳�!
- �����pcap_onlineģʽ����lo��,�dz�����û������,���²�����ᱻ����.
+ �����pcap_onlineģʽ����lo��,�dz�����û������,���²�����ᱻ����?.
*/
set_pcap_dumpfile("for_gtest_only/timer/timer_tcp_test.pcap");
ASSERT_EQ(file_md5_checksum("dumpfile", "7bfc59d66bb44f76603cd6cedfd19091"),0);
@@ -421,7 +421,7 @@ void global_stream_id_tuple4_reuse_run(void)
}
/*
- ������Ԫ�����ú�, ���Ĵ���ʱ���Ƿ����.
+ ������Ԫ�����ú�, ���Ĵ���ʱ���Ƿ����?.
*/
void stream_creattime_tuple4_reuse_run(void)
{
@@ -489,7 +489,7 @@ void control_platform_opt_run(void)
{
set_default_config();
- /* ����gtest.inf, �˴���Ҫ�Ǹ���test_get_platform_opt_init()����, �����ʵ����ν, ���Ӹ�tcp��� */
+ /* ����gtest.inf, �˴���Ҫ�Ǹ���test_get_platform_opt_init()����, �����ʵ�����?, ���Ӹ�tcp���? */
update_plugin_inf_with_options("./plug/business/gtest_sapp", "gtest", "test_get_platform_opt_init", NULL, "TCP", "tcp_simple");
set_pcap_dumpfile("tcp/tcp_simple.pcap");
@@ -519,12 +519,12 @@ void control_stream_create_timestamp_ms_run(void)
}
-/* ���Ի�ȡ��ǰ���ϲ���ص�����, ��ײ�������ͬ */
+/* ���Ի�ȡ��ǰ���ϲ���ص�����?, ��ײ��������? */
void control_up_layer_tunnel_gtp_run(void)
{
set_default_config();
- /* gtp_dns.pcap�м����ظ����ݰ�, �ùر��ظ�����⹦�� */
+ /* gtp_dns.pcap�м����ظ����ݰ�, �ùر��ظ�����⹦��? */
update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0");
update_config_file("etc/sapp.toml", "inject_all_enabled", "0");
@@ -538,12 +538,12 @@ void control_up_layer_tunnel_gtp_run(void)
}
-/* ���Ի�ȡ��ǰ���ϲ���ص�����, ��ײ�������ͬ */
+/* ���Ի�ȡ��ǰ���ϲ���ص�����?, ��ײ��������? */
void control_up_layer_tunnel_l2tp_run(void)
{
set_default_config();
- /* l2tpʶ��Ŀǰ��Ҫ����l2tp_protocol��� */
+ /* l2tpʶ��Ŀǰ��Ҫ����l2tp_protocol���? */
insert_into_conflist_inf("protocol", "./plug/protocol/l2tp_protocol_plug/l2tp_protocol_plug.inf");
update_plugin_inf("UDP", "up_layer_tunnel_l2tp_entry");
@@ -556,7 +556,7 @@ void control_up_layer_tunnel_l2tp_run(void)
}
-/* ���Ի�ȡ��ǰ���ϲ���ص�����, ��ײ�������ͬ */
+/* ���Ի�ȡ��ǰ���ϲ���ص�����?, ��ײ��������? */
void control_up_layer_tunnel_teredo_run(void)
{
set_default_config();
@@ -576,14 +576,14 @@ void control_get_plug_pme_run(void)
{
set_default_config();
- update_plugin_inf("TCP", "void_entry"); /* �˲����Ҫ���ڵ��� gtest_sapp_slave_init, entry����ɶҲ���� */
+ update_plugin_inf("TCP", "void_entry"); /* �˲����Ҫ���ڵ���? gtest_sapp_slave_init, entry����ɶҲ���� */
update_plugin_inf_with_options("./plug/business/gtest_get_plug_pme1", "get_plug_pme1", "get_plug_pme_init", NULL, "TCP_ALL", "get_plug_pme_tcpall_entry");
update_plugin_inf_with_options("./plug/business/gtest_get_plug_pme2", "get_plug_pme2", "get_plug_pme_init", NULL, "TCP", "get_plug_pme_tcp_entry");
/* ��Ҫע��:
sapp����business�����dlopen + RTLD_LOCAL����ģʽ, ������-l��ϵͳ�Զ����ص�,
- ������ͬ�������ں���������Ȼһ��, ���ڴ��ַʵ���Dz�һ����!!
+ ������ͬ�������ں���������Ȼһ��, ���ڴ��ַʵ���Dz�һ����?!!
������Ҫ���ص�platform��.
*/
update_plugin_inf_with_options("./plug/platform/gtest_get_plug_pme3", "get_plug_pme3", "get_plug_pme_init", NULL, "UDP", "get_plug_pme_udp_entry1");
@@ -609,12 +609,12 @@ void control_get_plug_pme_run(void)
}
-/* ���Ա�Ҫ����ij�ʼ��, ���.inf��.so������, init()�������ش��� */
+/* ���Ա�Ҫ����ij�ʼ��?, ���?.inf��.so������, init()�������ش��� */
void control_plug_necessary_run(void)
{
set_default_config();
- /* Ĭ�Ͻ���dzɹ�, ���Dz�����ʹ����� */
+ /* Ĭ�Ͻ���dzɹ�?, ���Dz�����ʹ�����? */
gtest_set_timeout_default_result(GTEST_SAPP_SUCC);
update_plugin_inf_with_options("./plug/business/necessary", "plug_necessary", "plug_necessary_init", NULL, "TCP", "plug_necessary_not_call_entry");
@@ -634,12 +634,12 @@ void control_plug_necessary_run(void)
call_libsapp_devel_with_args(2, sapp_start_args);
}
-/* ���Ա�Ҫ����ij�ʼ��,���Dz��.inf������, ��ȡ���.so·��, �����������Ȼ���ִ��� */
+/* ���Ա�Ҫ����ij�ʼ��?,���Dz��?.inf������, ��ȡ���?.so·��, �����������Ȼ���ִ���? */
void control_plug_necessary_run_no_inf(void)
{
set_default_config();
- /* Ĭ�Ͻ���dzɹ�, ���Dz�����ʹ����� */
+ /* Ĭ�Ͻ���dzɹ�?, ���Dz�����ʹ�����? */
gtest_set_timeout_default_result(GTEST_SAPP_SUCC);
update_plugin_inf_with_options("./plug/business/necessary", "plug_necessary", "plug_necessary_init", NULL, "TCP", "plug_necessary_not_call_entry");
@@ -659,12 +659,12 @@ void control_plug_necessary_run_no_inf(void)
}
-/* ���Ա�Ҫ����ij�ʼ��,���.inf����, ����.so������, dlopen����ִ��� */
+/* ���Ա�Ҫ����ij�ʼ��?,���?.inf����, ����.so������, dlopen����ִ���? */
void control_plug_necessary_run_no_sofile(void)
{
set_default_config();
- /* Ĭ�Ͻ���dzɹ�, ���Dz�����ʹ����� */
+ /* Ĭ�Ͻ���dzɹ�?, ���Dz�����ʹ�����? */
gtest_set_timeout_default_result(GTEST_SAPP_SUCC);
update_plugin_inf_with_options("./plug/business/necessary", "plug_necessary", "plug_necessary_init", NULL, "TCP", "plug_necessary_not_call_entry");
@@ -685,7 +685,7 @@ void control_plug_necessary_run_no_sofile(void)
}
-/* ���Բ����ȡ�ظ�����״̬, tcp�� */
+/* ���Բ����ȡ�ظ�����״�?, tcp�� */
void control_plug_dup_pkt_tcp_run(void)
{
set_default_config();
@@ -706,7 +706,7 @@ void control_plug_dup_pkt_tcp_run(void)
}
-/* ���Բ����ȡ�ظ�����״̬, udp�� */
+/* ���Բ����ȡ�ظ�����״�?, udp�� */
void control_plug_dup_pkt_udp_run(void)
{
set_default_config();
@@ -726,7 +726,7 @@ void control_plug_dup_pkt_udp_run(void)
}
/*
- ͨ�������в���-c�޸������ļ���Ŀ¼, -D�޸������ļ���Ŀ¼��IJ���.
+ ͨ�������в���-c�޸������ļ���Ŀ¼, -D�޸������ļ���Ŀ¼��IJ���?.
*/
void control_get_root_dir_run(void)
{
@@ -755,7 +755,7 @@ void control_get_root_dir_run(void)
update_config_file("./etc/sapp.toml", "dumpfile_sleep_time_before_exit", "0");
- /* ��Ϊ�����ļ�·�������'/', ���sed�����ͻ, ��Ҫʹ�ö���ת��,
+ /* ��Ϊ�����ļ�·�������?'/', ���sed������?, ��Ҫʹ�ö���ת��,
��һ��������������\\, ��ʾ��ʵ��'\',
�ڶ���ת�����ʵ�����\x2F, ����sed��˵��ʾ��ʵ��'/'
*/
@@ -778,7 +778,7 @@ void control_get_root_dir_run(void)
call_libsapp_devel_with_args(8, sapp_change_root_dir_args);
- /* ִ������ټ��һ������Ŀ¼�Ƿ���sysinfo.log, �Ƿ���־������ݷ���Ԥ�� */
+ /* ִ������ټ��һ������Ŀ¼�Ƿ���sysinfo.log, �Ƿ���־������ݷ���Ԥ��? */
ASSERT_EQ(expect_file_has_some_string("/tmp/sapp_change_root_dir_test/data/sysinfo.log", "17.75K"), 0);
ASSERT_EQ(expect_file_has_some_string("/tmp/sapp_change_root_dir_test/data/sysinfo.log", "16.82K"), 0);
ASSERT_EQ(expect_file_has_some_string("/tmp/sapp_change_root_dir_test/data/sysinfo.log", "13674"), 0);
@@ -792,7 +792,7 @@ void stream_bridge_test_run(void)
{
set_default_config();
- /* ������Ҫ�����������bridge����, ���������²��Ŀ¼ */
+ /* ������Ҫ�����������bridge����, ���������²��Ŀ�? */
system("mkdir -p ./plug/business/gtest_sapp_1");
system("mkdir -p ./plug/business/gtest_sapp_2");
system("cp ./plug/business/gtest_sapp/libgtest_sapp.so ./plug/business/gtest_sapp_1/");
@@ -830,7 +830,7 @@ void find_streaminfo_v4_run(void)
set_default_config();
- update_config_file("etc/sapp.toml", "worker_threads", "4"); /* ���߳������һЩ, �����ڲ�ͬ�߳���polling���ҹ��� */
+ update_config_file("etc/sapp.toml", "worker_threads", "4"); /* ���߳������һ�?, �����ڲ�ͬ�߳���polling���ҹ��� */
update_config_file("etc/sapp.toml", "syn_mandatory", "0");
update_config_file("etc/sapp.toml", "reorder_pkt_max", "100");
update_config_file("etc/sapp.toml", "timeout", "0");
@@ -857,7 +857,7 @@ void find_streaminfo_v6_run(void)
set_default_config();
- update_config_file("etc/sapp.toml", "worker_threads", "6"); /* ���߳������һЩ, �����ڲ�ͬ�߳���polling���ҹ��� */
+ update_config_file("etc/sapp.toml", "worker_threads", "6"); /* ���߳������һ�?, �����ڲ�ͬ�߳���polling���ҹ��� */
update_config_file("etc/sapp.toml", "syn_mandatory", "0");
update_config_file("etc/sapp.toml", "reorder_pkt_max", "100");
update_config_file("etc/sapp.toml", "timeout", "0");
@@ -907,7 +907,7 @@ void find_streaminfo_diff_tunnel_v4_run(void)
/*
���������breakpad��forkһ���½��̣��ռ������ֳ������ϴ�����������
- �˹��̻�̳�sapp����������socket�����minidump�ϴ�ʱ��Ƚϳ���
+ �˹��̻�̳�sapp����������socket�����minidump�ϴ�ʱ��Ƚϳ���?
�ᵼ��sapp������ʱ�ᷢ�ֶ˿ڻ��ڱ�minidumpռ�ã����޷���ʱ������
������������֤sapp��socket��ռ�ö˿��Ƿ��ܱ���ʱ�ر�.
*/
@@ -940,7 +940,7 @@ void control_fork_listen_port_run(void)
call_libsapp_devel_with_args(3, sapp_timestamp_argv);
- /*************** ִ�е��˴�, ��sapp�����Ѿ��˳�, fork������sapp�ӽ��̿��ܸո�����, ���һ��12345�Ƿ񻹱�ռ�� *****************/
+ /*************** ִ�е��˴�, ��sapp�����Ѿ��˳�, fork������sapp�ӽ��̿��ܸո�����, ���һ��?12345�Ƿ񻹱�ռ�� *****************/
sleep(1);
@@ -953,7 +953,7 @@ void control_fork_listen_port_run(void)
fgets(result, sizeof(result), result_fp);
- if(strlen(result) == 0){ /* netstat�����޽��, ����ȷ�� */
+ if(strlen(result) == 0){ /* netstat�����޽��?, ����ȷ�� */
printf("\033[32mfork_listen_port test success!\033[0m\n");
gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC);
}else{
@@ -1024,7 +1024,7 @@ void get_deployment_mode_mirror(void)
set_default_config();
update_plugin_inf("TCP", "get_deployment_mode_tcp_udp_entry");
- set_pcap_dumpfile("tcp/tcp_simple.pcap"); /* ����Ҹ���, ʲô����, ����Ϊ������, ����ģʽ�İ�Ҫ��һ�� */
+ set_pcap_dumpfile("tcp/tcp_simple.pcap"); /* ����Ҹ���?, ʲô����, ����Ϊ������, ����ģʽ�İ�Ҫ��һ�� */
ASSERT_EQ(file_md5_checksum("dumpfile", "df138740a6a22ca9c977052f21f7a470"),0);
call_libsapp_devel_with_args(2, sapp_start_args);
@@ -1040,7 +1040,7 @@ void get_deployment_mode_transparent(void)
update_config_file_by_lastNline("etc/sapp.toml", "packet_io.internal.interface", 2, "name", "lo");
update_config_file_by_lastNline("etc/sapp.toml", "packet_io.external.interface", 1, "name", "lo");
update_config_file_by_lastNline("etc/sapp.toml", "packet_io.external.interface", 2, "name", "lo");
- set_pcap_dumpfile("tcp/tcp_isn_c2s_single.pcap"); /* ����Ҹ���, ʲô����, ����Ϊ������, ����ģʽ�İ�Ҫ��һ�� */
+ set_pcap_dumpfile("tcp/tcp_isn_c2s_single.pcap"); /* ����Ҹ���?, ʲô����, ����Ϊ������, ����ģʽ�İ�Ҫ��һ�� */
ASSERT_EQ(file_md5_checksum("dumpfile", "a5d0d96ee6f44f729d79aeac5cc2fee0"),0);
call_libsapp_devel_with_args(1, sapp_transparent_start_args);
@@ -1061,7 +1061,7 @@ void get_deployment_mode_inline(void)
update_config_file("etc/gdev.conf", "sendto_gdev_ip", "10.3.36.1");
update_plugin_inf("POLLING", "get_deployment_mode_tcp_udp_entry");
- set_pcap_dumpfile("for_gtest_only/inline/tcp_flow_stat.pcap"); /* ����Ҹ���, ʲô����, ����Ϊ������, ����ģʽ�İ�Ҫ��һ�� */
+ set_pcap_dumpfile("for_gtest_only/inline/tcp_flow_stat.pcap"); /* ����Ҹ���?, ʲô����, ����Ϊ������, ����ģʽ�İ�Ҫ��һ�� */
ASSERT_EQ(file_md5_checksum("dumpfile", "917fd6b8bc70e02812a036adf637479b"),0);
call_libsapp_devel_with_args(1, sapp_inline_start_args);
@@ -1114,3 +1114,12 @@ void control_get_tcp_rtt_s2c_run(void)
call_libsapp_devel_for_dumpfile_topspeed();
}
+
+void control_get_stream_uuid_run(void)
+{
+ set_default_config();
+ update_plugin_inf("TCP", "ctrl_get_stream_uuid_entry");
+ set_pcap_dumpfile("tcp/tcp_simple.pcap");
+ ASSERT_EQ(file_md5_checksum("dumpfile", "df138740a6a22ca9c977052f21f7a470"),0);
+ call_libsapp_devel_with_args(2, sapp_start_args);
+}
diff --git a/module_test/src/gtest_sapp_support_plug.cpp b/module_test/src/gtest_sapp_support_plug.cpp
index 371d969..7e462c5 100644
--- a/module_test/src/gtest_sapp_support_plug.cpp
+++ b/module_test/src/gtest_sapp_support_plug.cpp
@@ -32,7 +32,7 @@ extern "C" char ctrl_max_unorder_tcp_entry(struct streaminfo *pstream,void **pme
{
memset(&gtest_ctrl_tcp_stat, 0, sizeof(gtest_plug_stat_t));
mopt.stream_dir = DIR_DOUBLE;
- mopt.max_unorder_val = 5; /* 重置当前流的最大乱序数为5 */
+ mopt.max_unorder_val = 5; /* 重置当前流的最大乱序数�?5 */
ret = MESA_set_stream_opt(pstream, MSO_MAX_UNORDER, &mopt, sizeof(mopt));
if(ret < 0){
printf("\033[1;31;40mMESA_set_stream_opt():set max_unorder option error!\033[0m\n");
@@ -138,7 +138,7 @@ extern "C" char ctrl_takeover_exclusive_entry(struct streaminfo *pstream,void **
if(tcp_exclusive_entry_pkt_num >= 68){
if(0 == tcp_plundered_entry_pkt_num){
- /* 此函数挂载到TCPALL入库, 设置takeover标志后,
+ /* 此函数挂载到TCPALL入库, 设置takeover标志�?,
ctrl_takeover_plundered_entry一个包应该都收不到
*/
sendto_test_result(GTEST_SAPP_SUCC);
@@ -580,7 +580,7 @@ extern "C" char project_customer_entry(struct streaminfo *pstream,void **pme, in
extern "C" char project_producer_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
if(OP_STATE_PENDING == pstream->pktstate){
-#if 0 //v4.2版本后, 支持动态自动注册,不用写project_list.conf, 但是标签注册必须在初始化阶段,
+#if 0 //v4.2版本�?, 支持动态自动注�?,不用写project_list.conf, 但是标签注册必须在初始化阶段,
project_test_id = project_producer_register(project_name, "int", NULL);
if(project_test_id < 0){
printf("\033[1;31;40mproject_producer_register error!\033[0m\n");
@@ -601,7 +601,7 @@ extern "C" int project_test_init(void)
return -1;
}
- //v4.2版本后, 支持动态自动注册,不用写project_list.conf, 但是标签注册必须在初始化阶段,
+ //v4.2版本�?, 支持动态自动注�?,不用写project_list.conf, 但是标签注册必须在初始化阶段,
project_test_id = project_producer_register(project_name, "int", NULL);
if(project_test_id < 0){
printf("\033[1;31;40mproject_producer_register error!\033[0m\n");
@@ -639,7 +639,7 @@ extern "C" int project_notify_cb2(const struct streaminfo *stream, int project_r
extern "C" char project_customer_no_result_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
- /* 此处插件不发送正确结果, 只判断错误 */
+ /* 此处插件不发送正确结�?, 只判断错�? */
int res;
res = project_req_get_int(pstream, project_test_id);
@@ -657,7 +657,7 @@ extern "C" char project_customer_no_result_entry(struct streaminfo *pstream,void
extern "C" char project_customer_entry1(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int res;
- /* 此处插件不发送正确结果, 只判断错误 */
+ /* 此处插件不发送正确结�?, 只判断错�? */
res = project_req_get_int(pstream, project_notify_plug1_id);
if(0x12345678 != res){
@@ -673,7 +673,7 @@ extern "C" char project_customer_entry1(struct streaminfo *pstream,void **pme, i
extern "C" char project_customer_entry2(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int res;
- /* 第2个插件排在最后, 如果都正确, 则发送正确结果 */
+ /* �?2个插件排在最�?, 如果都正�?, 则发送正确结�? */
res = project_req_get_int(pstream, project_notify_plug2_id);
if(0x12345678 == res){
@@ -741,7 +741,7 @@ void sapp_timer_test_cbfun(sapp_timer_handle h, sapp_timer_event ev, int pkt_pro
if(gtest_ctrl_tcp_stat.C2S_all_pkt >= 10){
diff = time(NULL) - first_call_time;
- if(diff >= 9){ /* 理论上收到10个包, 也是延迟10秒, 允许一点误差, 此处判断9秒 */
+ if(diff >= 9){ /* 理论上收�?10个包, 也是延迟10�?, 允许一点误�?, 此处判断9�? */
SAPP_PLUG_LOG(RLOG_LV_INFO, "timer.simple","timer_test succ! time pass %lds, call entry %u times!\n", diff, gtest_ctrl_tcp_stat.C2S_all_pkt);
gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC);
memset(&gtest_ctrl_tcp_stat, 0, sizeof(gtest_plug_stat_t));
@@ -849,13 +849,13 @@ extern "C" char global_stream_id_tcpall_entry(struct streaminfo *pstream,void **
unsigned long long ts_from_sapp = (sapp_global_id & 0x07ffffff8000) >> 15;
if(ts_from_sapp > ts_from_time){
- if(ts_from_sapp > ts_from_time + 1){ /* 允许误差1秒 */
+ if(ts_from_sapp > ts_from_time + 1){ /* 允许误差1�? */
printf("\033[1;31;40mtimestamp from sapp error!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
return APP_STATE_DROPME;
}
}else{
- if(ts_from_time > ts_from_sapp + 1){ /* 允许误差1秒 */
+ if(ts_from_time > ts_from_sapp + 1){ /* 允许误差1�? */
printf("\033[1;31;40mtimestamp from sapp error!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
return APP_STATE_DROPME;
@@ -870,7 +870,7 @@ extern "C" char global_stream_id_tcpall_entry(struct streaminfo *pstream,void **
/*
- 读取tcp_tuple4_reuse.pcap, 应该有两个流被先后调用, stream_id应该生成两个不同的值.
+ 读取tcp_tuple4_reuse.pcap, 应该有两个流被先后调�?, stream_id应该生成两个不同的�?.
*/
static int test_stream_id_num = 0;
static unsigned long long test_last_stream_id = 0;
@@ -914,7 +914,7 @@ extern "C" char global_stream_id_tuple4_reuse_tcpall_entry(struct streaminfo *ps
/*
- 读取tcp_tuple4_reuse.pcap, 应该有两个流被先后调用, stream tcpdetail createtime应该有两个值.
+ 读取tcp_tuple4_reuse.pcap, 应该有两个流被先后调�?, stream tcpdetail createtime应该有两个�?.
*/
static int test_reuse_stream_num = 0;
static time_t first_stream_creatime, second_stream_creatime;
@@ -928,7 +928,7 @@ extern "C" char stream_creatime_tuple4_reuse_tcpall_entry(struct streaminfo *pst
first_stream_creatime = pstream->ptcpdetail->createtime;
MESA_get_stream_opt(pstream, MSO_STREAM_CREATE_TIMESTAMP_MS, &first_stream_creatime_ms, &opt_len);
}else{
- /* 记录四元组重用, 第2个流的时间 */
+ /* 记录四元组重�?, �?2个流的时�? */
second_stream_creatime = pstream->ptcpdetail->createtime;
MESA_get_stream_opt(pstream, MSO_STREAM_CREATE_TIMESTAMP_MS, &second_stream_creatime_ms, &opt_len);
@@ -1053,7 +1053,7 @@ extern "C" char stream_createtime_ms_tcpall_entry(struct streaminfo *pstream,voi
}
- if(OP_STATE_CLOSE == pstream->pktstate){ /* 结束的时候再获取一遍 */
+ if(OP_STATE_CLOSE == pstream->pktstate){ /* 结束的时候再获取一�? */
ret = MESA_get_stream_opt(pstream, MSO_STREAM_CREATE_TIMESTAMP_MS, &create_time_ms_close, &opt_len);
if(ret < 0){
printf("\033[1;31;40mMESA_get_stream_opt()->MSO_STREAM_CREATE_TIMESTAMP_MS error!\033[0m\n");
@@ -1099,7 +1099,7 @@ extern "C" char up_layer_tunnel_gtp_entry(struct streaminfo *pstream,void **pme,
if(OP_STATE_CLOSE != pstream->pktstate){
MESA_get_stream_opt(pstream, MSO_STREAM_UP_LAYER_TUNNEL_TYPE, &up_layer_tunnel_type, &opt_len);
- if(STREAM_TUNNEL_GPRS_TUNNEL != up_layer_tunnel_type){ /* 此处要精确判断隧道类型, 防止解析出错, 不能用STREAM_TUNNLE_NON模糊判断 */
+ if(STREAM_TUNNEL_GPRS_TUNNEL != up_layer_tunnel_type){ /* 此处要精确判断隧道类�?, 防止解析出错, 不能用STREAM_TUNNLE_NON模糊判断 */
g_up_layer_non_num++;
}else{
g_up_layer_is_tunnel_num++;
@@ -1108,7 +1108,7 @@ extern "C" char up_layer_tunnel_gtp_entry(struct streaminfo *pstream,void **pme,
printf("stream: %s, tunnel:%d\n", printaddr(&pstream->addr, thread_seq), (int)up_layer_tunnel_type);
}
- if(13 == g_up_layer_plug_call_times){ /* gtp_dns.pcap一共5个包, 5个外层udp, 5个内层udp, 外加3个流的close状态, 最终是调用本插件entry 13次 */
+ if(13 == g_up_layer_plug_call_times){ /* gtp_dns.pcap一�?5个包, 5个外层udp, 5个内层udp, 外加3个流的close状�?, 最终是调用本插件entry 13�? */
if((5 == g_up_layer_non_num) && (5 == g_up_layer_is_tunnel_num)){
printf("\033[32mup_layer_tunnel_gtp test success!\033[0m\n");
sendto_test_result(GTEST_SAPP_SUCC);
@@ -1131,7 +1131,7 @@ extern "C" char up_layer_tunnel_l2tp_entry(struct streaminfo *pstream,void **pme
if(OP_STATE_CLOSE != pstream->pktstate){
MESA_get_stream_opt(pstream, MSO_STREAM_UP_LAYER_TUNNEL_TYPE, &up_layer_tunnel_type, &opt_len);
- if(STREAM_TUNNLE_L2TP != up_layer_tunnel_type){ /* 此处要精确判断隧道类型, 防止解析出错, 不能用STREAM_TUNNLE_NON模糊判断 */
+ if(STREAM_TUNNLE_L2TP != up_layer_tunnel_type){ /* 此处要精确判断隧道类�?, 防止解析出错, 不能用STREAM_TUNNLE_NON模糊判断 */
g_up_layer_non_num++;
}else{
g_up_layer_is_tunnel_num++;
@@ -1140,7 +1140,7 @@ extern "C" char up_layer_tunnel_l2tp_entry(struct streaminfo *pstream,void **pme
printf("stream: %s, tunnel:%d\n", printaddr(&pstream->addr, thread_seq), (int)up_layer_tunnel_type);
}
- if(11 == g_up_layer_plug_call_times){ /* l2tp_dns.pcap一共4个包, 4个外层udp, 4个内层udp, 外加3个流的close状态, 最终是调用本插件entry 11次 */
+ if(11 == g_up_layer_plug_call_times){ /* l2tp_dns.pcap一�?4个包, 4个外层udp, 4个内层udp, 外加3个流的close状�?, 最终是调用本插件entry 11�? */
if((4 == g_up_layer_non_num) && (4 == g_up_layer_is_tunnel_num)){
sendto_test_result(GTEST_SAPP_SUCC);
}else{
@@ -1161,7 +1161,7 @@ extern "C" char up_layer_tunnel_teredo_entry(struct streaminfo *pstream,void **p
if(OP_STATE_CLOSE != pstream->pktstate){
MESA_get_stream_opt(pstream, MSO_STREAM_UP_LAYER_TUNNEL_TYPE, &up_layer_tunnel_type, &opt_len);
- if(STREAM_TUNNLE_TEREDO != up_layer_tunnel_type){ /* 此处要精确判断隧道类型, 防止解析出错, 不能用STREAM_TUNNLE_NON模糊判断 */
+ if(STREAM_TUNNLE_TEREDO != up_layer_tunnel_type){ /* 此处要精确判断隧道类�?, 防止解析出错, 不能用STREAM_TUNNLE_NON模糊判断 */
g_up_layer_non_num++;
}else{
g_up_layer_is_tunnel_num++;
@@ -1170,7 +1170,7 @@ extern "C" char up_layer_tunnel_teredo_entry(struct streaminfo *pstream,void **p
printf("stream: %s, tunnel:%d\n", printaddr(&pstream->addr, thread_seq), (int)up_layer_tunnel_type);
}
- if(10 == g_up_layer_plug_call_times){ /* teredo_udp.pcap一共3个包, 3个外层udp, 3个内层udp, 外加4个流的close状态, 最终是调用本插件entry 10次 */
+ if(10 == g_up_layer_plug_call_times){ /* teredo_udp.pcap一�?3个包, 3个外层udp, 3个内层udp, 外加4个流的close状�?, 最终是调用本插件entry 10�? */
if((3 == g_up_layer_non_num) && (3 == g_up_layer_is_tunnel_num)){
sendto_test_result(GTEST_SAPP_SUCC);
}else{
@@ -1186,19 +1186,19 @@ extern "C" char up_layer_tunnel_teredo_entry(struct streaminfo *pstream,void **p
extern "C" int get_plug_pme_init(void)
{
- /* 此处每个插件都要初始化一遍, 因为dlopen时业务层插件加载方式是RTLD_LOCAL, 看似一个全局变量gtest_slave_plug_fd, 实际上地址是不一样的 */
+ /* 此处每个插件都要初始化一�?, 因为dlopen时业务层插件加载方式是RTLD_LOCAL, 看似一个全局变量gtest_slave_plug_fd, 实际上地址是不一样的 */
gtest_sapp_slave_init();
return 0;
}
-/* 空函数, 啥也不干, 只是挂载这个层的一个插件 */
+/* 空函�?, 啥也不干, 只是挂载这个层的一个插�? */
extern "C" char void_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
return APP_STATE_GIVEME;
}
-/* 挂载到tcpall层入口,只处理本插件自身的pme */
+/* 挂载到tcpall层入�?,只处理本插件自身的pme */
extern "C" char get_plug_pme_tcpall_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int ret;
@@ -1206,7 +1206,7 @@ extern "C" char get_plug_pme_tcpall_entry(struct streaminfo *pstream,void **pme,
struct mso_plug_pme mso_plug_pme1 = {};
int opt_val_len;
- /* 此处插件不发送正确结果, 只判断错误 */
+ /* 此处插件不发送正确结�?, 只判断错�? */
if(OP_STATE_PENDING == pstream->opstate){
plug1_pme = (int *)malloc(sizeof(int));
*plug1_pme = 0x11111111;
@@ -1244,7 +1244,7 @@ extern "C" char get_plug_pme_tcpall_entry(struct streaminfo *pstream,void **pme,
return APP_STATE_GIVEME;
}
-/* tcp插件最后被调用, 需要验证tcpall和udp插件的Pme获取状态 */
+/* tcp插件最后被调用, 需要验证tcpall和udp插件的Pme获取状�? */
extern "C" char get_plug_pme_tcp_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int ret;
@@ -1310,7 +1310,7 @@ extern "C" char get_plug_pme_tcp_entry(struct streaminfo *pstream,void **pme, in
}
-/* 挂载到udp层入口,只处理本插件自身的pme */
+/* 挂载到udp层入�?,只处理本插件自身的pme */
extern "C" char get_plug_pme_udp_entry1(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int ret;
@@ -1318,7 +1318,7 @@ extern "C" char get_plug_pme_udp_entry1(struct streaminfo *pstream,void **pme, i
struct mso_plug_pme mso_plug_pme1 = {};
int opt_val_len;
- /* 此处插件不发送正确结果, 只判断错误 */
+ /* 此处插件不发送正确结�?, 只判断错�? */
if(OP_STATE_PENDING == pstream->opstate){
plug1_pme = (int *)malloc(sizeof(int));
*plug1_pme = 0x11111111;
@@ -1356,7 +1356,7 @@ extern "C" char get_plug_pme_udp_entry1(struct streaminfo *pstream,void **pme, i
return APP_STATE_GIVEME;
}
-/* udp2插件最后被调用, 需要验证udp1插件的Pme获取状态 */
+/* udp2插件最后被调用, 需要验证udp1插件的Pme获取状�? */
extern "C" char get_plug_pme_udp_entry2(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
int ret;
@@ -1416,7 +1416,7 @@ extern "C" char get_plug_pme_udp_entry2(struct streaminfo *pstream,void **pme, i
if(OP_STATE_CLOSE == pstream->opstate){
free(*pme);
- /* 正确结果在 get_plug_pme_tcp_entry() 函数中发送 */
+ /* 正确结果�? get_plug_pme_tcp_entry() 函数中发�? */
//printf("\033[32mget_plug_pme_entry test success!\033[0m\n");
//sendto_test_result(GTEST_SAPP_SUCC);
}
@@ -1437,7 +1437,7 @@ extern "C" char get_duplicate_pkt_stat_entry(struct streaminfo *pstream,void **p
}
- /* pending状态的第一个包, 不可能是1也不可能是0, 只能是-2 */
+ /* pending状态的第一个包, 不可能是1也不可能�?0, 只能�?-2 */
if(has_dup_pkt != -2){
printf("\033[1;31;40mget_duplicate_pkt_stat_entry(), first packet get MSO_HAVE_DUP_PKT is true!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
@@ -1484,11 +1484,11 @@ extern "C" char tcp_bridge_producer_entry(struct streaminfo *pstream,void **pme,
async_data = (char *)malloc(strlen(TEST_BRIDGE_ASYNC_DATA) + 1);
strcpy(async_data, TEST_BRIDGE_ASYNC_DATA);
stream_bridge_async_data_put(pstream, bridge_id, async_data);
- stream_bridge_sync_data_put(pstream, bridge_id, (void *)TEST_BRIDGE_SYNC_DATA); /* 第一次customer收不到, 因为customer还没有注册 */
+ stream_bridge_sync_data_put(pstream, bridge_id, (void *)TEST_BRIDGE_SYNC_DATA); /* 第一次customer收不�?, 因为customer还没有注�? */
}else if(OP_STATE_DATA == pstream->opstate){
stream_bridge_sync_data_put(pstream, bridge_id, (void *)TEST_BRIDGE_SYNC_DATA);
}else{
- ; /* customer2最后被调用, 测试结果在customer2发送 */
+ ; /* customer2最后被调用, 测试结果在customer2发�? */
}
return APP_STATE_GIVEME;
@@ -1540,11 +1540,11 @@ extern "C" char tcp_bridge_customer1_entry(struct streaminfo *pstream,void **pme
}
- if(g_test_stream_bridge_sync_call_num1 != 46){ /* tcp_simple.pcap有46个负载包 */
+ if(g_test_stream_bridge_sync_call_num1 != 46){ /* tcp_simple.pcap�?46个负载包 */
printf("\033[1;31;40mtcp_bridge_customer1_entry() sync call number error!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
- } /* customer2最后被调用, 是否成功的结果在customer2里发送 */
+ } /* customer2最后被调用, 是否成功的结果在customer2里发�? */
}
return APP_STATE_GIVEME;
@@ -1567,7 +1567,7 @@ extern "C" char tcp_bridge_customer2_entry(struct streaminfo *pstream,void **pme
}
- if(g_test_stream_bridge_sync_call_num2 != 46){ /* tcp_simple.pcap有46个负载包 */
+ if(g_test_stream_bridge_sync_call_num2 != 46){ /* tcp_simple.pcap�?46个负载包 */
printf("\033[1;31;40mtcp_bridge_customer2_entry() sync call number error!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
@@ -1837,7 +1837,7 @@ extern "C" int find_streaminfo_by_addrv4(int thread_index, const struct stream_t
extern "C" int find_streaminfo_by_addrv6(int thread_index, const struct stream_tuple4_v6 *tuplev6, enum stream_type_t streamtype, struct streaminfo *streaminfo_array[], int array_max_num);
/*
- 通过四元组查找streaminfo, 在一堆pcap里, 随机找四个流, 两个tcp, 两个udp ,
+ 通过四元组查找streaminfo, 在一堆pcap�?, 随机找四个流, 两个tcp, 两个udp ,
两个方向分别查询, C2S和S2C.
*/
extern "C" char polling_find_streaminfo_entry_v4(struct streaminfo *nouse,void **nouse2, int thread_seq, void *nouse3)
@@ -1927,7 +1927,7 @@ extern "C" char polling_find_streaminfo_entry_v4(struct streaminfo *nouse,void *
}
- /************ 此处故意写个错的四元组, ip和port顺序反了, 理论上应该是查不到的 */
+ /************ 此处故意写个错的四元�?, ip和port顺序反了, 理论上应该是查不到的 */
find_streaminfo_build_tuple4v4(&t4v4, "192.168.36.103", "125.94.242.80", 20001, 57232);
result_num = find_streaminfo_by_addrv4(thread_seq, &t4v4, STREAM_TYPE_TCP, result, 10);
if(result_num > 0){
@@ -1940,7 +1940,7 @@ extern "C" char polling_find_streaminfo_entry_v4(struct streaminfo *nouse,void *
/*
- 通过四元组查找streaminfo, 在一堆pcap里, 随机找四个流, 两个tcp, 两个udp ,
+ 通过四元组查找streaminfo, 在一堆pcap�?, 随机找四个流, 两个tcp, 两个udp ,
两个方向分别查询, C2S和S2C.
*/
extern "C" char polling_find_streaminfo_entry_v6(struct streaminfo *nouse,void **nouse2, int thread_seq, void *nouse3)
@@ -2039,7 +2039,7 @@ extern "C" char polling_find_streaminfo_entry_v6(struct streaminfo *nouse,void *
}
- /************ 此处故意写个错的四元组, ip和port顺序反了, 理论上应该是查不到的 */
+ /************ 此处故意写个错的四元�?, ip和port顺序反了, 理论上应该是查不到的 */
find_streaminfo_build_tuple4v6(&t4v6, "2001::192:168:40:162", "2001::192:168:40:161", 44444, 39410);
result_v6_num = find_streaminfo_by_addrv6(thread_seq, &t4v6, STREAM_TYPE_TCP, result_v6, 10);
if(result_v6_num > 0){
@@ -2052,7 +2052,7 @@ extern "C" char polling_find_streaminfo_entry_v6(struct streaminfo *nouse,void *
}
/*
- 内层四元组一样, 但外层不一样的四元组地址查询.
+ 内层四元组一�?, 但外层不一样的四元组地址查询.
*/
extern "C" char polling_find_diff_tunnel_streaminfo_entry_v4(struct streaminfo *nouse,void **nouse2, int thread_seq, void *nouse3)
{
@@ -2138,7 +2138,7 @@ extern "C" char fork_listen_port_tcp_plug(struct streaminfo *pstream,void **pme,
printf("fork_listen_port child pid:%d\n", getpid());
usleep(10000); /* 子进程等父sapp进程彻底结束 */
- /* 再次执行一次sapp, 保证不能再打开12345等监听端口, 且使用在线模式, 不退出 */
+ /* 再次执行一次sapp, 保证不能再打开12345等监听端�?, 且使用在线模�?, 不退�? */
update_config_file_by_lastline("etc/sapp.toml", "packet_io.deployment", "mode", "mirror");
update_config_file_by_lastNline("etc/sapp.toml", "packet_io.internal.interface", 1, "name", "lo");
@@ -2161,7 +2161,7 @@ extern "C" char fork_listen_port_tcp_plug(struct streaminfo *pstream,void **pme,
printf("\033[1;31;40mfork_listen_port plug error: execv sapp fail!\033[0m\n");
}else{
printf("fork_listen_port parent pid:%d, exit!\n", getpid());
- /* sapp父进程退出 */
+ /* sapp父进程退�? */
}
}
@@ -2297,7 +2297,7 @@ static char __get_deployment_mode_entry(struct streaminfo *pstream,void **pme, i
return APP_STATE_DROPME;
}
- /* 用了一个插件入口函数, 使用不同的dumpfile来表示不同的拓扑模式 */
+ /* 用了一个插件入口函�?, 使用不同的dumpfile来表示不同的拓扑模式 */
gtest_file_md5sum("dumpfile", file_md5, sizeof(file_md5));
if(strncasecmp(file_md5, "df138740a6a22ca9c977052f21f7a470", strlen("df138740a6a22ca9c977052f21f7a470")) == 0){
if(dep_mode != DEPLOYMENT_MODE_MIRROR){
@@ -2380,10 +2380,10 @@ extern "C" int plug_necessary_init(void)
return -1; /* 测试necessary_plug_list功能, 故意初始化不成功 */
}
-/* 排在necessary插件后面, 也不应该被调用 */
+/* 排在necessary插件后面, 也不应该被调�? */
extern "C" int plug_indifferent_init(void)
{
- gtest_sapp_slave_init(); /* 每个插件有独立的符号名, 需要独立调用gtest_sapp_slave_init()函数, 创建socket, 否则发送结果会失败 */
+ gtest_sapp_slave_init(); /* 每个插件有独立的符号�?, 需要独立调用gtest_sapp_slave_init()函数, 创建socket, 否则发送结果会失败 */
printf("\033[1;31;40mnecessary plug init error, can't call this function!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
@@ -2393,13 +2393,13 @@ extern "C" int plug_indifferent_init(void)
extern "C" char plug_necessary_not_call_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
- gtest_sapp_slave_init(); /* 每个插件有独立的符号名, 需要独立调用gtest_sapp_slave_init()函数, 创建socket, 否则发送结果会失败 */
+ gtest_sapp_slave_init(); /* 每个插件有独立的符号�?, 需要独立调用gtest_sapp_slave_init()函数, 创建socket, 否则发送结果会失败 */
printf("\033[1;31;40minit error, can't call this entry!\033[0m\n");
sendto_test_result(GTEST_SAPP_ERR);
return APP_STATE_GIVEME;
}
-/* 排在necessary插件后面, 也不应该被调用 */
+/* 排在necessary插件后面, 也不应该被调�? */
extern "C" char plug_indifferent_not_call_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet)
{
printf("\033[1;31;40mnecessary plug init error, can't call this entry!\033[0m\n");
@@ -2553,6 +2553,41 @@ extern "C" char get_tcp_rtt_err_entry(struct streaminfo *pstream, void **pme, in
return APP_STATE_GIVEME;
}
+extern "C" char ctrl_get_stream_uuid_entry(struct streaminfo *pstream, void **pme, int thread_seq, void *a_packet)
+{
+ static unsigned char uuid[16] = {0};
+ int opt_len = sizeof(uuid);
+
+ if(OP_STATE_PENDING == pstream->opstate){
+ MESA_get_stream_opt(pstream, MSO_STREAM_UUID, uuid, &opt_len);
+ }
+ if(OP_STATE_DATA == pstream->opstate){
+ unsigned char uuid_data[16] = {0};
+ MESA_get_stream_opt(pstream, MSO_STREAM_UUID, uuid_data, &opt_len);
+ if(memcmp(uuid, uuid_data, 16) != 0){
+ fprintf(stderr, "\033[1;31;40mctrl_get_stream_uuid_entry error: get uuid error!\033[0m\n");
+ gtest_set_libsapp_devel_result(GTEST_SAPP_ERR);
+ return APP_STATE_DROPME;
+ }
+ }
+
+ if(OP_STATE_CLOSE == pstream->opstate){
+ unsigned char uuid_close[16] = {0};
+ MESA_get_stream_opt(pstream, MSO_STREAM_UUID, uuid_close, &opt_len);
+ if(memcmp(uuid, uuid_close, 16) != 0){
+ fprintf(stderr, "\033[1;31;40mctrl_get_stream_uuid_entry error: get uuid error!\033[0m\n");
+ gtest_set_libsapp_devel_result(GTEST_SAPP_ERR);
+ return APP_STATE_DROPME;
+ }
+
+ fprintf(stderr, "\033[32mctrl_get_stream_uuid_entry test succ \033[0m\n");
+ gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC);
+ return APP_STATE_DROPME;
+ }
+
+ return APP_STATE_GIVEME;
+}
+
#endif