Add test case: inject IPv4 based TCP RST packet after recv S2C first payload
This commit is contained in:
@@ -38,4 +38,5 @@ curl -v http://http.badssl.selftest.gdnt-cloud.website --resolve "http.badssl.se
|
|||||||
| tcp-rst | c2s-packet | 1 | After recv SYN | Failed |
|
| tcp-rst | c2s-packet | 1 | After recv SYN | Failed |
|
||||||
| tcp-rst | s2c-packet | 1 | After recv SYN-ACK | Success |
|
| tcp-rst | s2c-packet | 1 | After recv SYN-ACK | Success |
|
||||||
| tcp-rst | c2s-packet | 2 | After recv Sub-ACK | Success |
|
| tcp-rst | c2s-packet | 2 | After recv Sub-ACK | Success |
|
||||||
| tcp-rst | c2s-packet | 3 | Atter recv C2S First-Payload | Success |
|
| tcp-rst | c2s-packet | 3 | After recv C2S First-Payload | Success |
|
||||||
|
| tcp-rst | s2c-packet | 3 | After recv S2C First-payload | Success |
|
||||||
@@ -98,6 +98,38 @@ TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_C2S_FIRST_PAYLOAD)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_S2C_FIRST_PAYLOAD)
|
||||||
|
{
|
||||||
|
struct packet_injector_case test = {
|
||||||
|
// descriptor
|
||||||
|
.finish_clean_work_dir = 1,
|
||||||
|
.descriptor = "Inject IPv4 based TCP RST after receiving S2C first payload packet.",
|
||||||
|
.work_dir = "/tmp/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/", // user defined work directory
|
||||||
|
|
||||||
|
// prefix
|
||||||
|
.input_prefix = "pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/",
|
||||||
|
.output_prefix = "/tmp/",
|
||||||
|
|
||||||
|
// input pcap
|
||||||
|
.input_pcap = "input.pcap",
|
||||||
|
|
||||||
|
// compare
|
||||||
|
.c2s_expect_pcap = "expect-192.0.2.211:54408-192.0.2.110:80-1.pcap",
|
||||||
|
.c2s_output_pcap = "inject-192.0.2.211:54408-192.0.2.110:80-1.pcap",
|
||||||
|
|
||||||
|
.s2c_expect_pcap = "expect-192.0.2.110:80-192.0.2.211:54408-2.pcap",
|
||||||
|
.s2c_output_pcap = "inject-192.0.2.110:80-192.0.2.211:54408-2.pcap",
|
||||||
|
|
||||||
|
// packet injector command
|
||||||
|
.packet_injector_cmd = "./packet_injector -t tcp-rst -c s2c-packet -n 3",
|
||||||
|
.diff_skip_pattern = "-I frame.time -I frame.time_epoch -I ip.id -I ip.ttl -I ip.checksum -I tcp.checksum -I tcp.window_size",
|
||||||
|
};
|
||||||
|
|
||||||
|
packet_injector_test_frame_run(&test);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
::testing::InitGoogleTest(&argc, argv);
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
|
|||||||
@@ -83,10 +83,6 @@ static void expect_cmp_inject(const char *work_dir,
|
|||||||
const char *output_dir_abs_path, const char *output_pcap_file,
|
const char *output_dir_abs_path, const char *output_pcap_file,
|
||||||
const char *diff_skip_pattern, const char *flow_dir)
|
const char *diff_skip_pattern, const char *flow_dir)
|
||||||
{
|
{
|
||||||
printf("\033[32m ============================================= \033[0m\n");
|
|
||||||
printf("\033[32m Compare [%s] expect pcap and output pcap \033[0m\n", flow_dir);
|
|
||||||
printf("\033[32m ============================================= \033[0m\n");
|
|
||||||
|
|
||||||
struct stat s;
|
struct stat s;
|
||||||
char expect_pcap_file_abs_path[1024] = {0};
|
char expect_pcap_file_abs_path[1024] = {0};
|
||||||
char output_pcap_file_abs_path[1024] = {0};
|
char output_pcap_file_abs_path[1024] = {0};
|
||||||
@@ -136,7 +132,9 @@ static void expect_cmp_inject(const char *work_dir,
|
|||||||
|
|
||||||
void packet_injector_test_frame_run(struct packet_injector_case *test)
|
void packet_injector_test_frame_run(struct packet_injector_case *test)
|
||||||
{
|
{
|
||||||
|
printf("\033[32m ============================================= \033[0m\n");
|
||||||
printf("\033[32mTest: %s\033[0m\n", test->descriptor);
|
printf("\033[32mTest: %s\033[0m\n", test->descriptor);
|
||||||
|
printf("\033[32m ============================================= \033[0m\n");
|
||||||
|
|
||||||
char config_file_abs_path[1024] = {0};
|
char config_file_abs_path[1024] = {0};
|
||||||
char input_dir_abs_path[1024] = {0};
|
char input_dir_abs_path[1024] = {0};
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user