aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorJose Luis Duran <jlduran@gmail.com>2023-02-11 14:17:46 +0000
committerMark Johnston <markj@FreeBSD.org>2023-10-11 17:48:27 +0000
commit20012a3a1a045bfe02bb64063cf0aba4d82471cb (patch)
tree362231870bf78e7f078fe882cc693beab45f05f7 /sbin
parent4d348e83b738347f6aaf2b110459a01c5402d04e (diff)
downloadsrc-20012a3a1a045bfe02bb64063cf0aba4d82471cb.tar.gz
src-20012a3a1a045bfe02bb64063cf0aba4d82471cb.zip
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
Diffstat (limited to 'sbin')
-rw-r--r--sbin/ping/tests/test_ping.py112
1 files changed, 112 insertions, 0 deletions
diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py
index 26a69b62f8fb..c311a77d6bb8 100644
--- a/sbin/ping/tests/test_ping.py
+++ b/sbin/ping/tests/test_ping.py
@@ -1034,6 +1034,118 @@ round-trip min/avg/max/stddev = /// ms
{
"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",
+ "dst": "192.0.2.2",
"icmp_type": 0,
"icmp_code": 0,
"opts": "NOP-40",