summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-05-15 15:45:25 +0800
committerluwenpeng <[email protected]>2024-05-15 16:09:24 +0800
commit5e10870833a630e50a6b8690f13024bd08e3012a (patch)
tree42d71f9cd9cc3030c4f331633eb13a4372527fa9
parentbb55ea68e0f3629eb1fe71c3537785ffcb577eac (diff)
Add test case: inject IPv4 based TCP RST packet after recv C2S first payload
-rw-r--r--test/README.md3
-rw-r--r--test/gtest_inject_tcp_rst.cpp32
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/fw.pcapbin0 -> 5000 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_c.pcapbin0 -> 541 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_s.pcapbin0 -> 356 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.110:80-192.0.2.211:35116-2.pcapbin0 -> 94 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.211:35116-192.0.2.110:80-1.pcapbin0 -> 94 bytes
-rw-r--r--test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/input.pcapbin0 -> 2484 bytes
8 files changed, 34 insertions, 1 deletions
diff --git a/test/README.md b/test/README.md
index 258c239..d0ce9ff 100644
--- a/test/README.md
+++ b/test/README.md
@@ -37,4 +37,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 | \ No newline at end of file
+| 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
diff --git a/test/gtest_inject_tcp_rst.cpp b/test/gtest_inject_tcp_rst.cpp
index cb02f52..05edaac 100644
--- a/test/gtest_inject_tcp_rst.cpp
+++ b/test/gtest_inject_tcp_rst.cpp
@@ -66,6 +66,38 @@ TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_SUB_ACK)
}
#endif
+#if 1
+TEST(INJECT_IPV4_BASED_TCP_RST, AFTER_RECV_C2S_FIRST_PAYLOAD)
+{
+ struct packet_injector_case test = {
+ // descriptor
+ .finish_clean_work_dir = 1,
+ .descriptor = "Inject IPv4 based TCP RST after receiving C2S first payload packet.",
+ .work_dir = "/tmp/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/", // user defined work directory
+
+ // prefix
+ .input_prefix = "pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/",
+ .output_prefix = "/tmp/",
+
+ // input pcap
+ .input_pcap = "input.pcap",
+
+ // compare
+ .c2s_expect_pcap = "expect-192.0.2.211:35116-192.0.2.110:80-1.pcap",
+ .c2s_output_pcap = "inject-192.0.2.211:35116-192.0.2.110:80-1.pcap",
+
+ .s2c_expect_pcap = "expect-192.0.2.110:80-192.0.2.211:35116-2.pcap",
+ .s2c_output_pcap = "inject-192.0.2.110:80-192.0.2.211:35116-2.pcap",
+
+ // packet injector command
+ .packet_injector_cmd = "./packet_injector -t tcp-rst -c c2s-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/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/fw.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/fw.pcap
new file mode 100644
index 0000000..510bd0f
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/fw.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_c.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_c.pcap
new file mode 100644
index 0000000..3f8ca77
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_c.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_s.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_s.pcap
new file mode 100644
index 0000000..9793ae5
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/raw/virtio_dign_s.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.110:80-192.0.2.211:35116-2.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.110:80-192.0.2.211:35116-2.pcap
new file mode 100644
index 0000000..d5f9c1c
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.110:80-192.0.2.211:35116-2.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.211:35116-192.0.2.110:80-1.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.211:35116-192.0.2.110:80-1.pcap
new file mode 100644
index 0000000..b78dcbb
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/expect-192.0.2.211:35116-192.0.2.110:80-1.pcap
Binary files differ
diff --git a/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/input.pcap b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/input.pcap
new file mode 100644
index 0000000..4ad0fa9
--- /dev/null
+++ b/test/pcap/inject_ipv4_based_tcp_rst_after_recv_c2s_first_payload/test/input.pcap
Binary files differ