ping tests: Test IHL/quoted data/inner packet paths

Commit 46d7b45a26 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
This commit is contained in:
Jose Luis Duran 2023-02-11 11:17:46 -03:00 committed by Mark Johnston
parent 4d348e83b7
commit 20012a3a1a

View file

@ -1030,6 +1030,118 @@ def test_ping_46(self, expected):
},
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",