git: b9e2bb1d6e41 - stable/14 - ping tests: Test IHL/quoted data/inner packet paths
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Nov 2023 16:45:50 UTC
The branch stable/14 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=b9e2bb1d6e414137aa3a980dddc6559fe52393e9
commit b9e2bb1d6e414137aa3a980dddc6559fe52393e9
Author: Jose Luis Duran <jlduran@gmail.com>
AuthorDate: 2023-02-11 14:17:46 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-11-06 16:45:43 +0000
ping tests: Test IHL/quoted data/inner packet paths
Commit 46d7b45a267b3d78c5054b210ff7b6c55bfca42b introduced these code
paths. Test and document them.
- Add inner packet too short test
- Add inner IHL too short test
- Add quoted data too short test
- Add IHL too short test
- Add max inner packet IHL without payload test
Reviewed by: markj
MFC after: 1 week
Pull Request: https://github.com/freebsd/freebsd-src/pull/863
Differential Revision: https://reviews.freebsd.org/D38528
(cherry picked from commit 20012a3a1a045bfe02bb64063cf0aba4d82471cb)
---
sbin/ping/tests/test_ping.py | 112 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py
index b501b8a606bf..93d45a1e3d7b 100644
--- a/sbin/ping/tests/test_ping.py
+++ b/sbin/ping/tests/test_ping.py
@@ -1030,6 +1030,118 @@ round-trip min/avg/max/stddev = /// ms
},
id="_0_0_opts_NOP",
),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 3,
+ "icmp_code": 1,
+ "ihl": 0x4,
+ },
+ {
+ "returncode": 2,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 0 packets received, 100.0% packet loss
+""",
+ "stderr": "", # "IHL too short" message not shown
+ "redacted": False,
+ },
+ id="_IHL_too_short",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 3,
+ "icmp_code": 1,
+ "special": "no-payload",
+ },
+ {
+ "returncode": 2,
+ "stdout": """\
+PATTERN: 0x01
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 0 packets received, 100.0% packet loss
+""",
+ "stderr": """\
+ping: quoted data too short (28 bytes) from 192.0.2.2
+""",
+ "redacted": False,
+ },
+ id="_quoted_data_too_short",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 3,
+ "icmp_code": 1,
+ "oip_ihl": 0x4,
+ },
+ {
+ "returncode": 2,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 0 packets received, 100.0% packet loss
+""",
+ "stderr": "", # "inner IHL too short" message not shown
+ "redacted": False,
+ },
+ id="_inner_IHL_too_short",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 3,
+ "icmp_code": 1,
+ "oip_ihl": 0xF,
+ },
+ {
+ "returncode": 2,
+ "stdout": """\
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 0 packets received, 100.0% packet loss
+""",
+ "stderr": """\
+ping: inner packet too short (84 bytes) from 192.0.2.2
+""",
+ "redacted": False,
+ },
+ id="_inner_packet_too_short",
+ ),
+ pytest.param(
+ {
+ "src": "192.0.2.1",
+ "dst": "192.0.2.2",
+ "icmp_type": 3,
+ "icmp_code": 1,
+ "oip_ihl": 0xF,
+ "special": "no-payload",
+ },
+ {
+ "returncode": 2,
+ "stdout": """\
+PATTERN: 0x01
+PING 192.0.2.2 (192.0.2.2): 56 data bytes
+
+--- 192.0.2.2 ping statistics ---
+1 packets transmitted, 0 packets received, 100.0% packet loss
+""",
+ "stderr": "",
+ "redacted": False,
+ },
+ id="_max_inner_packet_ihl_without_payload",
+ ),
pytest.param(
{
"src": "192.0.2.1",