From bb55ea68e0f3629eb1fe71c3537785ffcb577eac Mon Sep 17 00:00:00 2001 From: luwenpeng Date: Wed, 15 May 2024 15:07:27 +0800 Subject: [PATCH] Add test case: inject IPv4 based TCP RST packet after recv Sub-ACK --- test/gtest_inject_tcp_rst.cpp | 34 ++++++++++++++++++ test/packet_injector_test_frame.cpp | 4 +-- ...ct-192.0.2.110:80-192.0.2.211:42242-2.pcap | Bin 0 -> 94 bytes ...ct-192.0.2.211:42242-192.0.2.110:80-1.pcap | Bin 0 -> 94 bytes .../test/input.pcap | Bin 0 -> 1904 bytes 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/expect-192.0.2.110:80-192.0.2.211:42242-2.pcap create mode 100644 test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/expect-192.0.2.211:42242-192.0.2.110:80-1.pcap create mode 100644 test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/input.pcap diff --git a/test/gtest_inject_tcp_rst.cpp b/test/gtest_inject_tcp_rst.cpp index 79e6e47..cb02f52 100644 --- a/test/gtest_inject_tcp_rst.cpp +++ b/test/gtest_inject_tcp_rst.cpp @@ -2,6 +2,7 @@ #include "packet_injector_test_frame.h" +#if 1 TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_SYN_ACK) { struct packet_injector_case test = { @@ -31,6 +32,39 @@ TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_SYN_ACK) packet_injector_test_frame_run(&test); } +#endif + +#if 1 +TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_SUB_ACK) +{ + struct packet_injector_case test = { + // descriptor + .finish_clean_work_dir = 1, + .descriptor = "Inject IPv4 based TCP RST after receiving SUB-ACK packet.", + .work_dir = "/tmp/inject_ipv4_based_tcp_rst_after_recv_sub_ack/", // user defined work directory + + // prefix + .input_prefix = "pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/", + .output_prefix = "/tmp/", + + // input pcap + .input_pcap = "input.pcap", + + // compare + .c2s_expect_pcap = "expect-192.0.2.211:42242-192.0.2.110:80-1.pcap", + .c2s_output_pcap = "inject-192.0.2.211:42242-192.0.2.110:80-1.pcap", + + .s2c_expect_pcap = "expect-192.0.2.110:80-192.0.2.211:42242-2.pcap", + .s2c_output_pcap = "inject-192.0.2.110:80-192.0.2.211:42242-2.pcap", + + // packet injector command + .packet_injector_cmd = "./packet_injector -t tcp-rst -c c2s-packet -n 2", + .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) { diff --git a/test/packet_injector_test_frame.cpp b/test/packet_injector_test_frame.cpp index d049eb6..3a8e98c 100644 --- a/test/packet_injector_test_frame.cpp +++ b/test/packet_injector_test_frame.cpp @@ -175,9 +175,7 @@ void packet_injector_test_frame_run(struct packet_injector_case *test) EXPECT_TRUE(replace_file_string(config_file_abs_path, "dumpfile_dir = \"/tmp/dumpfile/\"", temp) == 0); // run packet injector - chdir(test->work_dir); - system_cmd(test->packet_injector_cmd); - chdir("../"); + system_cmd("cd %s && %s && cd ..", test->work_dir, test->packet_injector_cmd); // compare pcap if (test->c2s_output_pcap && test->c2s_expect_pcap) diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/expect-192.0.2.110:80-192.0.2.211:42242-2.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/expect-192.0.2.110:80-192.0.2.211:42242-2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..0ddf9eee7f318a1fefe68ccf9bdc0bd79d51d0d0 GIT binary patch literal 94 zcmca|c+)~A1{MYcU}0bcayZ%?(_)VDF_;0_Ae?t=$9%t@XH}oOLn}BKTp1WN9yU8L k*t1>bI>5k`2gH{d0+upmZ7J#bvGJWkfCx*#t{V&t05HrO0ssI2 literal 0 HcmV?d00001 diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/expect-192.0.2.211:42242-192.0.2.110:80-1.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/expect-192.0.2.211:42242-192.0.2.110:80-1.pcap new file mode 100644 index 0000000000000000000000000000000000000000..74c3a81990b800bea9f0bca206a7b3fb7707d824 GIT binary patch literal 94 zcmca|c+)~A1{MYcU}0bcayZ%?)0&R*F_;0_ApETAb9ZP(-mM+;{dzbUTp1WN=DRvD kWU;;RIKaSk8Hn?iGBE`F*!WH%YfDK_fC$UYUH%LV06x+iC;$Ke literal 0 HcmV?d00001 diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/input.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_sub_ack/test/input.pcap new file mode 100644 index 0000000000000000000000000000000000000000..7ffedd22aaee1eebfd5de5e74de1b51bb8e88b47 GIT binary patch literal 1904 zcmeH`L2DC16vtn-X>5bV>P6|ry*G`!$!?l11w*MIYNa6Jp~|w|owZ|=%`!Vl(_Zvg zXiwr*EJ8nkP{E^uhoYc|-qfRbs|a4iL-oDQrj{o4BOUhL5vKdSMZkwQOVbWkdjZpFoZ52({NbEyrpUF8lAlz-?N4ugnI896y86-f^*VC zj7zDnp+5Qrh2Fl5xeZ<6m^n1H+P8+N5*(IEleOmdtcD)t6d-mw+ z`T$%2nA}ZOppw~cJqKk6E!b3G_S=)sXE7NzlE6 zOrz0x=~!0^?t^UQ)UYn3&4b&5MUhoZ)+|{Taw?B(lm{wZ@#NAy|zC(w561 zv&wOfD@Ap_;ZsKFELZD}XV-l{Vv-{98`C7hLwG%~xksx7CtASw7nVMu83nU!6iW1F zqY!aVt@21(b45+NrOy4vFux2Q7gUe=c9jQl532wga=9%AGB_hMd)nQ+ulq@k8h^ew(>=hB$XKCe}R}8~-k2 z{V!+y;XogsGpGG2WI)!{$HuNgjJNL+U*eqfv5K76?+wHGS2vJeD(>Oe#2ASm=-(sR M{_o#E-oM23C(8=vW&i*H literal 0 HcmV?d00001