summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-05-16 14:14:41 +0800
committerluwenpeng <[email protected]>2024-05-16 14:14:41 +0800
commitd6ae7c79f78a97e13d638d40261c8488b100b0c8 (patch)
tree0afbff833e5a0110ed4cb669c88029678aca50b0
parent8d8a266f609bad8c6f6df73775c32afd290fb750 (diff)
Add test case: inject IPv4 based TCP RST packet after recv S2C first payload
-rw-r--r--test/README.md3
-rw-r--r--test/gtest_inject_tcp_rst.cpp32
-rw-r--r--test/packet_injector_test_frame.cpp6
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/fw.pcapbin0 -> 7844 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_c.pcapbin0 -> 623 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_s.pcapbin0 -> 1508 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.110:80-192.0.2.211:54408-2.pcapbin0 -> 94 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.211:54408-192.0.2.110:80-1.pcapbin0 -> 94 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/input.pcapbin0 -> 4240 bytes
9 files changed, 36 insertions, 5 deletions
diff --git a/test/README.md b/test/README.md
index d0ce9ff..736eb10 100644
--- a/test/README.md
+++ b/test/README.md
@@ -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 | s2c-packet | 1 | After recv SYN-ACK | Success |
| tcp-rst | c2s-packet | 2 | After recv Sub-ACK | Success |
-| tcp-rst | c2s-packet | 3 | Atter recv C2S First-Payload | Success | \ No newline at end of file
+| tcp-rst | c2s-packet | 3 | After recv C2S First-Payload | Success |
+| tcp-rst | s2c-packet | 3 | After recv S2C First-payload | Success | \ No newline at end of file
diff --git a/test/gtest_inject_tcp_rst.cpp b/test/gtest_inject_tcp_rst.cpp
index 05edaac..267645c 100644
--- a/test/gtest_inject_tcp_rst.cpp
+++ b/test/gtest_inject_tcp_rst.cpp
@@ -98,6 +98,38 @@ TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_C2S_FIRST_PAYLOAD)
}
#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)
{
::testing::InitGoogleTest(&argc, argv);
diff --git a/test/packet_injector_test_frame.cpp b/test/packet_injector_test_frame.cpp
index a131ac5..09b1c32 100644
--- a/test/packet_injector_test_frame.cpp
+++ b/test/packet_injector_test_frame.cpp
@@ -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 *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;
char expect_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)
{
+ printf("\033[32m ============================================= \033[0m\n");
printf("\033[32mTest: %s\033[0m\n", test->descriptor);
+ printf("\033[32m ============================================= \033[0m\n");
char config_file_abs_path[1024] = {0};
char input_dir_abs_path[1024] = {0};
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/fw.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/fw.pcap
new file mode 100644
index 0000000..d7cf360
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/fw.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_c.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_c.pcap
new file mode 100644
index 0000000..d777ebe
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_c.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_s.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_s.pcap
new file mode 100644
index 0000000..2419859
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/raw/virtio_dign_s.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.110:80-192.0.2.211:54408-2.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.110:80-192.0.2.211:54408-2.pcap
new file mode 100644
index 0000000..019e54b
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.110:80-192.0.2.211:54408-2.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.211:54408-192.0.2.110:80-1.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.211:54408-192.0.2.110:80-1.pcap
new file mode 100644
index 0000000..d5765f7
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/expect-192.0.2.211:54408-192.0.2.110:80-1.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/input.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/input.pcap
new file mode 100644
index 0000000..e8a2683
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_s2c_first_payload/test/input.pcap
Binary files differ